linux用户自定义定时任务执行

使用管理员root用户添加定时执行任务

vi /etc/crontab

*/1 * * * * /root/check_nginx.sh >>/root/check_nginx.log

   基本上,cron服务的最低检测时间单位是分钟,所以cron会每分钟读取一次/etc/crontab与/var/spool/cron中的数据内容,因此,只要您编辑完/etc/crontab文件并且保存之后,crontab时设定就会自动执行

注意:在linux下的crontab会自动帮我们每分钟重新读取一次/etc/crontab的例行工作事项,但是某些原因或在其他的unix系统中,由于crontab是读到内存中,所以在您修改完/etc/crontab之后可能并不会马上执行,这时请重新启动crond服务。
/etc/rc.d/init.d/crond   restart

好了,下面看看/etc/crontab文件的内容:
vi   /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

#   run-parts
01 * * * * root   nice   -n   19     run-parts   /etc/cron.hourly
02 4 * * * root   nice   -n   19    run-parts   /etc/cron.daily
22 4 * * * root    nice   -n   19   run-parts   /etc/cron.weekly
42 4 1 * * root   nice   -n    19  run-parts   /etc/cron.monthly


分时日月周   用户   参数设定值   参数设定值   指令段

       从这个文件的内容可以看出,这个文件与输入crontab -e后的内容几乎完全相同,只是下面几个地方有所区别:

MAILTO=root:这个字段说明了当/etc/crontab文件中的例行性命令发生错误时,会将错误信息或屏幕显示的信息传递给谁?由于root无法在客户端收信,因此,可以将这个email改成自己普通用户帐号。 
 01 * * * * root   nice   -n   19     run-parts   /etc/cron.hourly:在#run-parts这一行以后的命令,我们可以发现,5个数字后面接的是root,这代表执行的层级为root身份。当然,您也可以root改成其他身份,而run-parts表示后面接的是/etc/cron.hourly是一个目录内(/etc/cron.hourly)的所有可执行文件,也就是说每个小时的01分,系统会以root的身份到/etc/cron.hourly目录下执行所有可以执行的文件。系统本来就默认了这4个目录,您可以将每天需要执行的命令直接写到/etc/cron.daily中,还不需要用到crontab -e程序,很方便。

 注意:基本上,/etc/crontab支持两种输入指令的方式,一种是直接以指令形式输入,一种则是以目录形式输入。

指令形式
01   * * * * test   mail   -s   test   test   <   /home/test/test/test.txt
用户是test,且每小时执行一次指令mail……
目录形式
*/5   *  *  *  * root run-parts   /root/runcron
建立一个/root/runcron目录,将每隔5分钟执行一次的可执行文件都写到该目录下,就可以让系统每5分钟执行一次该目录下的所有可执行文件。
           
          这样就知道run-parts的作用了吧!此外,与crontab -e规划中不同的是,多了一个用户层级的概念。通常,我们都是以root的角度来规划例行命令的,但是总有不需要root的场合,因此可以使用这个层级来规范该程序的用户所属。

crontab简易入门

假设我要设置一个任务,每分钟就要做一个数据同步,这个同步脚本的路径是/home/blue/do/rsyncfile.sh,那么我可以在这么配置,使用blue用户,在终端输入

crontab -e
# 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。
#分 时 日  月 周      |<==============任务的完整命令行
 *  *  *  *  *       /home/blue/do/rsyncfile.sh

默认情况下,任何使用者只要不被列入 /etc/cron.deny 当中,那么他就可以直接下达『 crontab -e 』去编辑自己的例行性命令了!整个过程就如同上面提到的,会进入 vi 的编辑画面, 然后以一个工作一行来编辑,编辑完毕之后输入『 :wq 』储存后离开 vi 就可以了! 

 假如我们需要修改为每5分钟运行数据同步的脚本,那么同样使用 crontab -e 进入编辑:

*/5 * * * *  /home/blue/do/rsyncfile.sh
 
详细请参考:http://www.cnblogs.com/xd502djj/p/4292781.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值