Cron: Como criar e gerir ações agendadas no Linux

12 Comentários

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.

Cron: Como criar e gerir 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.

Cron: Como criar e gerir ações agendadas no Linux

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)

Comentários

12

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de kidbengala
    kidbengala

    Muito bom !

  2. Avatar de Devsys
    Devsys

    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?

  3. Avatar de jaugusto
    jaugusto

    Porreiro mas aposto que existe um gui qq para fazer isso.

  4. Avatar de Marcos Araujo
    Marcos Araujo

    Excelente post para beginners e para aquelas pessoas que já utilizam o Linux, porém só navegam com o ambiente gráfico.

    Obrigado Pedro.

  5. Avatar de Stenio
    Stenio

    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.

  6. Avatar de manolo
    manolo

    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…

    1. Avatar de zedoido
      zedoido

      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!

    2. Avatar de zedoido
      zedoido

      Espera…manolo, esta foi um bonus!!!

    3. Avatar de zedoido
      zedoido

      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!!!

    4. Avatar de zedoido
      zedoido

      Mas como és curioso e já entendi que gostas de aprender, …agora vais fazer o trabalho de casa!

    5. Avatar de zedoido
      zedoido

      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!

  7. Avatar de Gekko
    Gekko

    Pedro Pinto, deves ter um grande arquivo de imagens, porque a primeira imagem parece ser o nautilus nos tempos do Gnome 2 🙂