在Linux系统中,定时任务主要通过两种工具实现:cron
和at
cron
定时任务:cron
是一个守护进程,用于在固定时间、周期性地执行任务。要编辑用户的crontab
文件,请在终端中输入以下命令:
crontab -e
这将打开一个文本编辑器,您可以在其中添加定时任务。cron
任务的格式如下:
* * * * * 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点执行/home/user/backup.sh
脚本的定时任务,您可以添加以下行:
0 1 * * * /home/user/backup.sh
保存并退出编辑器。现在,新的定时任务已经生效。
at
定时任务:at
用于在指定时间执行一次性任务。要使用at
,首先确保at
守护进程正在运行:
sudo service atd start
然后,您可以使用以下命令创建一个新的at
任务:
echo "command-to-be-executed" | at time
例如,要在10分钟后执行/home/user/backup.sh
脚本,您可以输入:
echo "/home/user/backup.sh" | at now + 10 minutes
要查看待执行的at
任务列表,请使用:
atq
要取消一个at
任务,请使用:
atrm [job_number]
其中[job_number]
是要删除的任务的编号,可以通过atq
命令查看。