Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > Linguagens de Programação > Programação > shell script
Wiki Classificados Reviews Jogos Grupos Sociais RSS Feeds FAQ Termos de Uso Contato Sobre
Registrar Fotos Membros Calendário Pesquisar Postados Hoje Marcar Fóruns Como Lidos

Como renomear o arquivo com a data corrente?



Quer ver menos banners de publicidade ? Entao Cadastre-se!

Tópico Trancado
 
LinkBack Ferramentas do Tópico
Antigo 05-06-2008, 05:55   #1 (permalink)
Padrão Como renomear o arquivo com a data corrente?

Ola pessoal!


Gostaria da ajuda de vc's , pois como ainda estou dando meus primeiros passos em Shell Script ainda preciso de ajuda.

Bom minha divida 'e a seguinte


Tenho um script que escrevi que transferi um arquivo de um servidor para outro, depois move o arquivo de uma pasta para outra e renomeia o mesmo.

Meu problema 'e que quando ele renomeia ele sobescreve o outro arquivo que esta na pasta.

O que eu gostaria de fazer 'e que sempre que ele tiver que mover o arquivo de uma pasta para outra , ele possa renomear o arquivo com a data do dia corrente.

Existe essa possibilidades?


Segue o script abaixo para que possam entender melhor.



Grato

Daniel Abreu




!/bin/bash

echo copying from etm to zion

#------------------------------TEST-------------------------#
scp -v /var/log/file/Master.csv root@ip_dest:/file/destino

echo Finish copy


echo rename file and save on backup folder

#------------------------------TEST----------------------------------------#
mv -v /var/log/file/Master.csv /var/log/file/backup/Masrter.csv.old

echo finish copy
 
Avatar de dlabreu
 
Registrado em: Mar 2008
Localização: South Africa
Distribuição: Centos
Idade: 29
Posts: 34
Agradeceu: 2
Agradecido 3 vez(es) em 3 Posts
Reputação: 13 dlabreu
dlabreu está offline  
Antigo 05-06-2008, 09:31   #2 (permalink)
Padrão

vc pode usar o awk é um boa opção p/ usar!

server# date | awk '{print $1}'
Thu
server# date | awk '{print $2}'
Jun
server# date | awk '{print $3}'
5
server# date | awk '{print $4}'
08:27:41
server#

pode usar assim tbm

Calango# touch teste
Calango# ls
teste
Calango# mv teste "`date`"
Calango# ls
Thu Jun 5 08:30:02 BRT 2008
Calango#
__________________
--
Anderson Eduardo Nascimento <c0d3_z3r0>
Administrador de Sistemas *Unix
anderson_underground[at]hotmail.com
Hack 'n Roll
 
Avatar de andersoneduardo
 
Registrado em: Jun 2007
Localização: Bahia
Distribuição: FreeBSD
Idade: 18
Posts: 208
Agradeceu: 4
Agradecido 26 vez(es) em 24 Posts
Reputação: 43 andersoneduardo
Enviar mensagem via Windows Live Messenger para andersoneduardo
andersoneduardo está offline  
Antigo 05-06-2008, 11:25   #3 (permalink)
Talking Resolvido / Grato!!!

Meu amigo!!!


MUITO OBRIGADO!!!


Fiz apenas uma simples auteracao aqui no script e tudo funciona como um relogio!


Grato !



Daniel
 
Avatar de dlabreu
 
Registrado em: Mar 2008
Localização: South Africa
Distribuição: Centos
Idade: 29
Posts: 34
Agradeceu: 2
Agradecido 3 vez(es) em 3 Posts
Reputação: 13 dlabreu
dlabreu está offline  
Antigo 06-06-2008, 17:18   #4 (permalink)
Padrão Outra sugestão...

Olá Daniel!

Não sei bem como você fez aí no seu script. Apesar da idéia do colega Anderson aparentemente resolver o seu problema, ele pode acabar de causando outros futuramente.

Apesar de o GNU/Linux ter evoluído bastante, o caractere de espaço ainda é um caractere especial e deve, portanto, ser escapado sob o risco de você criar um arquivo com nome de difícil identificação.

Mas vamos ao foco do seu problema... pelo que eu entendi do seu script, você copia um arquivo para um outro servidor e depois move este arquivo de origem para um outro diretório e com outro nome.

Eu concordo plenamente que o awk(1) seja uma ferramenta muito poderosa, mas neste caso específico estaríamos usando um canhão para matar uma mosca. A forma mais fácil de resolver o seu problema é utilizar o próprio date(1), que aceita uma série de parâmetros para formatação de datas.

Eu sugiro utilizar a seguinte sintaxe: date +%Y%m%d, que vai criar a data no formato AAAAMMDD. Por que este formato e não o DDMMAAA? A idéia de se ter um backup de um determinado arquivo, é ser capaz de recuperá-lo quando necessário e da forma mais rápida possível. Se você cria um arquivo que tenha o formato DDMMAAAA, quando usar um 'ls -l' terá todos os arquivos do dia 01, depois todos do dia 02 e assim por diante, independente do mês e do ano em que foram criados. Já quando se tem a formatação AAAAMMDD, você terá todos os arquivos do ano 2008, do mês 01 ao 12, e do dia 01 ao 31 e o mesmo para os anos subsequentes.

Isto facilita, não só a organização e a localização dos arquivos, como também a limpeza dos arquivos antigos de forma automatizada.

Seguindo esta sugestão, troque a última linha do script que você colocou no seu post para:

Citação:
Postado Originalmente por dlabreu Ver Post

mv -v /var/log/file/Master.csv /var/log/file/backup/Masrter.csv.`date +%Y%m%d`

E está resolvido o seu problema!
Super Moderador
 
Avatar de galahad
 
Registrado em: Jun 2008
Localização: Espírito Santo
Distribuição: Gentoo
Posts: 250
Agradeceu: 10
Agradecido 50 vez(es) em 48 Posts
Reputação: 42 galahad galahad
galahad está offline  
Tópico Trancado

Ferramentas do Tópico

Regras para Posts
Você não pode postar novos tópicos
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar seus posts

Código [IMG] Sim
Código HTML Não
Trackbacks are Sim
Pingbacks are Sim
Refbacks are Sim

Ir para...

Tópicos Similares
Tópico Tópico Iniciado Por Fórum Respostas Última Mensagem
data de gravação do arquivo Livio Samba/SMB 1 21-02-2006 08:46
Remover diretório/arquivo por data tabajara Iniciantes 2 19-12-2005 08:12
Data do arquivo em C++ estanisgeyer Programação 1 05-07-2005 23:45
alterar data de arquivo SDM Iniciantes 7 30-01-2005 14:12
Adicionar Data no nome de arquivo. A-Marcio Adm. em Geral 7 05-10-2004 15:58

Horários baseados na GMT -3. Agora são 18:19.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.