O processo cron embutido no linux pode nos ajudar a atender a esses requisitos.Com cron e scripts de shell, não há problema com instruções muito complicadas.
Introdução ao cron
Frequentemente usamos o comando crontab, que é a abreviação de tabela cron. É o arquivo de configuração do cron e também pode ser chamado de lista de tarefas. Podemos encontrar os arquivos de configuração relevantes nas seguintes pastas.
O diretório /var/spool/cron/ armazena as tarefas do crontab de cada usuário incluindo root, e cada tarefa recebe o nome do criador.Este
arquivo /etc/crontab é responsável por agendar várias tarefas de gerenciamento e manutenção.
/etc/cron.d/ Este diretório é usado para armazenar quaisquer arquivos crontab ou scripts a serem executados.
Também podemos colocar scripts nos diretórios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly e deixá-los executar a cada hora/dia/semana e mês.
Uso de crontab
Nossos comandos comumente usados são os seguintes:
crontab [-u username] //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作表)
Usamos crontab -e para entrar no editor de planilhas do usuário atual, que é uma interface vim comum. Cada linha é um comando.
O comando do crontab é composto por time + action, o time tem minutos, horas, dias, meses e sextas-feiras, e os operadores são
* 取值范围内的所有数字
/ 每过多少个数字
- 从X到Z
散列数字
formato específico
+---------------- minute (0 - 59)
+------------- hour (0 - 23)
+---------- day of month (1 - 31)
+------- month (1 - 12)
+---- day of week (0 - 6) (Sunday=0 or 7)
* * * * * command to be executed
por exemplo
Exemplo 1: Executar myCommand a cada 1 minuto
* * * * * myCommand
Exemplo 2: Executado no 3º e 15º minuto de cada hora
3,15 * * * * myCommand
Exemplo 3: Executado no 3º e 15º minutos das 8h00 às 11h00
3,15 8-11 * * * myCommand
instance 4: executar no 3º e 15º minutos das 8h00 às 11h00 a cada dois dias
3,15 8-11 */2 * * myCommand
Exemplo 5: Executar no 3º e 15º minutos todas as segundas-feiras das 8h00 às 11h00
3,15 8-11 * * 1 myCommand
Exemplo 6: reinicie o smb todas as noites às 21h30
30 21 * * * /etc/init.d/smb restart
Exemplo 7: reinicie o smb às 4h45 nos dias 1, 10 e 22 de cada mês
45 4 1,10,22 * * /etc/init.d/smb restart
Exemplo 8: reinicie o smb todos os sábados e domingos às 13h10
10 1 * * 6,0 /etc/init.d/smb restart
Exemplo 9: Reinicie o smb a cada 30 minutos entre 18:00 e 23:00 todos os dias
0,30 18-23 * * * /etc/init.d/smb restart
Exemplo 10: Reinicie o smb todo sábado à noite às 23h
0 23 * * 6 /etc/init.d/smb restart
Exemplo 11: reinicie o smb a cada hora
0 */1 * * * /etc/init.d/smb restart
Exemplo 12: entre 23h e 7h, reinicie o smb a cada hora
0 23-7/1 * * * /etc/init.d/smb restart