Pegando o primeiro e o ultimo nome de um arquivo e procurando no passwd - arq=`cat d2.txt` ; for i in $arq; do v1=`echo $i |cut -d: -f1`;\ v2=`echo $i |rev |cut -d: -f1|rev`; \ v1v2=`grep -i "$v1.*$v2" /etc/passwd |awk -F: '{print $5":"$1}'`; \ echo "$i - $v1v2" >>desl2.txt; done
apagando arquivos com data definida: - arq= `ls -la |grep -i "Out 27"|awk -F" " '{print $9}'`;\ for i in $arq; do echo $i ; rm - f $i ;done
descompactando varios arquivos de mensagens que deram false positive ao mesmo tempo (nao se esqueca de mudar a pesquisa do grep) - zgrep -i "Subject: Informativo.*187" ./*.gz|awk -F: '{print$1}'>\ arq.txt;arq= `cat arq.txt`;for i in $arq; do gunzip $i;done;rm -f arq.txt
o exemplo acima nao funciona para grandes quantidades de arquivos. use esse: - find ./ -maxdepth 1 -name "spam*.gz" -exec zgrep -H "Subject.*" {}\;\ >arq.txt;cat arq.txt |awk -F: '{print $1}' >arq2.txt;\ arq= `cat arq2.txt`;for i in $arq; do echo $i;gunzip $i;done;rm -f arq*.txt \
ou esse, se ja existir um arq com os subjects. a parada fica bem mais rapida: - grep -i "Subject.*" ./zspam.txt|awk -F: '{print$1}'>arq.txt;\ arq=`cat arq.txt`;for i in $arq; do echo $i;gunzip $i;done;rm -f arq.txt
Procurando nos spams para ver se deu false positive para algum usuario - find ./ -maxdepth 1 -name "spam*.gz" \ -exec zgrep -H "To: <user\@provedor.com.br>" {} \;\ >/tmp/zspam.txt
pegando estatisticas do mailstats - ano= 2005;for i in 01 02 03 04 05 06 07 08 09 10 11 12; \ do head -n25 mailstats$ano$i*.log|grep"bytes delivered"|\ awk'BEGIN{s=0}{s+=$1}END{print s}';done; \ #mudar ano e string desejada;
esse corrige o problema da mudanca de Kb para Mb no pflogsum - ano=2006;for i in 01 02 03 04 05 06 07 08 09 10 11 12; \ do head -n 25 mailstats$ano$i*.log | grep " bytes delivered" | \ awk 'BEGIN{s=0}{if(index($i, "m bytes")>0) {s=s+$1*1024} \ else s+=$1}END{print s}';done - ano=2007;for i in 01 02 03 04 05 06 07 08 09 10 11 12; \ do head -n 15 mailstats$ano$i*.log| grep "discarded" | \ awk 'BEGIN{s=0}{if(index($i, "m bytes")>0){s=s+$1*1024} \ else s+=$1}END{print s}';done
matando processos defuntos do passwd ou qq outro processo, ou nao!? - processinho=`ps ax|grep -i "\[passwd\] <defunct>"|cut -c1-5`;\ for i in $processinho; do processao=`ps -f $i|tail -1|cut -c16-20`;\ echo "$i - $processao"; kill -9 $processao;done
excluindo varias listinhas no mailman ao mesmo tempo CUIDADO vc podera esta excluindo tbm seu emprego!!!!! - arq=`cat ~usuario/tmp/listas-excluir.txt`; for i in $arq; \ do /usr/local/mailman/bin/rmlist -a $i; done;
renomeando arquivo - find ./ -iname "*.txt" -exec sh -c 'nome={}; echo $nome; \ mv $nome x${nome/.*\/}' \;
fazendo substituicoes a lot!!!!! - find . | xargs perl -p -i.old -e 's/string_velha/string_nova/g'
pegando usuarios com area web - usersremovidos=`ls <path>* |cut -d"/" -f6 | sed s/"2006"/:$/g |\ cut -d: -f1|uniq`;arq=`cat userscomsite20061016.txt |\ cut -d: -f1`;for i in $arq;do \ echo $usersremovidos |sed s/" "/\\n/g |grep ^$i$;done
pegando e contando ocorrencias de algo em arquivos de log - conta= 0;for((i=5;i<=29;i++)); \ do valor=`zgrep -c "to=<info@provedor.com.br.*/usr/bin/procmail" maillog.$i`; \ let conta=$conta+$valor;done;echo "conta="$conta
formatando um arquivo com CPF e pegando apenas os seis primeiros digitos - cat 200701_arquivo_com_cpf.csv|\ awk -F: '{print $1":"$2":"substr($3,0,length($3)-8)}'|\ awk -F. '{print $1$2}' - formato: matricula:nome:cpf
verificando quantidade de acesso unicos de um determinado sitio de web de user - zcat /pefe_do_apache/logs/access_log.*.gz |\ grep "/conta_web"|grep -i -vE "GIF|JPG|CSS|HTML|HTM|PDF|PROPFIND" |\ cut -d"]" -f1|uniq|wc -l
gerando relatorio de entrega de mensagens para uma dada lista - pefe="/home/algumacoisa/outraalgumacoisa/tmp";data= `date+%Y%m%d`;\ :>$pefe/$data.relatorio_entrega_mgs.txt;export IFS=$'\n'; \ listaid=`cat/var/log/maillog.1|grep"<id_da_mensagem>"|grep queued_as`; \ for i in $listaid; do outravar= `echo $i |rev|cut -d, -f2|cut -d: -f1|rev`; \ echo$i>>$pefe/$data.relatorio_entrega_mgs.txt;echo $outravar;\ grep -E "$outravar.*mx01|$outravar.*local" /var/log/maillog.1 \ >>$pefe/$data.relatorio_entrega_mgs.txt; done
|