crontab

Tutorial completo para iniciantes de Cron Jobs

Tutorial completo para iniciantes de Cron Jobs
Cron é o utilitário mais útil em um sistema operacional Linux ou UNIX que permite a execução de comandos ou scripts em uma determinada programação sem qualquer intervenção do usuário. Os comandos e scripts programados também são chamados de tarefas cron. É usado principalmente para automatizar trabalhos recorrentes, como a execução de backups agendados, limpeza de arquivos temporários, manutenção do sistema e vários outros trabalhos recorrentes. É semelhante ao Agendador de tarefas no sistema operacional Windows.

Neste tutorial, forneceremos a introdução básica de tudo que você precisa entender para agendar uma tarefa com o cron. Isso inclui a sintaxe básica do cron, edição do arquivo crontab, agendamento de um trabalho com o cron com alguns exemplos, visualização do cron job, etc.

Noções básicas de Cron Job

Vamos entender alguns princípios básicos de um cron job.

O que é Crond?

Crond é o daemon no sistema Linux que roda em segundo plano e verifica a cada minuto para ver se há algum trabalho agendado naquele momento. Se houver, ele executa esse trabalho, senão permanece inativo.

Sintaxe do Cron Job

A sintaxe do cron job é a seguinte:

* * * * * comando / script

Da esquerda:

Para especificar vários valores em um campo, use os seguintes símbolos de operador:

  1. Asterisco (*): Para especificar todos os valores possíveis para um campo
  2. Traço (-): Para sespecifique uma gama de valores
  3. A vírgula (,): Para especificar uma lista de valores
  4. Separador (/): Para especificar um valor de etapa

Editando Arquivo Crontab

Crontab é um arquivo que contém as tarefas agendadas em uma sintaxe específica. Existem dois tipos de arquivos crontab; um para cron jobs específicos do sistema e o outro para cron jobs específicos do usuário.

Cron jobs do sistema

Os cron jobs de todo o sistema estão localizados no / etc / crontab arquivo e / etc / cron.d diretório, e eles são executados por meio de / etc / cron.de hora em hora, / etc / cron.diariamente, / etc / cron.semanalmente e / etc / cron.por mês. Apenas um administrador do sistema pode acessar esses arquivos.

Um administrador de sistema pode definir um cron job usando o seguinte comando:

$ nano / etc / crontab

Aqui está a sintaxe do trabalho no / etc / crontab Arquivo:

# min hr dayofmonth month dayofweek username command
* * * * * user1 ifconfig

Tarefas cron específicas do usuário

Os cron jobs específicos do usuário estão localizados no /var / spool / cron / crontabs diretório. Embora você possa editar esses trabalhos manualmente, é recomendado editá-los usando o comando crontab -e.

Um usuário padrão pode definir um cron job usando o seguinte comando:

$ crontab -e

Por exemplo, se você estiver logado como um usuário de “teste”, executar o comando crontab -e editará o arquivo crontab para o usuário de “teste”. Da mesma forma, se você estiver logado como usuário root, o comando crontab -e irá editar o arquivo crontab para o usuário root.

Emita o comando abaixo no Terminal para editar o arquivo crontab para qualquer outro usuário:

$ sudo crontab -u -e

Por exemplo, se você estiver conectado como um usuário “test1” e quiser editar o arquivo crontab para o usuário “test2”, o comando seria:

$ sudo crontab -u test2 -e

Esta é a sintaxe do cron job que pode ser adicionado ao arquivo crontab:

# m h dayofmonth month dayofweek command
* * * * * ifconfig

Você pode ver em trabalhos específicos do usuário que não há nenhum "nome de usuário" arquivado.

Comandos Crontab

O comando crontab é usado para editar, listar e remover os cron jobs:

  • crontab -e Para editar o arquivo crontab do usuário atual
  • crontab -l Para exibir o conteúdo do arquivo crontab
  • crontab -u [nome de usuário] Para editar o arquivo crontab de qualquer outro usuário
  • crontab -r Para remover o arquivo crontab do usuário atual
  • crontab -i Para exibir um prompt antes de remover o arquivo crontab do usuário atual

Agendando uma tarefa com o Cron

Com o Cron, você pode executar um trabalho em uma hora, data e intervalos específicos com uma unidade mínima em minutos, i.e., você pode executar um trabalho a cada minuto.

