Linux系统下使用crontab添加计划任务的方法

 

在服务器中添加定期执行的任务,在很多情况下是非常必要的。比如,每天清理一次/tmp目录下的文件;没几分钟检查某一守护进程是否正常等等。这样计划任务就显得尤为方便。下面将介绍如何在Linux系统中添加计划任务。

一、什么是Crontab 简而言之,Crontab提供了允许给定的任务以一定的间隔在后台运行的机制。需要注意的是,并不是所有的系统都支持Crontab,需要和系统管理员联系,但是至少大部分应该是支持的。

二、Crontab如何工作 一个Cron计划就是一个文本文件,系统以及每一个用户都有他们自己的Cron计划。 对于用户的Cron计划,都会存放到/var/spool/cron/crontabs目录中,但是系统不允许用户直接对该文件进行修改,而是必须通过以下命令修改:

crontab -e

使用命令crontab -u user -e命令编辑用户user的cron(c)作业。用户通过编辑文件来增加或修改任何作业请求。 有的系统可以允许用户选择使用哪种文本编辑器对该文件进行修改,也有的只允许默认使用vi编辑器。 cron计划文件中的每一行只可能是以下三种中的任意一种:注释(以#开头)、空行和任务。 每一条计划任务至少包含六个部分,每一个部分之间以一个(必须是一个,不多不少)空格隔开,但是最后一个部分中允许包含空格。 前五个部分规定了该任务运行的时间。

需要注意的是,这个时间是采用了系统时间,而不是太平洋标准时间

每一个部分的意义如下:

field allowed values ----- -------------- minute 0-59 hour 0-23 day of month 1-31 month 1-12 (or names, see below) day of week 0-7 (0 or 7 is Sun, or use names)

前五个部分的语法参考下边的例子,最后一个部分时间到达的时候要执行的命令。

crontab的用户手册中推荐每一个命令使用绝对路径,例如调用rm命令时写作:/bin/rm,这是为了防止由于每一个用户的PATH环境变量不同而导致命令无法找到的错误

三、一些例子 (1) 手册中的例子

# 在每天的00:05AM执行 5 0 * * *
(2) 预定义任务的前五个部分可以由以下左边字符串代替,右边为其解释:
string meaning ------ ------- @reboot Run once, at startup. @yearly Run once a year, "0 0 1 1 *". @annually (same as @yearly) @monthly Run once a month, "0 0 1 * *". @weekly Run once a week, "0 0 * * 0". @daily Run once a day, "0 0 * * *". @midnight (same as @daily) @hourly Run once an hour, "0 * * * *".
四、系统的Cron计划 系 统的Cron计划文件存放在/etc/crontab路径下。与用户的crontab文件不同,root用户可以直接对该文件进行修改,而不用使用 crontab -e命令。除此之外,系统crontab文件中任务的定义也有所不同,在前五个部分之后插入了一个“用户”部分。以下是我的/etc/crontab文 件:
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do.
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即可使设置的计划任务定时执行了,重启命令如下:

service crond restart
 
**********************************************

对于一件事情,往往超过我们的想象,自信、坚持,勇往直前!

参与者:Rainbow Gu

地址:南都

博客:http://www.cnblogs.com/Rainbow-G/

***********************************************
 
 
 
Linux系统下使用crontab添加计划任务的方法        
RainbowGu 关注 - 71 粉丝 - 6        
 
 
+加关注    
0    
0    
 
 
 

posted on 收藏

 

在服务器中添加定期执行的任务,在很多情况下是非常必要的。比如,每天清理一次/tmp目录下的文件;没几分钟检查某一守护进程是否正常等等。这样计划任务就显得尤为方便。下面将介绍如何在Linux系统中添加计划任务。

一、什么是Crontab 简而言之,Crontab提供了允许给定的任务以一定的间隔在后台运行的机制。需要注意的是,并不是所有的系统都支持Crontab,需要和系统管理员联系,但是至少大部分应该是支持的。

二、Crontab如何工作 一个Cron计划就是一个文本文件,系统以及每一个用户都有他们自己的Cron计划。 对于用户的Cron计划,都会存放到/var/spool/cron/crontabs目录中,但是系统不允许用户直接对该文件进行修改,而是必须通过以下命令修改:

crontab -e

使用命令crontab -u user -e命令编辑用户user的cron(c)作业。用户通过编辑文件来增加或修改任何作业请求。 有的系统可以允许用户选择使用哪种文本编辑器对该文件进行修改,也有的只允许默认使用vi编辑器。 cron计划文件中的每一行只可能是以下三种中的任意一种:注释(以#开头)、空行和任务。 每一条计划任务至少包含六个部分,每一个部分之间以一个(必须是一个,不多不少)空格隔开,但是最后一个部分中允许包含空格。 前五个部分规定了该任务运行的时间。

需要注意的是,这个时间是采用了系统时间,而不是太平洋标准时间

每一个部分的意义如下:

field allowed values ----- -------------- minute 0-59 hour 0-23 day of month 1-31 month 1-12 (or names, see below) day of week 0-7 (0 or 7 is Sun, or use names)

前五个部分的语法参考下边的例子,最后一个部分时间到达的时候要执行的命令。

crontab的用户手册中推荐每一个命令使用绝对路径,例如调用rm命令时写作:/bin/rm,这是为了防止由于每一个用户的PATH环境变量不同而导致命令无法找到的错误

三、一些例子 (1) 手册中的例子

# 在每天的00:05AM执行 5 0 * * *
(2) 预定义任务的前五个部分可以由以下左边字符串代替,右边为其解释:
string meaning ------ ------- @reboot Run once, at startup. @yearly Run once a year, "0 0 1 1 *". @annually (same as @yearly) @monthly Run once a month, "0 0 1 * *". @weekly Run once a week, "0 0 * * 0". @daily Run once a day, "0 0 * * *". @midnight (same as @daily) @hourly Run once an hour, "0 * * * *".
四、系统的Cron计划 系 统的Cron计划文件存放在/etc/crontab路径下。与用户的crontab文件不同,root用户可以直接对该文件进行修改,而不用使用 crontab -e命令。除此之外,系统crontab文件中任务的定义也有所不同,在前五个部分之后插入了一个“用户”部分。以下是我的/etc/crontab文 件:
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do.
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即可使设置的计划任务定时执行了,重启命令如下:

service crond restart
 

相关文章:

  • 2021-08-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-20
  • 2021-12-10
  • 2021-12-03
  • 2021-11-18
  • 2021-11-06
猜你喜欢
  • 2021-11-30
  • 2021-09-19
  • 2021-05-27
  • 2021-08-27
相关资源
相似解决方案