Crontab定时任务详解
-
crontab -e
*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
*/2 * * * * 通过这段字段可以设定什么时候执行脚本;
/bin/sh bin/sh 是指运行脚本的命令;
/home/admin/jiaoben/buy/deleteFile.sh 指脚本存放的路径;
-
crontab -l
-
/sbin/service crond start
service crond start
-
ps -ax | grep cron
-
crontab命令
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数;
crontab -l //列出某个用户cron服务的详细内容;
crontab -r //删除没个用户的cron服务,crontab -u fred -r,不接参数的话代表删除所有;
crontab -e //编辑某个用户的cron服务,比如说root查看自己的cron设置:crontab -u root -l;
-
crontab命令选项
-u 指定一个用户
-l 列出某个用户的任务计划
-r 删除某个用户的任务
-e 编辑某个用户的任务
-
cron文件语法:
分 小时 日 月 星期 命令
* * * * * command
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)
“*” 代表取值范围内的数字,
“/” 代表”每”,
“-” 代表从某个数字到某个数字,
“,” 分开几个离散的数字
-
任务调度配置文件的写法
crontab -e编辑/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件;
举例如下:
5 * * * * ls ------指定每小时的第5分钟执行一次ls命令
30 5 * * * ls ------指定每天的 5:30 执行ls命令
30 7 8 * * ls ------指定每月8号的7:30分执行ls命令
30 5 8 6 * ls ------指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls ------指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。
30 3 10,20 * * ls ------每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls ------每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls ------每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls ------每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
-
新增调度任务
新增调度任务可用两种方法:
1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
-
查看调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u root //列出用户jp的所有调度任务
-
任务调度执行结果的转向
例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中
30 5 * * * ls >/jp/test 2>&1 注:2>&1 表示执行结果及错误信息,不保存命令运行的信息;
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次 /etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly ------每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily ------每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly ------每星期执行 /etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly ------每月去执行/etc/cron.monthly内的脚本
2)直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务
11 2 21 10 * rm -rf /mnt/fb