[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Copiar apenas alguns arquivos (data)



Cuidado, nem sempre o timestamp de um arquivo é confiável.
De qualquer forma, estou lhe enviando um script que foi feito para apagar a lixeira dos arquivos de samba, ele apaga arquivos com mais de 5 dias. Se voce manjar alguma coisa de bash, vai descobrir que basta mudar o find -atime +$maxage, os nomes das pastas lixeira[x] e trocar "rm" por "mv" dentro do loop.

[]'s e sucesso
<------------ INICIO DO SCRIPT ------------------>
#!/bin/bash
#######################################
# Limpando as lixeiras                #
#######################################
clear
maxage=5
data_ini=`date +%d-%m-%Y`
backup_title="lixeira-$data_ini"
file_log="/var/log/$backup_title.log"
data_ini=`date +%d-%m-%Y+%H:%M`
lixeira[0]="/home/fulano1/.recycle/"
lixeira[1]="/home/fulano2/.recycle/"
lixeira[2]="/home/fulano3/.recycle/"
lixeira[3]="/home/fulano4/.recycle/"
lixeira[4]="/home/fulano5/.recycle/"
lixeira[5]="/home/fulano6/.recycle/"
lixeira[6]="/home/fulano7/.recycle/"

# Preparando arquivo de log
echo "Limpando as lixeiras na rede em $data_ini">$file_log
echo "com idade maxima de $maxage dias atras">>$file_log

# Iniciando processo
clear
echo "Limpando as lixeiras na rede em $data_ini"
echo "com idade maxima de $maxage"
for k in "${lixeira[@]}";
do
  echo "Verificando a lixeira $k"
  echo "Verificando a lixeira $k">>$file_log

  # procura todos os arquivos antigos de cada lixeira
  pasta_lixo=`find $k -atime +$maxage`;
  for old_files in $pasta_lixo;
  do
    if test -a "$old_files" ; then
      echo "excluindo o arquivo $old_files" ;
      echo "  $old_files" >>$file_log
      rm -f "$old_files"
    fi
  done
  # experimentando limpar todos os diretorios vazios
  # serao executados 5 vezes sobre o mesmo diretorio
  # pensando na possibilidade de nao haver 5 subdiretorios
  # como o nivel mais profundo
  find $k -type d -empty | xargs rmdir -p --ignore-fail-on-non-empty
  find $k -type d -empty | xargs rmdir -p --ignore-fail-on-non-empty
  find $k -type d -empty | xargs rmdir -p --ignore-fail-on-non-empty
  find $k -type d -empty | xargs rmdir -p --ignore-fail-on-non-empty
  find $k -type d -empty | xargs rmdir -p --ignore-fail-on-non-empty
done

# Finalizando a operacao
data_ini=`date +%d-%m-%Y+%H:%M`
echo "Terminada a limpeza na rede em $data_ini"

# Finalizando o arquivo de log
echo "Terminada a limpeza na rede em $data_ini" >>$file_log
<------------ FIM DO SCRIPT ------------------>


Ricardo Pinheiro escreveu:
Boa tarde,
Alguem poderia me ajudar a criar um script que mova o copie algunss arquivos de uma pasta para outra pasta, onde podesse escolher qual a data (periodo)? Ex. Copiar todas os arquivos com data anterior a 31/08/06 para a pasta /home/backup Obrigado, Ricardo

------------------------------------------------------------------------
Yahoo! Search
Música para ver e ouvir: You're Beautiful, do James Blunt <http://us.rd.yahoo.com/mail/br/tagline/search/video/*http://br.search.yahoo.com/search/video?p=james+blunt&ei=UTF-8&cv=g&x=wrt&vm=r&fr=intl-mail-br-b>



Reply to: