Arquivos indesejáveis no servidor ?!?

Bom… Como todo administrador de servidores, também passei pela dor de cabeça de precisar verificar o server para ver se estavam colocando arquivos de música, vídeo e fotos nele.

Mas com o tempo isso começa a ficar ruim de fazer… Estressa… Pensei em algo que pudesse me ajudar nesta ação!

Resolvi criar um script que faça isso para mim.

Basicamente ele tem 3 ações: lista, apaga e move… Simples… Nem precisa explicar…

Lá vai:


#!/bin/bash
#
# arquivos_indesejaveis 1.0
#
# Localiza e apaga arquivos indesejaveis a seu servidor
# Find and delete improper files at your server
#
# Autor: Sydney A. Machado Jr.
# E-Mail: sydney@sydney.eti.br
# Data: 11 de abril de 2008
#
# Qualquer duvida, entre em contato pelo e-mail.
#
# O código está sobre GNU-GLP, mas por favor, mantenha os créditos
#
######## Variaveis (altere conforme sua necessidade)#########
DIRS="/home/ /dados/" # Diretorios a procurar.
PROCURAS="mp3 mp4 wma wmv wmf mov mpeg mpg avi" # Extensoes dos arquivos indesejaveis.
LOG="/dados/relatorios/" # Local do relatorio
REPOSITORIO="/home/sydney/movidos/" # Local para onde os arquivos indesejaveis serao movidos
#############################################################
######## Constantes (nao mexa!) #############################
ARQUIVO=`date +'%Y%m%d-%H%M%S_indesejaveis'`
DATA=`date +'%d/%m/%Y'`
HORA=`date +'%T'`
LOG="$LOG$ARQUIVO.dat"
#############################################################
doHelp()
{
clear
echo "Uso: arquivos_indesejaveis [acao]"
echo ""
echo $MSG_MAIS
echo "Voce deve digitar uma das acoes a serem tomadas pelo programa:"
echo " Acao:
lista => Gera lista dos arquivos indesejaveis em seu servidor
apaga => Elimina os arquivos indesejaveis em seu servidor
move => Move os arquivos indesejaveis para o diretorio configurado"
echo""
echo""
exit 1
}
dolista()
{
clear
echo $RELAT
find $DIR -iname "*.$PROCURA" -exec du -h "{}" ; >> $LOG
RELAT="$RELAT."
}
doapaga()
{
clear
echo $DELETA
find $DIR -iname "*.$PROCURA" -exec rm -rf "{}" ;
DELETA="$DELETA."
}
domove()
{
clear
echo $MOVER
find $DIR -iname "*.$PROCURA" -exec mv "{}" $REPOSITORIO ;
MOVER="$MOVER."
}
if [ $# -eq 0 ] ; then
MSG_MAIS=""
doHelp
fi
if [ $# -gt 1 ] ; then
MSG_MAIS="Voce digitou mais de uma acao..."
doHelp
fi
clear
RELAT="Gerando relatorio: $LOG ."
DELETA="APAGANDO ARQUIVOS ."
MOVER="Movendo arquivos para $MOVE ."
for DIR in $DIRS
do
for PROCURA in $PROCURAS
do
do$1
done
done

Pra ficar mais bacana, você pode colocar isso no crontab… Assim, no horário certo, o próprio server roda o script.

Abra o arquivo /etc/crontab

Adicione a linha:
0 3 * * * root /scripts/arquivos_indesejaveis.sh

=> todos os dias, às 3:00 da matina

Salve e reinicie o cron

# service crond restart
ou
# /etc/init.d/crond restart

Já era…

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.