Linux系统下使用crontab添加计划任务的方法
在服务器中添加定期执行的任务,在很多情况下是非常必要的。比如,每天清理一次/tmp目录下的文件;没几分钟检查某一守护进程是否正常等等。这样计划任务就显得尤为方便。下面将介绍如何在Linux系统中添加计划任务。
一、什么是Crontab 简而言之,Crontab提供了允许给定的任务以一定的间隔在后台运行的机制。需要注意的是,并不是所有的系统都支持Crontab,需要和系统管理员联系,但是至少大部分应该是支持的。
二、Crontab如何工作 一个Cron计划就是一个文本文件,系统以及每一个用户都有他们自己的Cron计划。 对于用户的Cron计划,都会存放到/var/spool/cron/crontabs目录中,但是系统不允许用户直接对该文件进行修改,而是必须通过以下命令修改:
使用命令crontab -u user -e命令编辑用户user的cron(c)作业。用户通过编辑文件来增加或修改任何作业请求。 有的系统可以允许用户选择使用哪种文本编辑器对该文件进行修改,也有的只允许默认使用vi编辑器。 cron计划文件中的每一行只可能是以下三种中的任意一种:注释(以#开头)、空行和任务。 每一条计划任务至少包含六个部分,每一个部分之间以一个(必须是一个,不多不少)空格隔开,但是最后一个部分中允许包含空格。 前五个部分规定了该任务运行的时间。
需要注意的是,这个时间是采用了系统时间,而不是太平洋标准时间。
每一个部分的意义如下:
前五个部分的语法参考下边的例子,最后一个部分时间到达的时候要执行的命令。
crontab的用户手册中推荐每一个命令使用绝对路径,例如调用rm命令时写作:/bin/rm,这是为了防止由于每一个用户的PATH环境变量不同而导致命令无法找到的错误。
三、一些例子 (1) 手册中的例子
HOME/tmp/out 2>&1 # 在每月1日的02:15PM执行 15 14 1 * * HOME/bin/monthly # 在工作日(周一到周五)的10:00PM执行 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?% # 在0-23小时区间内,每两小时执行一次,即0点,2点,...,22点,在这些时间之后的23分钟执行 23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday" # 每周日的04:05AM执行 5 4 * * sun echo "run at 5 after 4 every sunday" # 在每个月的第二个周六的04:00AM执行 0 4 8-15 * 6 testHOME/bin/monthly # 在工作日(周一到周五)的10:00PM执行 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?% # 在0-23小时区间内,每两小时执行一次,即0点,2点,...,22点,在这些时间之后的23分钟执行 23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday" # 每周日的04:05AM执行 5 4 * * sun echo "run at 5 after 4 every sunday" # 在每个月的第二个周六的04:00AM执行 0 4 8-15 * 6 test
(date +u) -eq 6 && echo "2nd Saturday"
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #
五、使设置生效 设置完成后,重启cron即可使设置的计划任务定时执行了,重启命令如下:
对于一件事情,往往超过我们的想象,自信、坚持,勇往直前!
参与者:Rainbow Gu
地址:南都
***********************************************


浙公网安备 33010602011771号