Para agendar um trabalho com cron, abra o arquivo crontab usando o método discutido na seção anterior. Depois de abrir o arquivo crontab, você será solicitado a selecionar um editor de texto. Digite um número para escolher seu editor de texto preferido. Role para baixo até a parte inferior do arquivo e adicione tarefas na sintaxe descrita acima. Cada linha em um arquivo especifica um comando. As primeiras cinco entradas na linha especificam a hora agendada e a última entrada especifica qual comando ou script deve ser executado.

Exemplo:

A seguinte linha no arquivo crontab irá agendar o cron job para executar o comando / script a cada 30 minutos após 5 horas em todos os dias da semana de segunda a sábado.

* / 30 5 * * 1-6 comando / script

Minutos

Neste campo, especificamos os minutos em que queremos que o comando seja executado. É especificado de 0 a 59. O * neste campo significa executar o trabalho a cada minuto. Na linha crontab acima, o * / 30 diz ao cron job para executar o comando / script especificado a cada 30 minutos.

Horas

Neste campo, especificamos as horas em que queremos que o comando seja executado. É especificado de 0 a 23. O * neste campo significa executar o trabalho a cada hora. Na linha crontab acima, o valor 5 diz ao cron job para executar o comando / script especificado a cada cinco horas.

Dia do mês

Neste campo, especificamos os dias específicos dos meses em que queremos que o comando seja executado. É especificado de 1 a 31. O * neste campo significa todos os dias. Na linha crontab acima, o * diz ao cron job para executar o comando / script especificado todos os dias.

Mês do ano

Neste campo, especificamos os meses específicos em que queremos que o comando seja executado. É especificado de 1 a 12. O * neste campo significa todos os meses. Na linha crontab acima, o * diz ao cron job para executar o comando / script especificado todos os meses.

Dia da semana

Neste campo, especificamos os dias da semana em que queremos que o comando seja executado. É especificado de 0 a 6 de domingo a sábado (0 para domingo e 6 para sábado). O * neste campo significa todos os dias da semana. Na linha do crontab acima, o * diz ao cron job para executar o comando / script especificado todos os dias da semana.

Exemplos de Cron Jobs

Aqui estão alguns exemplos de cron jobs:

Execute um cron job a cada 15 minutos

Para agendar um cron job para ser executado a cada 15 minutos, adicione a linha abaixo no arquivo crontab:

* / 15 * * * * comando / script

Execute um cron job às 5 da manhã todos os dias

Para agendar um cron job para ser executado às 5h todos os dias, adicione a linha abaixo no arquivo crontab:

0 5 * * * comando / script

Execute um cron job às 17h todos os dias

Para agendar um cron job para ser executado às 17h todos os dias, adicione a linha abaixo no arquivo crontab:

0 17 * * * comando / script

Execute um cron job às 9h do primeiro dia de cada mês

Para agendar um cron job para ser executado às 9h do primeiro dia de cada mês, adicione a linha abaixo no arquivo crontab:

0 9 1 * * comando / script

Execute um cron job a cada hora a cada 15 de março

Para agendar um cron job a cada hora a cada 15 de março, adicione a linha abaixo no arquivo crontab:

0 * 15 3 * comando / script

Execute um cron job a cada 5 horas

Para agendar um cron job a cada 5 horas, adicione a linha abaixo no arquivo crontab:

0 * / 5 * * * comando / script

Execute um cron job a cada 15 minutos

Para agendar um cron job para ser executado a cada 15 minutos, adicione a linha abaixo no arquivo crontab:

* / 15 * * * *

Usando Strings

As seguintes strings também podem ser usadas para definir um trabalho:

  1. @hourly: Para executar um trabalho uma vez a cada hora, eu.e., “0 * * * *
  2. @meia-noite: Para executar um trabalho uma vez por dia, eu.e., “0 0 * * *
  3. @diariamente: mesmo que meia-noite
  4. @semanalmente: Para executar um trabalho uma vez por semana, eu.e., “0 0 * * 0
  5. @por mês: Para executar um trabalho uma vez por mês, eu.e., “0 0 1 * *
  6. @anualmente: Para executar um trabalho uma vez por ano, eu.e., “0 0 1 1 *
  7. @anual: o mesmo que @anualmente
  8. @reinício: Para executar um trabalho uma vez a cada inicialização

