Planejando Processos - Linux
Alguns processos podem ser iniciados automaticamente em intervalos de tempo específicos. Para configurar esses processos no Linux, usa-se uma ferramenta chamada cron. O núcleo dessa ferramenta é o processo crond, que é automaticamente iniciado no Linux e verifica sua configuração a cada minuto para ver se há alguma tarefa a ser executada. Por padrão, o cron lê seu principal arquivo de configuração, o /etc/crontab
O arquivo /etc/crontab
programicio@Programicio:~$ cat /etc/crontab # /etc/crontab: crontab do sistema # Diferente de outros crontabs, você não precisa executar o comando `crontab` # para instalar a nova versão ao editar este arquivo # e os arquivos em /etc/cron.d. Esses arquivos também possuem campos de nome de usuário, # que nenhum outro crontab possui. SHELL=/bin/sh # Você também pode sobrescrever o PATH, mas por padrão, as versões mais recentes o herdam do ambiente #PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Exemplo de definição de tarefa: # .---------------- minuto (0 - 59) # | .------------- hora (0 - 23) # | | .---------- dia do mês (1 - 31) # | | | .------- mês (1 - 12) OU jan, feb, mar, apr ... # | | | | .---- dia da semana (0 - 6) (Domingo=0 ou 7) OU sun, mon, tue, wed, thu, fri, sat # | | | | | # * * * * * nome-do-usuário comando a ser executado 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.daily; } 47 6 * * 7 root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.weekly; } 52 6 1 * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; } #
Em todas as configurações do crontab, você pode encontrar três elementos diferentes. Primeiro, é possível ver a indicação do tempo em que o comando deve ser executado. Para especificar o tempo de execução de uma tarefa cron, você pode usar 5 componentes:
Minutos
Horas
Dia do mês
Mês
Dia da semana
Em seguida, vem o nome do usuário com as permissões necessárias para executar a tarefa, e a última parte é o nome do comando a ser executado.
Por exemplo, vejamos a última linha:
52 6 1 * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; }
Nesse caso, a tarefa test -x ...
É importante notar que não é recomendável alterar este arquivo diretamente. Alterações feitas no /etc/crontab
crontab
crontab -e
Se o usuário atual não tiver criado tarefas antes, uma mensagem correspondente será exibida:
programicio@Programicio:~$ crontab -e no crontab for programicio - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/nano >---- mais fácil 2. /usr/bin/vim.tiny 3. /bin/ed Choose 1-3 [1]:
Escolha o editor de texto preferido. Como resultado, uma janela do editor será aberta, onde você pode definir tarefas para execução automática via cron:
40 17 * * 1-5 ps aux > ~/Documents/proclog
Aqui, a tarefa ps aux > ~/Documents/proclog
Se precisar remover uma tarefa, você pode abrir o arquivo e excluir ou comentar a linha correspondente. Da mesma forma, você pode abrir o arquivo para adicionar novas tarefas ou modificar as existentes.
Outra forma de agendar tarefas via cron é criar arquivos no diretório /etc/cron.d
/etc/crontab
/etc/cron.d
/etc/crontab
O cron também utiliza quatro diretórios diferentes para executar tarefas em intervalos regulares. Esses diretórios são /etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly