linux cron学习体系
linux有个服务,叫cron,提供例行性作业调度。 crontab是一个命令,用于设置周期性被执行的作业。该词源于希腊语 chronos(χρόνος),原意是时间,而crond正是它的守护进程。 linux系统原本就有非常多的例行性工作,因此这个服务默认是启动的。可通过service crond status,来瞧瞧先。为了安全性的问题,可在/etc/cron.deny中,
linux有个服务,叫cron,提供例行性作业调度。
crontab是一个命令,用于设置周期性被执行的作业。该词源于希腊语 chronos(χρόνος),原意是时间,而crond正是它的守护进程。
linux系统原本就有非常多的例行性工作,因此这个服务默认是启动的。可通过service crond status,来瞧瞧先。为了安全性的问题,可在/etc/cron.deny中,将不可以使用crontab的用户记录。一个用户一行。
当think使用crontab命令后,他的工作会被记录到/var/spool/cron/think。同时,linux系统会将cron执行的每一项作业记录到/var/log/cron这个日志文件。
crontab语法如下:
crontab [-u username] [-l|-e|-r]
参数:
-u:只有root才能进行这个任务,即帮其他用户新建/删除作业调度
-l:查阅crontab的作业内容
-e:编辑crontab的作业内容
-r:删除crontab的全部作业内容,删除一项,请用-e
例子:
1)用think的身份在每天的12:00发信给自己
crontab -e
#此时会进入vi的编辑界面让你编辑工作,注意,每项作业都是一行,而且,最好使用绝对路径
0 12 * * * mail think -s "at 12:00" < /home/think/.bashrc
#分 时 日 月 周 |《=============命令串=============》|
编辑完,输入":wq"保存离开vi即可。
2)假若你的女朋友生日是 5 月 2 日,你想要在 5 月 1 日的 23:59 發一封信給他,這封信的內容已經寫在 /home/dmtsai/lover.txt 內了,該如何進行?
解:59 23 1 5 * mail kiki < /home/dmtsai/lover.txt
3)假如每五分鐘需要執行 /home/dmtsai/test.sh 一次,又該如何?
解:*/5 * * * * /home/dmtsai/test.sh
以上谈的都是基于用户,那么基于系统呢?直接修改/etc/crontab这个文件即可。
有三种类型:
其一,命令型
0 1 * * * think mail -s "testing" water < /home/dmtsai/test.txt
让think每小时给water发邮件
其二,目录型
*/2 * * * * root run-parts /root/runcron
让root每2分钟去执行/root/runcron下的所有可执行文件
其三,程序型
*/5 * * * * root /bin/mrtg /etc/mrtg/mrtg.cfg
让root每5分钟去运行/etc/mrtg/下的mrtg程序
扩展阅读:
http://linux.vbird.org/linux_basic/0430cron.php#cron
http://www.cn-java.com/www1/?uid-560221-action-viewspace-itemid-8377
http://blog.csdn.net/sipsir/article/details/3973713
更多推荐
所有评论(0)