Por exemplo, para executar um script ou comando toda semana, a entrada no arquivo crontab seria:

comando / script @weekly

Diretórios Cron Predefinidos

Existem alguns diretórios cron predefinidos no Linux onde os scripts armazenados são executados automaticamente. Se colocarmos qualquer script nesses diretórios, ele será executado automaticamente no horário configurado.

  • / etc / cron.diariamente
  • / etc / cron.de hora em hora
  • / etc / cron.por mês
  • / etc / cron.semanalmente

Por exemplo, para executar um script uma vez por mês, você precisará colocá-lo no diretório / etc / cron.por mês.

Ver Cron Jobs

Ver empregos para o usuário atual

Use o seguinte comando para visualizar todos os cron jobs programados para o usuário atual:

$ crontab -l

Ver trabalhos para os usuários root

Para visualizar todos os trabalhos agendados do usuário root, emita o seguinte comando no Terminal:

$ cat / etc / crontab

Você precisará fazer o login como usuário root ou executar o comando como sudo.

Ver empregos para os outros usuários

Para visualizar todos os trabalhos agendados de um usuário específico, emita o seguinte comando no Terminal substituindo o com o nome de usuário real:

$ sudo crontab -u -eu

Para executar este comando, você precisará de privilégios sudo.

Ver cron jobs de hora em hora

Para visualizar todos os cron jobs configurados para execução de hora em hora, emita o seguinte comando no Terminal:

$ ls -la / etc / cron.de hora em hora

Ver cron jobs diários

Para visualizar todos os cron jobs configurados para execução diária, emita o seguinte comando no Terminal:

$ ls -la / etc / cron.diariamente/

Ver cron jobs semanais

Para visualizar todos os cron jobs configurados para serem executados semanalmente, emita o seguinte comando no Terminal:

$ ls -la / etc / cron.semanalmente/

Ver cron jobs mensais

Para visualizar todos os cron jobs configurados para execução mensal, emita o seguinte comando no Terminal:

$ ls -la / etc / cron.por mês/

Fazer backup de todos os trabalhos cron

Recomenda-se manter um backup de todos os trabalhos do cron em um arquivo para que você possa recuperar em caso de exclusão. Para fazer um backup de todos os trabalhos atuais, use o operador de redirecionamento para redirecionar a saída de crontab -l para um arquivo.

$ crontab -l> backup_cron.TXT

Removendo todos os Cron Jobs agendados

Para remover todos os cron jobs agendados, use a sinalização -r da seguinte maneira:

$ crontab -r

Permissão Cron

Podemos limitar o acesso ao comando crontab por meio de dois arquivos: / etc / cron.permitir e / etc / cron.negar.

  • / etc / cron.permitir - Adicione usuários (um por linha) a quem deseja permitir acesso aos comandos crontab. Esses usuários podem executar tarefas agendadas.
  • / etc / cron.negar - Adicione usuários (um por linha) a quem você deseja negar acesso aos comandos crontab. Esses usuários não podem executar trabalhos agendados.

Geradores de sintaxe Crontab

Existem alguns sites que permitem gerar sintaxe para crontabs. Esses sites tornam mais fácil gerar a expressão crontab sem ter que se lembrar da sintaxe. Embora existam vários sites disponíveis para geradores de sintaxe, como crontabgenerator.com, crontab-generator.org e cronmaker.com. O que eu mais prefiro e achei útil é o crontab.guru. Com base na entrada do usuário, ele gera uma expressão crontab que você pode copiar e colar no arquivo crontab.

Conclusão

Neste tutorial, explicamos os fundamentos dos cron jobs, sua sintaxe e como configurá-lo. Também discutimos como visualizar tarefas cron, criar um backup e removê-las se não forem mais necessárias.

Como capturar e transmitir sua sessão de jogo no Linux
No passado, jogar era considerado apenas um hobby, mas com o tempo a indústria de jogos viu um grande crescimento em termos de tecnologia e número de ...
Melhores jogos para jogar com rastreamento manual
Oculus Quest introduziu recentemente a grande ideia de rastreamento manual sem controladores. Com um número cada vez maior de jogos e atividades que e...
Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...