cron是一个linux下的定时执行工具

crontab

crontab命令

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

新增调度任务

1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

查看调度任务

1
2
crontab -l //列出当前的所有调度任务
crontab -u root -l   //列出用户root的所有调度任务

删除任务调度工作

1
2

crontab -r  //删除所有任务调度工作

任务调度执行结果的转向

例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中

1
2

30 5 * * * ls >/jp/test 2>&1

注:2>&1 表示执行结果及错误信息,详情可见bash shell学习笔记

crontab编辑格式

进入vi编辑模式,编辑的内容一定要符合下面的格式:/1 * ls >> /tmp/ls.txt

这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个号代表五个数字,数字的取值范围和含义如下:
分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
除了数字还有几个个特殊的符号就是”
“、”/“和”-“、”,”,代表所有的取值范围内的数字,”/“代表每的意思,”/5”表示每5个单位,”-“代表从某个数字到某个数字,”,”分开几个离散的数字

例子

  • 1、指定每小时的第5分钟执行一次ls命令

    1
    5 * * * * ls
  • 2、指定每天的 5:30 执行ls命令

    1
    30 5 * * * ls
  • 3、指定每月8号的7:30分执行ls命令

    1
    30 7 8 * * ls
  • 4、指定每年的6月8日5:30执行ls命令

    1
    30 5 8 6 * ls
  • 5、指定每星期日的6:30执行ls命令

    1
    30 6 * * 0 ls

注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。

  • 6、每月10号及20号的3:30执行ls命令
    1
    30 3 10,20 * * ls

注:“,”用来连接多个不连续的时段

  • 7、每天8-11点的第25分钟执行ls命令
    1
    25 8-11 * * * ls

注:“-”用来连接连续的时段

  • 8、每15分钟执行一次ls命令
    1
    */15 * * * * ls

即每个小时的第0 15 30 45 60分钟执行ls命令

  • 9、每个月中,每隔10天6:30执行一次ls命令
    1
    30 6 */10 * * ls

即每月的1、11、21、31日是的6:30执行一次ls命令。

  • 10、每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
    1
    50 7 * * * root run-parts /etc/cron.daily

注:run-parts参数表示,执行后面目录中的所有可执行文件