shell-script-pt
[Top][All Lists]
Advanced

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

RES: [shell-script] Backup de arquivos com data de criação no nome


From: Julio Cezar Neves - DISB.O
Subject: RES: [shell-script] Backup de arquivos com data de criação no nome
Date: Wed, 8 May 2002 16:21:44 -0300


> -----Mensagem original-----
> De: Rodolfo Villanova
> [mailto:address@hidden]
> Enviada em: terça-feira, 7 de maio de 2002 15:36
> Para: address@hidden
> Assunto: RES: [shell-script] Backup de arquivos com data de criação no
> nome
> 
> 
> Amigo Julio,
> 
> O script ntod.sh está ok, mas no dton.sh encontrei um problema.
> A execução do dton.sh devolve uma diferença de 245 (dias) 
> entre o número que
> deveria retornar e o número devolvido por esse script.
> 
> Ex.:
> > dton.sh 07/05/2002
> 8408
> 
> #quando deveria retornar:
> 8163

Olá Rodolfo,
acho que há algo no ar além de aviões de carreira! Veja só este teste feito
sob o ksh em um SVR4 (esta testado tb no bash).
Prompt> dton.sh 7/5/2002
8163
Prompt> ntod.sh 8163
07/05/2002

Vc leu as observações no cabeçalho do programa? Usou-o direito? Por aqui ele
está funcionando blz. Até onde pude observar na lista, ninguém reclamou (nem
aprovou...).

Este script está em produção há um bom tempo. Se por acaso for uma
incompatibilidade de Shell, por favor me comunique.
[ ]s,
Julio

> ====================================>8CorteAqui8<=============
> ==============
> 
> Existe alguma forma simples/pronta de pegar a data de ontem??
> Lembrando que "ontem" pode ser dia 30, 31 ou 29, pode ser 
> também do ano
> passado, ano bissexto, etc...
> 
> > > que tal essa?
> > >
> > > $ date --date '1 day ago'
> > > Ter Ago  7 11:11:11 BRT 2001
> > >
> > >
> > > - e assim dá pra fazer com day, month, year
> > > - dá pra colocar o número que quiser tb na quantidade
> > > - tire o 'ago' e a data vai ser no futuro.
> > >
> > > exemplos:
> > >
> > > ontem:     1 day ago
> > > amanhã:    1 day
> > > daqui um mês:  1 month
> > > combinação:        1 month 15 days ago
> 
> ====================================>8CorteAqui8<=============
> ==============
> 
> Esta é realmente uma tremenda solução em bash puro! Mas se vc 
> estiver usando
> outro sabor, a necessidade me obrigou a desenvolver 2 scrips: 
> o primeiro -
> dton.sh - transforma uma data em dias decorridos a partir de 
> 01/01/1980 e o
> segundo - ntod.sh - transforma números em datas.
> 
> Abaixo estes 2 scripts, que tb podem ser encontrados em
> http://www.dicaslinux.com.br. Vale a pena uma visita. O site 
> é mantido por
> bons profissionais e está repleto de dicas.
> 
> ====================================>8CorteAqui8<=============
> ==============
> 
> Prompt> cat dton.sh
> #!/bin/ksh
> #
> #=============================================================
> =========
> # Calcula qtd dias entre uma data passada como parametro e 01/01/1980.
> # Se nao for passado nenhum parametro a data de hoje sera assumida.
> # Obs. Para executar este programa sob o sh, trocar os 
> $((..)) por expr
> #=============================================================
> =========
> # Leia: Linux - Programacao Shell  ISBN: 85-7452-048-9
> # Autor: Julio Cezar Neves <mailto:address@hidden>
> #=============================================================
> =========
> #
> if  [ $1 ]
> then
>         DFim=`echo $1 | cut -f1 -d"/"`
>         MFim=`echo $1 | cut -f2 -d"/"`
>         AFim=`echo $1 | cut -f3 -d"/"`
> else
>         DFim=`date +%d`
>         MFim=`date +%m`
>         AFim=`date +%Y`
> fi
> 
> TotDias=$((1 + 365 * (AFim - 1980) + (AFim - 1980) / 4))
> [ $((AFim % 4)) = 0 -a $MFim -le 2 ] && TotDias=$((TotDias - 1))
> 
> [ $MFim -ne 1 ] &&
> for i in `echo "31 28 31 30 31 30 31 31 30 31 30 31" | cut 
> -f-$((MFim - 1))
> -d" " 2> /dev/null`
> do
>         TotDias=$((TotDias + $i))
> done
> echo $((TotDias + DFim))
> 
> -x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x
> -x-x-x-x-x-x-
> 
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de 
> programação, como perl, C etc.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
http://www.listasdiscussao.cjb.net
--------------------------------------------------------------------- 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]