linux cron定时任务初级使用教程
如何在Linux/Unix系统下定时运行任务(cron job)?
Cron是用来在某个周期定时运行命令或程序的,让你设置在某个时期运行某个命令或程序,Cron可以说是Linux/Unix上最有用的工具。 Cron属于守护程序,在后台持续不断地检查/etc/crontab file, /etc/cron.*/ 以及/var/spool/cron/ 目录的下的配置文件来确定某个时期运行某个程序或命令。
而crontab的则是用来安装,移除和列出cron任务的工具。每个用户都有自己独立的crontab配置文件,这些配置文件都位于/var/spool/cron/crontabs下面,但一般不能直接对其进行编辑。如果要添加修改任务可以用crontab命令来操作。
各种cron配置文件
不同的cron配置文件:UNIX/Linux的系统crontab: 一般为系统服务或其它需要root权限的程序所用,第六领域为运行命令或程序的用户名。因此,系统crontab可以以任何用户的身份运行命令。
1. 用户crontabs: 用户可以用crontab命令设置自己的cron任务, 但第六领域为要运行的命令,而且所有命令都只能以该用户身份运行。如何设置cron任务
输入下面的命令编辑cron配置文件:
$ crontab -e
crontab的语法 (Field Description)
下面是cron任务的格式:
1 2 3 4 5 /path/to/command arg1 arg2
或者
1 2 3 4 5 /root/backup.sh
各个域的意义:
1: 分钟 (0-59)
2: 小时 (0-23)3: 日期 (0-31)4: 月份 (0-12 [12 == December])5: 星期几(0-7 [7 or 0 == sunday])/path/to/command - 要运行的命令或程序形象点的格式:
* * * * * 要运行的命令
- - - - -| | | | | ----- 星期几 (0 - 7) (周日=0 或者 7)| | | | ------- 月份 (1 - 12)| | | --------- 日期 (1 - 31)| | ----------- 小时 (0 - 23)|------------- 分钟 (0 - 59)系统crontab的格式像下面这样的:
1 2 3 4 5 用户名 /path/to/command arg1 arg2
OR1 2 3 4 5 用户名 /path/to/script.sh例子详解:周期性运行备份脚本。
如果你想每天0点运行/root/backup.sh这个脚本,那crontab的配置应该像下面那样。首先在控制器输入crontab -e
# crontab -e
然后加上下面的内容:
0 3 * * * /root/backup.sh
保存退出。更多例子:
第天零点过五分运行/root/command命令:5 0 * * * /root/command
每月第一天的下午2.15分运行/root/script.sh:
15 14 1 * * /root/script.sh
工作日的每天下午10点运行/scripts/sync.sh:
0 22 * * 1-5 /scripts/sync.sh
第天的零点23分,凌晨2点23分,凌晨4点23分,6点23分…………,运行/root/download.sh:
23 0-23/2 * * * /root/download.sh
第周日的4点过7分运行/root/restart.sh
7 4 * * sun /root/restart.sh