Crontab é uma ferramenta de execução agendada comumente usada em sistemas Unix/Linux, que pode executar tarefas específicas sem intervenção manual. Muitas vezes temos que usar o comando Crontab. Por exemplo, o script acme.sh mencionado no certificado SSL de nome de domínio gratuito Let’s Encrypt Wildcard usa a tarefa agendada Crontab para atualizar o certificado SSL.

Através do comando crontab, podemos executar instruções de sistema específicas ou scripts de shell em intervalos fixos. Quando o VPS Linux monta o Google Drive e o Dropbox, podemos usar o comando Crontab para obter backup de sincronização agendado e usar o Crontab para reiniciar o VPS e o servidor regularmente. todos os dias ou serviços Nginx, PHP, Mysql, etc.

Resumindo, dominar a sintaxe básica do comando Crontab é muito necessário para gerenciarmos nossos próprios hosts VPS. Este artigo explica como usar o comando Linux Crontab por meio de exemplos sem entrar em uma exploração aprofundada. no futuro.

Linux Crontab comando tarefa agendada sintaxe básica e tutorial de operação-operação de automação VPS/servidor

Para mais comandos e aplicativos relacionados à hospedagem VPS, você pode conferir:

  1. Resumo dos comandos de monitoramento do sistema Linux - CPU mestre, memória, E/S de disco, etc. para encontrar gargalos de desempenho
  2. Três ferramentas de comando Rsync, SCP e Tar-solução rápida para realocação remota de sites VPS e sincronização de dados
  3. Três maneiras de compartilhar diretórios de pastas no Linux - montagem remota NFS, armazenamento compartilhado GlusterFS e diretórios compartilhados samba

1. Visualização do Crontab e edição do reinício

1. Veja a lista de tarefas de execução agendada do crontab

crontab -l

2. Edite o crontab para executar tarefas regularmente

crontab -e

3. Exclua tarefas agendadas do crontab

crontab -r

4. Comandos relacionados:

sudo service crond start     #启动服务
sudo service crond stop      #关闭服务
sudo service crond restart   #重启服务
sudo service crond reload    #重新载入配置
sudo service crond status    #查看服务状态

2. Sintaxe de formato básico do Crontab

Expressão de tempo do crontab:

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

Vejamos um exemplo primeiro. Execute o programa de backup à 1h todos os dias: 0 1 * * * /root/wzfou.com/backup.sh. Entre eles, /root/wzfou.com/backup.sh é o caminho do script. Para usar o caminho absoluto, consulte a figura abaixo para o formato de data anterior.

Instância 1: é executada a cada 1 minuto

* * * * * /root/wzfou.com/backup.sh

Instância 2: Executa uma vez a cada hora no 3º e 15º minuto

3,15 * * * * /root/wzfou.com/backup.sh

Exemplo 3: Executar uma vez por dia, das 8h às 11h, no 3º e 15º minuto

3,15 8-11 * * * /root/wzfou.com/backup.sh

Instância 4: Executada a cada dois dias no 3º e 15º minuto, das 8h às 11h

3,15 8-11 */2  *  * /root/wzfou.com/backup.sh

Instância 5: Executada todas as segundas-feiras, das 8h às 11h, no 3º e 15º minuto

3,15 8-11 * * 1 /root/wzfou.com/backup.sh

Exemplo 6:Executar uma vez todas as noites às 21h30

30 21 * * * /root/wzfou.com/backup.sh

Instância 7: Execute uma vez por mês às 4h45 nos dias 1, 10 e 22

45 4 1,10,22 * * /root/wzfou.com/backup.sh

Exemplo 8:Executar uma vez todo sábado e domingo às 13h10

10 1 * * 6,0 /root/wzfou.com/backup.sh

Instância 9: Executada a cada 30 minutos entre 18h e 23h todos os dias

0,30 18-23 * * * /root/wzfou.com/backup.sh

Instância 10: Executar uma vez todo sábado às 23h

0 23 * * 6 /root/wzfou.com/backup.sh

Exemplo 11:Executar uma vez a cada hora

* */1 * * * /root/wzfou.com/backup.sh

Exemplo 12:Executado a cada hora entre 23h00 de cada noite e 7h00 do dia seguinte

* 23-7/1 * * * /root/wzfou.com/backup.sh

Exemplo 13: é executado no primeiro dia de cada semana (ou seja, começa às 24h todos os domingos à noite).

@weekly /root/wzfou.com/backup.sh

Exemplo 14:Execute uma vez no dia 15 de cada mês.

0 11 15 * * /root/wzfou.com/backup.sh

Instância 15: é executado uma vez no primeiro dia de cada mês (ou seja, começa às 0h do primeiro dia de cada mês).

@monthly /root/wzfou.com/backup.sh

Instância 16: é executado uma vez no mês especificado (executado uma vez todas as noites às 0h em janeiro, abril e junho).

0 0 * jan,apr,jun * /root/wzfou.com/backup.sh

Instância 17: Execute uma vez após reiniciar.

@reboot /root/wzfou.com/backup.sh

Exemplo 18:Envie uma notificação por e-mail após a execução da tarefa agendada.

MAILTO="raj"
1 1 * * * /root/wzfou.com/backup.sh

Exemplo 19: Especifique o shell (o padrão é /bin/bash)

SHELL=/bin/sh
1 1 * * * /root/wzfou.com/backup.sh

Instância 20: especifica variáveis ​​de ambiente.

PATH=/sbin:/bin:/usr/sbin:/usr/bin 
1 1 * * * /root/wzfou.com/backup.sh

4. Possíveis problemas com o Crontab

4.1  Crontab não entra em vigor imediatamente

Sua tarefa agendada do Crontab recém-criada precisará esperar 2 minutos antes de ser executada após salvá-la. Claro, se quiser executá-la imediatamente, você pode reiniciar o Crontab. Quando o crontab falha, você pode tentar /etc/init.d/crond restart para resolver o problema ou verificar o log para ver se uma determinada tarefa foi executada/um erro foi relatado tail -f /var/log/cron.

4.2  Crontab não executa

Quando o caminho do arquivo estiver envolvido no script, escreva o caminho global. Após atualizar a hora e o fuso horário do sistema, o cron precisa ser reiniciado. Quando a execução manual do script está OK, mas o crontab não é executado, provavelmente é uma variável de ambiente. Você pode tentar introduzir diretamente a variável de ambiente no crontab para resolver o problema, por exemplo:

0 * * * * . /etc/profile;/bin/sh /root/wzfou.com/backup.sh

4.3  Crontab não tem permissão para executar

Preste atenção ao agendamento de tarefas no nível do sistema e no agendamento de tarefas no nível do usuário. Somente o usuário root e o proprietário do arquivo crontab podem executar -e, -l, -r e - v< Use UserName após o sinalizador ept4> para editar, listar, remover ou verificar o arquivo crontab para um usuário especificado.

A operação de agendamento de tarefas do usuário root pode ser definida por meio de "crontab -uroot -e" ou as tarefas agendadas podem ser gravadas diretamente no arquivo /etc/crontab.

Para editar o crontab de outro usuário, execute o seguinte comando como root. O mesmo formato (anexe "-u username" ao final do comando) também pode ser usado para listar ou excluir crontabs.

 crontab -u username -e

4.4  Notificação após execução do Crontab

Quando a tarefa agendada do Crontab for executada no horário que você especificar, o sistema enviará uma carta mostrando o conteúdo de execução do programa, que pode ser visto no log /var/log/cron. Se você não deseja receber tal notificação, adicione > /dev/null 2>&1 após um espaço em cada linha.

Deixe uma resposta