Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Usando data no crontab
Colaboração: Francisco Aparecido da Silva
Data de Publicação: 13 de novembro de 2010
Uma vez que você usa o crontab para automatizar tarefas, surgem dúvidas de como utilizar datas (comando date) sem ter que recorrer a scripts externos. Por exemplo, imagine que no crontab tenha uma rotina para compactar um determinado diretório, /srv/samba/, guardando para cada dia um arquivo.
No crontab ficaria assim:
4 10 * * * tar -cvzf /bkp/samba/diario/`date +\%d-\%m-\%Y`.samba.tar.gz /srv/samba/*
Perceba que uso um escape(\) para todo % para que a execução do trabalho seja realizada sem erros.
No shell, você pode testar e comparar o resultado:
date +\%d-\%m-\%Y usando escape para todo % date +%d-%m-%Y sem usar escape
Francisco Aparecido da Silva trabalha atualmente com administração de redes e aulas na graduação na www.santacruz.br com segurança de sites. Utiliza GNU/Debian como distro linux preferida tanto em servidores quanto nos desktops. Blog Pessoal http://blog.silva.eti.br e no http://twitter.com/fafanete .
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
Opinião dos Leitores
22 Nov 2010, 19:05
19 Nov 2010, 11:12
Sorte que nunca me deparei com algum problema em decorrência do uso do % no crontab (não sabia que ele era especial nesse contexto). Acho que é porque em 95% dos casos eu só uso o crontab para chamar scripts.
Sobre o exemplo eu acho que é melhor usar a data no formato Ano-Mês-Dia, eu sempre faço isso internamente nos programas e nos nomes de arquivo que incluam datas no nome.
13 Nov 2010, 10:23
Boa iniciativa, mas normalmente para tarefas mais complexas, como um bom script de backup, faz-se via crontab a chamada de um script.
Guilherme,
A diferença está na execução via crontab, que sem escapar apresenta erro na execução.
13 Nov 2010, 09:52
13-11-2010
gui@slackware:~$ date +\%d-\%m-\%Y
13-11-2010
gui@slackware:~$
Qual a diferença?





