Cron: Como criar e gerir ações agendadas no Linux
O cron é um serviço unix que permite que tarefas sejam executadas em modo “background” em intervalos regulares pelo deamon da cron. Estas tarefas são normalmente designadas por “cron jobs” em unix.
Aprenda como criar e gerir facilmente ações agendadas no Linux.
Os "cron jobs" estão constantemente a verificar o ficheiro /etc/crontab e os diretíorios /etc/cron.* e /var/spool/cron/. O crontab é o método para criar, editar, instalar, desinstalar e listar os "cron jobs".
Sintaxe do Crontab no Linux
O ficheiro do crontab é composto por cinco campos para especificar o dia, a data e a hora seguido pelo comando a ser executado. A sintaxe deverá ser igual à apresentada na imagem seguinte.
Exemplo de Crontab
Uma linha no crontab como a que está em baixo remove os ficheiros temporários de /home/someuser/tmp each day às 18:30 de cada dia.
30 18 * * * rm /home/someuser/tmp/* |
Alterando os valores dos parâmetros, como mostrado abaixo, irá provocar que este comando corra a diferentes horas (ou datas):
min| hora| dia do mes| mes| dia da semana| data/hora de execução
30 0 1 1,6,12 * — 00:30 Hrs no 1º de Jan, Junho e Dez. 0 20 * 10 1-5 –8.00 PM todos os dias da semana (Seg-Sex) apenas em Outubro. 0 0 1,10,15 * * — meia noite no 1º, 10º e 15º dia do mes. 5,10 0 10 * 1 — às 12:05 e 12:10, todas as segundas e no 10º dia de cada mês. |
Nota : Se inadvertidamente aceder à crontab sem argumentos não faça Control-d para sair. Esse comando irá remover todas as entradas do crontab. Faça Control-c para sair.
Comandos do crontab
Antes de iniciar a criação de "cron jobs" deve escolher com que editor de texto vai trabalhar. Por exemplo, usando o comando “export EDITOR=nano” vai passar a usar o nano quando editar o ficheiro do crontab.
- crontab -e
- Edita o ficheiro do crontab, ou cria um caso ainda não exista.
- crontab -l
- Mostra o conteúdo do ficheiro do crontab.
- crontab -r
- Remove o ficheiro do crontab.
- crontab -v
- Mostra quando foi a última vez que o ficheiro do crontab foi editado. (Apenas disponível em alguns sistemas)
Este artigo tem mais de um ano
Muito bom !
Pedro Pinto, e para a maioria das distros que aqui apresentas, que usam systemd, o que dizer do uso do cron? Não seria interessante falar?
Porreiro mas aposto que existe um gui qq para fazer isso.
Excelente post para beginners e para aquelas pessoas que já utilizam o Linux, porém só navegam com o ambiente gráfico.
Obrigado Pedro.
A definição do horário é uma das partes mais complicadas do Crontab. Eu me vejo constantemente recorrendo ao seguinte site para ajuda: https://crontab.guru/
O site converte para inglês o horário que você quer no crontab.
O Cron já existe há décadas e desde então não evoluiu grande coisa. Não admira que os utilizadores “normais” continuem a preferir o windows…
Tavas também na fase de mudo.
#!/bin/sh
# This script makes a backup of Ubuntu WSL stuff every day
cd /root
dpkg –get-selections | grep -v deinstall >> /root/packages.txt
tar czvf /opt/backup/WSLbackup.tar.gz /root/*
cp -f /opt/backup/WSLbackup.tar.gz /mnt/e/Backups/WSLbackup.tar.gz
rm /opt/backup/WSLbackup.tar.gz
touch /var/log/backup_success
Tanks!
Espera…manolo, esta foi um bonus!!!
E para que fiques a amar mais e mais o contrab olha a cereja so para ti…
Por im, crias um ficheiro denominado run_backup com o conteudo seguinte:
# Run backup every day at 5am
# m h dom mon dow user command
#—————————–
0 5 * * * root /root/backup.sh
Sempre a aprender!!!
Mas como és curioso e já entendi que gostas de aprender, …agora vais fazer o trabalho de casa!
No fundo manolo, a tua sorte é eu ser zedoido, por isso, quando comparado contigo, que és um “normal”, nada acrescentas de valor ao teu comentario. Agora imagina se fosses….manolointeligente!
Pedro Pinto, deves ter um grande arquivo de imagens, porque a primeira imagem parece ser o nautilus nos tempos do Gnome 2 🙂