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:
Para especificar vários valores em um campo, use os seguintes símbolos do operador:
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:
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:
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.
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.
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.