在windows的时候我们经常会用到计划任务,那么在linux里面我们要用啥呢?答案是cronjob,通过百度我们可以知道cronjob里面crontab的用法。
#crontab -e##进入当前用户cronjob的编辑模式
1 2 3 4 5 /bin/bash /path/script
crontab编辑模式里面,分为两个部分第一部分是执行时间,就是上面例子中 1 2 3 4 5,1代表01分,2代表02时,3代表3日,4代表4月,5代表星期五,每个字段都有独立的取值范围,需要注意的是第五个字段,取值范围是0-7;第二部分是脚本执行命令,需要注意的是cronjob里面执行任务的时候是不会带有环境变量的,某些命令是需要使用绝对路径,例如php、ntp等等。
在编辑模式下操作方法和vi一样,当然编写有误,退出编译的时候还是有提示的。
那么写好的cronjob会保存到哪呢?cronjob里面的任务返回默认会保存到哪呢?
编写好的cronjob保存的时候,会在/var/spool/cron/生成一个与用户一致的文件;而返回的信息这回存到与cronjob任务的用户mail文件里。可以想想,默认之下mail会越滚越大,所以编写cronjob的时候最好带上输出重定向 command > /dev/null 2>&1 , > /dev/null 信息输出到/dev/null,来理解为输出为空,2>&1:错误输出stderr合并到标准输出stdout里。
在cronjob的实际运用中我们还会遇到一个问题,如果要用脚本批量增加计划任务,或者把cronjob自动部署到多台服务器上要怎么办?
在crontab的帮助信息里面可以看到:
Usage: crontab [options] file crontab [options] crontab -n [hostname]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 -s selinux context -x <mask> enable debuggingDefault operation is replace, per 1003.2
根据uasge的第一个方法,可以把需要的计划任务先编写到一个文件中,再通过下面的格式创建cronjob
#crontab [options] file
最后一个问题,如果想弄个进去到秒的任务怎么搞?
可以在任务脚本里面增加个sleep试试。
本文出自 “JyanCing” 博客,请务必保留此出处http://yahsei.blog.51cto.com/1584302/1898497