Skip to main content

Como editar o arquivo Linux Crontab para agendar trabalhos

Linux Fedora - Gerenciando usuários com useradd, usermod e userdel (Abril 2025)

Linux Fedora - Gerenciando usuários com useradd, usermod e userdel (Abril 2025)
Anonim

Um daemon no Linux chamado cron executa processos em intervalos regulares. Ele verifica certas pastas no seu sistema para que os scripts sejam executados em uma série de pastas, incluindo /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly. Existe também um arquivo chamado / etc / crontab.

Colocando scripts em pastas Cron

Você pode simplesmente colocar scripts nas pastas relevantes para que eles sejam executados em intervalos regulares.

Por exemplo, abra uma janela de terminal e execute o seguinte comando ls:

ls / etc / cron *

Você verá a lista de programas ou scripts que são executados por hora, diariamente, semanalmente e mensalmente.

O problema com essas pastas é que elas são um pouco vagas. Por exemplo, diariamente significa que o script será executado uma vez por dia, mas você não terá controle sobre o tempo em que o script será executado durante esse dia.

É aí que entra o arquivo crontab.

Ao editar o arquivo crontab, você pode obter um script ou programa para ser executado na data e hora exatas em que deseja executar.

Permissões

O comando crontab requer que um usuário tenha permissões para editar um arquivo crontab. Existem basicamente dois arquivos que são usados ​​para gerenciar permissões de crontab:

  • /etc/cron.allow
  • /etc/cron.deny

Se o arquivo /etc/cron.allow existir, o usuário que deseja editar o arquivo crontab deverá estar nesse arquivo. Se o arquivo cron.allow não existir, mas houver um arquivo /etc/cron.deny, o usuário não deverá existir nesse arquivo. Se ambos os arquivos existirem, o /etc/cron.allow substitui o arquivo /etc/cron.deny. Se nenhum arquivo existir, depende da configuração do sistema se um usuário pode editar o crontab.

O usuário root sempre pode editar o arquivo crontab. Você pode usar o comando su para alternar para o usuário root ou o comando sudo para executar o comando crontab.

Editando o Arquivo Crontab

Cada usuário que possui permissões apropriadas pode criar seu próprio arquivo crontab. O comando cron basicamente procura todos os arquivos crontab e executa cada um deles.

Para verificar se você possui um arquivo crontab, execute o seguinte comando:

crontab -l

Se você não tiver um arquivo crontab, a mensagem "no crontab for "aparecerá, caso contrário seu arquivo crontab será exibido (essa funcionalidade difere de sistema para sistema, às vezes não exibe nada e outras vezes exibe" não edite este arquivo ").

Para criar ou editar um arquivo crontab, execute o seguinte comando:

crontab -e

O arquivo que é aberto tem muitas informações, mas a parte principal é o exemplo logo antes do final da seção de comentários (os comentários são indicados por linhas que começam com #).

# m h dom mon dow command

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Existem 6 informações para caber em cada linha do arquivo crontab:

  • O minuto do dia o comando é executar (m)
  • A hora do dia o comando é executar (h)
  • O dia do mês o comando é rodar (dom)
  • O mês em que o comando é executado (seg)
  • O dia da semana o comando é executar (dow)
  • O comando

Para cada item (exceto o comando), você pode especificar um caractere curinga. Veja o seguinte exemplo de linha crontab:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

Aos 30 minutos, 18 horas e qualquer dia, mês e dia da semana, essa entrada do crontab zipará e tará o diretório inicial para a pasta / var / backups.

Para obter um comando para executar 30 minutos após cada hora, execute o seguinte comando:

30 * * * * comando

Para que um comando seja executado a cada minuto após as 18:00, execute o seguinte comando:

* 18 * * * comando

Portanto, você precisa ter cuidado ao configurar seus comandos crontab.

Por exemplo:

* * * 1 * comando

Este comando será executado a cada minuto de todas as horas de todos os dias de todas as semanas em janeiro.

Para executar um comando às 5 da manhã de 1º de janeiro, você faria o seguinte comando no arquivo crontab:

0 5 1 1 * comando

Como remover um arquivo Crontab

Na maioria das vezes você não vai querer remover o arquivo crontab, mas você pode querer remover algumas linhas do arquivo crontab.

No entanto, se você quiser remover o arquivo crontab do seu usuário, execute o seguinte comando:

crontab -r

Uma maneira mais segura de fazer isso é executar o seguinte comando:

crontab -i

O sistema operacional solicita a verificação antes de remover o arquivo crontab.