Automatizar as tarefas com init et crontab

Dezembro 2016


No Linux, é fácil automatizar as tarefas, com init para lançar uma tarefa no arranque, ou então com crontab para lançar uma tarefa em um momento preciso.
Existem vários softwares que geram os crontabs, aqui o software é apresentado.

Criar uma nova tarefa


Antes de tudo, é preciso criar um novo arquivo que executará o código que se vê. Para tanto, basta abrir um editor (como root), e registrar o arquivo na pasta desejada (veja mais abaixo). Não esqueça de indicar o interpretador a ser usado no início do arquivo.
Por exemplo (com bash) :
#!/bin/bash   
comando;   
...
É possível utilizar um outro interpretador, mudando simplesmente #!/bin/bash pelo interpretador escolhidoa : #!/bin/python, #!/bin/perl, etc.

Em seguida, é preciso fazer o arquivo ser executável :
# chmod 755 /diretório/meuarquivo

Lançar uma tarefa no arranque: init

Apresentação


init é o primeiro processo, executado pelo núcleo, que é pai de todos os outros (seu PID é então 1).
No arranque, ele lança diversos scripts contidos no /etc/init.d/ ou /etc/rc*.d/.

É na pasta /etc/init.d que é preciso registrar os arquivos a serem lançar no arranque.
É preciso adicionar o arquivo na lista dos processos lançados no arranque:
# update-rc.d mon-fichier defaults

Mais informações


Digite em um terminal :
  • ls -l /etc/init.d/ para ver os scripts lançados no arranque
  • init --help
  • cat /etc/init.d/README
  • man init
  • info init
  • man update-rc.d

Lançar uma tarefa em um momento preciso: crontab

Apresentação


cron permite lançar uma tarefa regularmente : todos os dias, todas as semanas, todas as horas...
Com crontab, tem um arquivo cron pelo usuário.

Adicionar uma tarefa


Existe várias pastas contendo tarefas executadas pelos crons :
  • /etc/cron.hourly : os scripts executados cada hora.
  • /etc/cron.daily : os scripts executados cada dia.
  • /etc/cron.weekly : os scripts executados cada semana.
  • /etc/cron.monthly : os scripts executados cada mês.

Basta criar um arquivo na pasta correspondente.

No entanto, é possível lançar tarefas em momentos precisos.
Para tanto, é preciso criar um arquivo respeitando a sintaxe de crontab (veja o capítulo abaixo) no /etc/cron.d/, que conterá ele mesmo um comando ou que executará um outro arquivo.

É possível criar tarefas para um usuário em particular. É preciso editar o arquivo crontab do usuário (ver abaixo).

Sintaxe do arquivo crontab


Existem vários tutoriais sobre este tema.
Vela :

Lançar uma tarefa para somente um usuário


Para tanto ; é preciso editar seu arquivo usuário, digitando no console crontab -e.
Se você criar um arquivo crontab para outro usuário que não seja o habitual, é preciso passar pelo comando # crontab -u usuário -e.
É preciso em seguida registrar o arquivo, sem trocar seu nome ou seu lugar.
É preciso sempre passar pelo comando crontab -e para editar o arquivo

mais informações


Digite em um terminal :
  • man cron
  • info cron

Veja:

Cron com uma interface gráfica


Existem diversos softwares gráficos que permitem criar tarefas automatizadas:
  • kcron
  • gcrontab


Artigo <a href='http://www.commentcamarche.net/faq/8447-automatiser-des-taches-avec-init-et-cron
'>original</a> publicado por Ssylvainsab
Tradução feita por Ana Spadari

Veja também :
Este documento, intitulado « Automatizar as tarefas com init et crontab »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.