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

Re: Script comparação de datas



hehe, complicado mesmo, mas tentei da forma como voce falou, e acontece que ele remove o diretório passado também, o que não pode, exemplo, sem o *, eu passando a pasta Transferido/ ele removia tudo que tivesse dentro dela, se nao tivesse nada, ele removia ela, entendeu ? entao usei o maxdepth mesmo porque testando aqui, eu verifiquei por exemplo, que se eu altero um arquivo dentro da pasta transferido, o modification time da pasta também é atualizado segundo o time do ultimo arquivo modificado, entao ficou de boa assim, usando o maxdepth eu verifico somente o mtime da pasta =D


Vlw xD


Em 12 de fevereiro de 2014 12:17, henrique <jmhenrique@yahoo.com.br> escreveu:
juro que não entendi nada do que vc falou sobre o problema. Mas quando vc falou agora em maxdepth, talvez funcionasse se vc não colocasse o "*" após a barra de diretorio... tente ai. :D

abraços e divirta-se
Henry


--------------------------------------------
Em qua, 12/2/14, Rodolfo <rof20004@gmail.com> escreveu:

 Assunto: Re: Script comparação de datas
 Para: "henrique" <jmhenrique@yahoo.com.br>
 Cc: "debian-user-portuguese" <debian-user-portuguese@lists.debian.org>
 Data: Quarta-feira, 12 de Fevereiro de 2014, 14:00

 Descobri como resolver, dei
 uma lida no MAN do comando, e vi que eu podería identificar
 o DEPTH da procura, inclui -maxdepth 0 e resolveu, vlw
 =D


 Em 12 de fevereiro de 2014 11:44, Rodolfo <rof20004@gmail.com>
 escreveu:

 Henrique, o comando que voce me passou
 funciona que e uma beleza, porem estou com um problema,
 preciso executar esse find em 3 pastas diferentes, ele
 executa, so que ele remove o conteudo das pastas quando nao
 era pra remover, ta assim meu script.


 #!/bin/bash
 # $1 = Pasta principal, onde se encontram as
 pastas Disponivel, Transferido e Erro.
 find $1/Transferido/* -type d -mtime +10 -exec rm
 -fR {} \;

 find $1/Disponivel/* -type d -mtime +10 -exec rm -fR {}
 \;find $1/Erro/* -type d -mtime +10  -exec
 rm -fR {} \;
 Se eu executo linha por linha, sem usar o script,
 funciona legal, porém, ao botar isso em script, ele
 realmente remove os diretorios que tem modificacao +10,
 porem, dos diretorios que nao tem, ele nao remove, ate ai
 tudo bem, mas ele remove o que tem dentro desses diretorios
 que nao era pra ser removido, estranho.


 Sabe o que é ?
 Vlw


 Em 12 de fevereiro de
 2014 10:16, henrique <jmhenrique@yahoo.com.br>
 escreveu:


 Vc
 quer fazer isso???



 find /diretorio -type f  -mtime +10 -exec rm -f {} \;



 Abraços e divirta-se.

 Henry



 --------------------------------------------

 Em qua, 12/2/14, Rodolfo <rof20004@gmail.com>
 escreveu:



  Assunto: Script comparação de datas

  Para: "debian-user-portuguese" <debian-user-portuguese@lists.debian.org>

  Data: Quarta-feira, 12 de Fevereiro de 2014, 11:59



  Alguem tem ou sabe como

  fazer um script bash que me diz se uma data é menor que
 a

  outra ?

  Estou fazendo assim mas esta dando

  erro:

  #!/bin/bash



  # Data atual menos 10 dias

  atrasdateMinusTen=$(date -d 'now - 10

  days' +'%d/%m/%Y')

  echo "Data atual menos 10:

  $dateMinusTen"

  for dir in "$1"/*

  do        modificationDate=$(stat -c %y

  "$dir" | cut -d ' ' -f1);   

      modificationDate=$(date -d

  "$modificationDate"

  +'%d/%m/%Y');



          echo $dateMinusTen;        echo

  $modificationDate;

          if [ $modificationDate <

  $dateMinusTen ]; then                 

        echo "Hello";

          fidone



  O erro ocorre no ultimo IF, onde vejo se a data

  de modificacao e menor que a data atual.

  O que quero fazer é que esse script, ao ser

  executado, delete os arquivos e pastas que sua ultima

  modificacao foi mais de 10 dias atraz, alguem sabe onde

  posso estar errando ? No caso era pra aparecer o Hello,
 mas

  da o erro a seguir:



  ./print_date_modification: line 17: 02/02/2014:

  Arquivo ou diretório não encontrado





  Obrigado desde já =D










Reply to: