Resumo: Este artigo trás informações sobre o comando
cron. Alguns comandos e parâmetros que poderão ser utilizados também estarão citados neste artigo, assim como alguns exemplos de como poderá ser utilizado.
Abstract: This article back information on the command cron. Some command and parameters that could be used also will be cited in this article as well as some examples of how it may be used.
Introdução
O
cron é uma ferramenta de sistemas
Linux e Unix que permite a execução de comandos ou programas, agendados para um determinado dia/mês/ano/hora.
Para demonstrar melhor a utilidade de comando cron no Linux, suponhamos que por questões de segurança você precisa fazer um backup de alguns arquivos de uma aplicação, que é acessada por clientes diariamente. Neste caso você poderá utilizar o cron para fazer esse backup automaticamente em horários programados.
Como utilizar o cron
O agendamento das tarefas é feita através do arquivo de configuração localizado no diretório
/etc/crontab ou em arquivos de usuários localizados em /var/spool/cron/crontabs/[nome do usuário].
Para adicionar uma tarefa ao cron é preciso que você abra com um editor de texto qualquer (se estiver usando interface gráfica Gnome, e se tiver instalado, poderá utilizar o gedit, ou se e estiver em moda caracter o vim ,vim, nano, pipe como preferir) o arquivo /etc/crontab e agendar, definindo o mês/dia/hora em que o comando devera ser executado. Para que a ferramenta cron funcione não é necessário reiniciá-la.
Para que o agendamento funcione é necessário que siga um padrão, um formato ao qual deve se respeitar. Veja o exemplo abaixo:
[minutos] [horas] [dias do mês] [mês] [dias da semana] [usuário] [comando]
31 18 1 * * root run-parts --report /etc/cron.montly
| | | | | | |
| | | | | | \_Comando que será executado
| | | | | |
| | | | | \_ UID que executará o comando
| | | | |
| | | | \_ Dia da semana (0-7)
| | | |
| | | \_ Mês (1-12)
| | |
| | \_ Dia do Mês (1-31)
| |
| \_ Hora
|
\_ Minuto
Onde corresponde:
Outras considerações
Na opção que corresponde ao dia da semana pode ser utilizado as 3 primeiras letras em inglês (SUN,MON,TUE,WED,THU,FRI,SAT).
Você pode executar tarefas de hora em hora, diariamente, semanalmente e mensalmente, simplesmente colocando seus arquivos dento dos diretório respectivos /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /cron.monthly.
Veja um exemplo: dentro de "/etc/cron.daily/" tenho um arquivo backup, onde tenho o script de backup do meu sistema, ou seja, no meu caso ele ira fazer backup todos os dias as 12:20. Obs.: é necessário que esse arquivo tenha permissão para execução, e para isso basta executar o comando: "chmod +x /etc/cron.daily/backup".
Os campos que não for se importar, pode ser colocado um "*", como se tivesse selecionado "todas as possibilidades", sendo que podem ser colocado "-" (hífen) para determinar os intervalos de execução. A "," (vírgula) define uma lista valores, lista de opções com os números (1,3,5).
O arquivo que é gerado pelo cron em no diretório do usuário '/var/spool/cron/crontabs/[usuário]' pelo crontab tem o mesmo formato do /etc/crontab, exceto por não possuir o campo 'usuário (UID)', pois o nome do arquivo já identifica o usuário no sistema.
Caso você queira editar um arquivo de usuário feito pelo cron, basta utilizar o comando "crontab -e", ele irá abrir o que foi agendado para aquele usuário.
Cuidado, caso você edite o "crontab", certifique-se para que haja uma linha em branco no final do arquivo, caso esta linha não exista o ultimo comando não se executará. E tenha multa atenção ao colocar qualquer texto após o programa que será executado será considerado comentário e não será interpretado pelo cron.