cron是一种在Unix-like操作系统中用于执行预定时间执行的任务的工具。它可以用来定期运行脚本、程序或者命令。cron的配置文件位于/etc/crontab
,而用户的cron任务存储在/var/spool/cron/
目录中。
一般使用crontab -e 命令来为当前用户添加定时任务,若要为其他用户添加可以再加上-u选项
crontab -u User -e #为其他用户创建定时任务
crontab : -l #列出当前用户的定时任务
-r #删除当前用户的所有cron任务
Options:
-u <user> define user
-e edit user's crontab
-l list user's crontab
-r delete user's crontab
-i prompt before deleting
-n <host> set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-T <file> test a crontab file syntax
-s selinux context
-V print version and exit
-x <mask> enable debugging
以下是Cron的基本语法格式:
* * * * * command
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
5个*分别表示: 分 、时 、日 、月 、周 + 需要定时执行的脚本
每隔多久执行可以使用'/' (除) 表示;
从多久到多久一个范围用'-'(横杆)表示 ;
特定范围内的多个时间点用','(逗号)隔开.
实例1:
每天凌晨3点运行一个脚本:0 3 * * * cmd
每隔5分钟执行一次:*/5 * * * * command
每天0点到1点每分钟执行一次:* 0-1 * * * command
每周的星期六和星期天的0点0分执行一次: 0 0 * * 6,0 command
实例2:
我编写了一个test.sh的脚本,内容是输出一串文字,且设置了定时任务为每分钟输出一次
由于是.sh文件所以需要chmod a+x权限, 然后在cron任务中,输出通常会通过邮件发送给当前用户,所以可以加入一个重定向日志进行记录.
以上是测试结果:可以看到确实log文件中有被每分钟追加写入test.sh中的文本,cron基本案例设置完毕.