Apagar pastas e arquivos dentro de um

1. Apagar pastas e arquivos dentro de um

Marcos Estival
Estival

(usa aptosid)

Enviado em 23/09/2008 - 17:17h

Oi, gente, estou com um script que transforma os logs do IMSNIFF em HTML, atraves do txt2tag, ate ai tudo bem, mais surgiu um problema preciso agora excluir alguns usuarios que nao podem aparecer nos relatorios HTML. achei que seria simples apaga-los, mais o imsniff gera o log do usuario tambem nas pastas de outros usuarios, exemplo, ciclano falou com o beltrano no MSN, o imsniff vai gerar o log na pasta do ciclano e tambem do beltrano, então se eu precisa-se apagar todas as conversar do beltrano como faria ? imagina se ele conversou com 10 ou 20 pessoas, abaixo o script, se alguem puder dar uma sugestão, depois desta funcionalidade pronta, vou posta-lo para pessoas interessadas em fazer a mesma coisa.

#!/bin/bash
hoje=$(date +%d%b%Y)
logs=/var/log/msn/chats
html=/var/www/html/msnlog

# Para o imsniff
killall imsniff

# Copia dos Logs
tar cvfz /var/log/msnbackup/msnlogs-$hoje.tar.gz $logs/*

# Cria as pastas de HTML
mkdir -p $html/$hoje

# Geracao temporario
cp -r $logs/* /tmp/msnchat
cd /tmp/msnchat
for i in * ; do
arqespac=`echo $i | sed 's:\@: :g'`
nome=`echo $arqespac | awk '{print $1}'`
mkdir -p /tmp/logmsn/$nome
mv $i/*.* /tmp/logmsn/$nome
done

#Gerar os HTMLs
cd /tmp/logmsn/
for diretorio in * ; do
cd $diretorio
mkdir -p $html/$hoje/$diretorio
#for3 inserir linha em branco nos arquivos e gerar html
for arqlog in *.log ; do
sed -i 's/$/\n/' $arqlog
python /usr/bin/txt2tags -t html $arqlog
done
mv *.html $html/$hoje/$diretorio/
cd ..
done

# Apaga os temporarios
rm -fr /tmp/logmsn/*
rm -fr /tmp/msnchat/*
rm -fr /var/log/msn/chats/*

sleep 10

# Carrega o IMSNIFF Novamente
/etc/rc.d/loadim

# FIM DO SCRIPT


  


2. find neles!

Ruy Rocha
unixgeek

(usa Fedora)

Enviado em 23/09/2008 - 18:20h

Rpz,

Depois do cd /tmp/logmsn/, tenta assim:

# usuarios que nao serao logados
USUARIOS_FELIZES="a@msn.com b@msn.com c@msn.com"

for user in $USUARIOS_FELIZES; do find ./ -name $user -exec rm -rf {} \; done

Dai, fica:
pra cada 'user' em USUARIO_FELIZ ele dá um find buscando o arquivo, e ja vai apagando os caras. espero que te ajude!

[]s






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts