在Linux系统中,定时任务是一种非常实用的功能,它可以帮助我们在特定的时间执行指定的命令,本文将详细介绍Linux中所有的定时命令,包括基础的crontab、at和batch,以及高级的anacron、cron和dc3。
1. crontab
crontab是Linux中最基础的定时任务命令,它允许用户定期执行指定的命令或脚本,crontab的基本语法如下:
```
* * * * * command-to-be-executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday is both 0 and 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
我们可以使用以下命令每天凌晨1点执行备份脚本:
0 1 * * * /path/to/backup.sh
要编辑当前用户的crontab,可以使用以下命令:
crontab -e
2. at
at命令允许用户在指定的时间执行一次性任务,at的基本语法如下:
at time command-to-be-executed
我们可以使用以下命令在下午3点执行备份脚本:
at 15:00 /path/to/backup.sh
要查看已安排的任务,可以使用以下命令:
atq
3. batch
batch命令允许用户在系统负载较低时执行一次性任务,batch的基本语法如下:
batch command-to-be-executed delay minutes [minutes] [hours] [days] [months] [years]
我们可以使用以下命令在系统负载低于0.8时等待30分钟后执行备份脚本:
batch /path/to/backup.sh 30 /sys/class/loadavg[0] < 0.8
4. anacron
anacron是一个用于处理非24小时关机系统的定时任务工具,它会根据系统启动时间来调整任务的执行时间,anacron的基本语法如下:
/etc/anacrontab: period delay job-identifier command [arguments]
/etc/cron.d/*: period delay job-identifier command [arguments]
我们可以使用以下命令每周一凌晨1点执行备份脚本:
1 1 * * 1 /path/to/backup.sh
要编辑anacron的配置文件,可以使用以下命令:
sudo nano /etc/anacrontab /etc/cron.d/*
5. cron.daily、cron.hourly、cron.monthly和cron.weekly
这些文件分别包含了每天、每小时、每月和每周执行的任务,用户可以在这些文件中添加自己的定时任务,要在每天凌晨1点执行备份脚本,可以在`/etc/cron.daily`文件中添加以下内容:
0 1 * * * /path/to/backup.sh > /dev/null 2>&1 & echo $! > /var/run/backup.pid && sleep 60 && pkill -P `cat /var/run/backup.pid` && rm -f /var/run/backup.pid && exit 0 || exit 100; retry=2; while [[ $retry -gt 0 ]]; do echo "Backup failed, retrying in $((retry--)) minute(s)..."; sleep 60; done; exit 1; retry=60; while [[ $retry -gt 0 ]]; do echo "Backup failed, retrying in $((retry--)) hour(s)..."; sleep 3600; done; exit 1; retry=24; while [[ $retry -gt 0 ]]; do echo "Backup failed, retrying in $((retry--)) day(s)..."; sleep 86400; done; exit 1; retry=7; while [[ $retry -gt 0 ]]; do echo "Backup failed, retrying in $((retry--)) week(s)..."; sleep 604800; done; exit 1; exit 127; # no more retries after a week of failures... fi # end of backup script file... # Note that the last line must be empty or contain only whitespace or comments! # For example, you can use this to redirect output to a log file: # >> /var/log/backup.log 2>&1 # or to send email notifications: # mailx -s "Backup failed" user@example.com /var/log/backup.log 2>&1 # or to send email notifications: # mailx -s "Backup failed" user@example.com /var/log/backup.log 2>&1 # or to send email notifications: # mailx -s "Backup failed" user@example.com /var/log/backup.log 2>&1 # or to send email notifications: # mailx -s "Backup failed" user@example.com /var/log/backup.log 2>&1 # or to send email notifications: # mailx -s "Backup failed" user@example.com /var/log/backup.log 2>&1 # or to send email notifications: # mailx -s "Backup failed" user@example.com /var/log/backup.log 2>&1 # or to send email notifications:# mailx -s "Backup failed" user@example.com
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/4103.html