Tutorial para iniciantes completos de empregos Cron

Tutorial para iniciantes completos de empregos Cron
Cron é o utilitário mais útil em um sistema operacional Linux ou UNIX que permite executar comandos ou scripts em um determinado cronograma sem qualquer intervenção do usuário. Os comandos e scripts programados também são nomeados como Jobs Cron. É usado principalmente para automatizar trabalhos recorrentes, como executar backups programados, limpar 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 o que você precisa entender para agendar um emprego com Cron. Isso inclui sintaxe básica de Cron, edição do Arquivo Crontab, agende um trabalho com Cron com poucos exemplos, visualize o trabalho de Cron, etc.

Noções básicas de Cron Job

Vamos entender alguns princípios básicos de um trabalho de Cron.

O que é Crond?

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

CRON Job Sintaxe

A sintaxe para o trabalho de Cron é a seguinte:

* * * * * comando/script

Da esquerda:

  • O primeiro * corresponde a minutos (0-59)
  • O segundo * corresponde a horas (0-23)
  • O terceiro * corresponde ao dia do mês (1-31)
  • O quarto * corresponde ao mês do ano (1-12)
  • O quinto * corresponde ao dia da semana (0-6, domingo a sábado)

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

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

Editando o arquivo Crontab

Crontab é um arquivo que contém os trabalhos programados em uma sintaxe específica. Existem dois tipos de arquivos Crontab; um para trabalhos cron específicos do sistema e outro para trabalhos de cron específicos para o usuário.

Jobs cron do sistema

Os trabalhos de cron em todo o sistema estão localizados no /etc/crontab arquivo e /etc/cron.d diretório, e eles são executados /etc/cron.a cada hora, /etc/cron.diário, /etc/cron.semanalmente e /etc/cron.por mês. Somente um administrador do sistema pode acessar esses arquivos.

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

$ nano /etc /crontab

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

# Min HR Dayofmonth Mês Dayofweek UserName Command
* * * * * user1 ifconfig

Trabalhos de cron específicos do usuário

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

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

$ CRONTAB -E

Por exemplo, se você estiver conectado como um usuário de "teste", executar o comando crontab -e editará o arquivo crontab para o usuário "teste". Da mesma forma, se você estiver conectado como usuário root, o comando crontab -e 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 deseja editar o arquivo Crontab para o usuário "Test2", o comando seria:

$ sudo crontab -u test2 -e

Aqui está a sintaxe do trabalho Cron que pode ser adicionado no arquivo Crontab:

# m H dayofmonth Mês Dayofweek Comando
* * * * * ifconfig

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

Comandos Crontab

O comando Crontab é usado para editar, listar e remover os trabalhos Cron:

  • 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

Agendo um emprego com Cron

Com Cron, você pode executar um emprego em um horário, data e intervalos específicos com uma unidade mínima em minutos, eu.e., você pode executar um emprego 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 trabalhos na sintaxe descrita acima. Cada linha em um arquivo especifica um comando. As cinco primeiras entradas da linha especificam o horário agendado, e a última entrada especifica qual comando ou script deve ser executado.

Exemplo:

A linha seguinte no arquivo Crontab agendará o trabalho de Cron para executar o comando/script a cada 30 minutos e 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 trabalho de Cron 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 trabalho de Cron para executar o comando/script especificado a cada cinco horas.

Dia do mês

Nesse 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 trabalho de Cron para executar o comando/script especificado todos os dias.

Mês do ano

Nesse 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 trabalho de Cron para executar o comando/script especificado todos os meses.

Dia da semana

Nesse campo, especificamos os dias específicos 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 em uma semana. Na linha Crontab acima, o * diz ao trabalho de Cron para executar o comando/script especificado todos os dias em uma semana.

Exemplos de empregos em Cron

Aqui estão alguns exemplos de trabalhos de Cron:

Execute um trabalho de Cron a cada 15 minutos

Para agendar um trabalho de Cron para executar a cada 15 minutos, adicione a linha abaixo no arquivo Crontab:

*/15 * * * * comando/script

Faça um trabalho de Cron às 5 da manhã todos os dias

Para agendar um trabalho de Cron para executar às 5 da manhã todos os dias, adicione a linha abaixo no arquivo Crontab:

0 5 * * * comando/script

Faça um trabalho de Cron às 17h todos os dias

Para agendar um trabalho de Cron para executar às 17h todos os dias, adicione a linha abaixo no arquivo Crontab:

0 17 * * * comando/script

Faça um trabalho de Cron às 9 da manhã no primeiro dia de cada mês

Para agendar um trabalho de Cron para as 9h no primeiro dia de cada mês, adicione a linha abaixo no arquivo Crontab:

0 9 1 * * comando/script

Faça um trabalho de Cron a cada hora a cada 15 de março

Para agendar um trabalho de Cron a cada hora a cada 15 de março, adicione a linha abaixo no arquivo Crontab:

0 * 15 3 * comando/script

Execute um trabalho de Cron a cada 5 horas

Para agendar um trabalho de Cron a cada 5 horas, adicione a linha abaixo no arquivo Crontab:

0 */5 * * * comando/script

Execute um trabalho de Cron a cada 15 minutos

Para agendar um trabalho de Cron para executar a cada 15 minutos, adicione a linha abaixo no arquivo Crontab:

*/15 * * * *

Usando strings

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

  1. @Hourly: Para executar um emprego uma vez a cada hora, eu.e., ““0 * * * *““
  2. @meia-noite: Para executar um emprego uma vez por dia, eu.e., ““0 0 * * *““
  3. @diário: O mesmo que meia -noite
  4. @semanalmente: Para executar um emprego uma vez por semana, eu.e., ““0 0 * * 0““
  5. @por mês: Para executar um emprego uma vez por mês, eu.e., ““0 0 1 * *““
  6. @anualmente: Para executar um emprego uma vez por ano, eu.e., ““0 0 1 1 *““
  7. @anual: o mesmo que @analmente
  8. @reinício: Para executar um emprego uma vez em todas as startups

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

@Weekly Command/Script

Diretórios Cron predefinidos

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

  • /etc/cron.diário
  • /etc/cron.a cada 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 /etc /cron.por mês.

Veja os trabalhos de Cron

Veja os trabalhos para o usuário atual

Use o comando a seguir para visualizar todos os trabalhos cron programados para o usuário atual:

$ CRONTAB -L

Veja os empregos para os usuários da raiz

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

$ cat /etc /crontab

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

Ver empregos para os outros usuários

Para visualizar todos os trabalhos programados de um usuário específico, emita o seguinte comando no terminal substituindo o nome do usuário real:

$ sudo crontab -u -eu

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

Veja trabalhos horários de cron

Para visualizar todos os trabalhos Cron configurados para executar a cada hora, emita o seguinte comando no terminal:

$ ls -la /etc /cron.a cada hora

Veja os empregos diários de cron

Para visualizar todos os trabalhos de Cron configurados para executar diariamente, emita o seguinte comando no terminal:

$ ls -la /etc /cron.diário/

Ver Weekly Cron Jobs

Para visualizar todos os trabalhos de Cron configurados para executar semanalmente, emita o seguinte comando no terminal:

$ ls -la /etc /cron.semanalmente/

Ver Monthly Cron Jobs

Para visualizar todos os trabalhos Cron configurados para executar mensalmente, emita o seguinte comando no terminal:

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

Backup todos os empregos de Cron

Recomenda -se manter um backup de todos os trabalhos de Cron em um arquivo para que você possa se 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> BOTHUP_CRON.TXT

Removendo todos os trabalhos cron programados

Para remover todos os trabalhos cron programados, use o sinalizador -r da seguinte forma:

$ CRONTAB -R

Permissão de Cron

Podemos limitar o acesso ao comando crontab através de dois arquivos: / etc/cron.permitir e / etc / cron.negar.

  • /etc/cron.permitir - Adicione usuários (um por linha) a quem você deseja permitir o acesso aos comandos Crontab. Esses usuários podem executar trabalhos de programação.
  • /etc/cron.negar - Adicione usuários (um por linha) a quem você deseja negar o acesso aos comandos Crontab. Esses usuários não podem executar trabalhos programados.

Geradores de sintaxe de Crontab

Existem alguns sites que permitem gerar sintaxe para crontabs. Esses sites facilitam a geração da expressão de Crontab sem precisar se lembrar da sintaxe. Embora existam vários sites disponíveis para geradores de sintaxe, como o Crontabgenerator.com, crontab-gerador.org e cronmaker.com. O que eu prefiro e achei útil é o Crontab.guru. Com base na entrada do usuário, ele gera uma expressão crontab que você pode copiar em massa no arquivo Crontab.

Conclusão

Neste tutorial, explicamos o básico dos trabalhos de Cron, sua sintaxe e como configurá -la. Também discutimos como visualizar os trabalhos de Cron, criar um backup e removê -los se não for mais necessário.