+ Responder ao Tópico



  1. 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

  2. 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#



  3. Meu amigo!!!


    MUITO OBRIGADO!!!


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


    Grato !



    Daniel

  4. 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!






Tópicos Similares

  1. Respostas: 5
    Último Post: 07-07-2010, 00:05
  2. Respostas: 4
    Último Post: 27-12-2009, 08:19
  3. Compactar arquivos com data especifica
    Por fabianoheringer no fórum Servidores de Rede
    Respostas: 4
    Último Post: 22-09-2006, 11:22
  4. como manipular arquivos com nomes com caractéres especiais (-=, etc)
    Por evandrofisico no fórum Servidores de Rede
    Respostas: 3
    Último Post: 15-08-2006, 07:07
  5. Como enviar um email com um arquivo anexo?
    Por OsvaldoCruz no fórum Servidores de Rede
    Respostas: 2
    Último Post: 19-11-2002, 08:19

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L