O cron é um serviço disponível no Linux e outros sistemas UNIX (HP-UX, AIX, Solaris, Linux, etc). Com ele é possível agendarmos rotinas ou tarefas, de modo que o sistema execute-as periodicamente.
No nosso primeiro exemplo, utilizaremos o crontab para agendarmos uma tarefa a ser executada pelo cron. Nele especificamos os comandos, além do horário e data que desejamos que seja executado pelo cron no período definido.
Apenas para exemplo, vamos criar este script antes:
# kedit /usr/local/bin/backup.sh
Adicione as linhas abaixo dentro do arquivo de texto:
#!/bin/bash
#fazendo backup do /etcDATA=`date +%Y-%m-%d-%H.%M`
cd /root
tar -cvzf backup-“$DATA”.tar.gz /etc
Transforme-o em executável:
# chmod +x /usr/local/bin/backup.sh
Este script fará backup do diretório /etc no diretório do root /root, e para evitar que um backup sobrescreva o outro ou que tenhamos de ficar renomeando os arquivos a cada backup, este script gera o arquivo de backup já com data e horário incluídos em seu nome, como em:
/home/root/backup-2006-09-17-11.44.tar.gz
Onde:
2006:ano
09:mês
17:dia
11:horas
44:minutos
Nota: você pode consultar mais opções para scripts de backup em https://www.hardware.com.br/artigos/scripts-backup/
Agora precisamos configurar o crontab para executa-lo periodicamente, assim não precisaremos mais lembrar de fazer backup, pois o sistema se encarregará de lembrar por nós 😉
Editando o crontab:
# crontab -e
Feito. Precisamos agora adicionar o período (tempo) que o cron deve chamar o nosso script de backup.
A sintaxe do crontab é bastante fácil de se trabalhar. A sintaxe para chamar nosso script deve ficar assim:
mm HH DD MM DS /usr/local/bin/backup.sh
Onde:
mm: minutos
HH: horas
DD: dia
MM: mês
DS: dia da semana
/usr/local/bin/backup.sh: tarefa a ser realizada
Neste exemplo, faríamos com que o script seja executado todos os dias as 22hrs. Veja:
00 22 * * * /usr/local/bin/backup.sh
Pronto. Salve o arquivo, e reinicie o cron para que a rotina funcione:
# /etc/init.d/cron restart
Para visualizar os agendamentos feitos (por usuário), use:
# contab -l
Se desejar apagar os agendamentos, digite o comando:
# crontab -r
Existe ainda uma outra maneira de montarmos os agendamentos com o cron. Através dos comandos do crontab, como no exemplo citado acima, os agendamentos são criados apenas para o usuário corrente, ou seja, o usuário que esta digitando o comando. Editando diretamente o arquivo de configuração do crontab, um novo campo é adicionado a sintaxe. Este campo, é o campo usuário. Ele é adicionado para que possamos determinar usuários para cada tarefa ou rotina a ser realizada.
# kedit /etc/crontab
A nova sintaxe ficará assim agora:
mm HH DD MM DS U /usr/local/bin/backup.sh
Onde:
mm: minutos
HH: horas
DD: dia
MM: mês
DS: dia da semana
U: nome do usuário especificado
/usr/local/bin/backup.sh: tarefa a ser realizada
Para finalizar, dentro do diretório /etc, existe temos quatro agendamentos pré-definidos:
cron.hourly, cron.daily, cron.weekly e cron.montly.
Onde:
cron.hourly: de hora em hora
cron.daily: de dia em dia
cron.weekly: de semana em semana
cron.montly: de mês em mês
Exemplo: Para que nosso script de backup seja executado diariamente, basta copiarmos o script para /etc/cron.daily
# cp /usr/local/bin/backup.sh /etc/cron/daily
Para finalizar, após copiar o script para o diretório desejado, é necessário reiniciar o daemon do cron, para que as alterações entrem em vigor.
# /etc/init.d/cron restart
Você pode verificar mais opções consultando o manual do cron. Boa sorte 😉
# man cron
Deixe seu comentário