você está aqui: Home  → Arquivo de Mensagens

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 .


 

 

Veja a relação completa dos artigos de Francisco Aparecido da Silva

Opinião dos Leitores

Francisco
22 Nov 2010, 19:05
Guilherme, a diferença esta no \ (escape). Sem ele, você tem erros neste comando via cron.
EmanuelSan
19 Nov 2010, 11:12
Normalmente eu sempre uso essa formatação para o date entre aspas, mas estou vendo que não adianta para o crontab pois esse caracter % é muito especial para ele (tentei com apóstrofos e também não funcionou).

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.
Eduardo
13 Nov 2010, 10:23
Francisco,

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.
Guilherme
13 Nov 2010, 09:52
gui@slackware:~$ date +%d-%m-%Y
13-11-2010
gui@slackware:~$ date +\%d-\%m-\%Y
13-11-2010
gui@slackware:~$

Qual a diferença?
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script