zoukankan      html  css  js  c++  java
  • Linux定时任务crontab

     crontab命令,用于设置周期性被执行的指令。crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。[ps -ef|grep cron]

      1、创建crontab文件

        在考虑向cron进程提交一个crontab文件之前,首先要做的一件事情就是设置环境变量EDITOR。cron进程根据它来确定使用哪个编辑器编辑crontab文件。编辑$HOME目录下的.profile文件,在其中加入这样一行:
           EDITOR=vi; export EDITOR    然后保存并退出。
          注: 不妨创建一个名为<user>cron的文件,其中<user>是用户名,为了提交你刚刚创建的crontab文件,可以把这个新创建的文件作为cron命令的参数:
            crontab davecron
       现在该文件已经提交给cron进程,同时,新创建文件的一个副本已经被放在/var/spool/cron目录中,文件名就是用户名(即,dave)。

      2、编辑crontab文件

        crontab -e

        可以像使用vi编辑其他任何文件那样修改crontab文件并退出。

      3、删除crontab文件

        crontab -r

      4、cron服务
        cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
        service crond start    //启动服务
        service crond stop     //关闭服务
        service crond restart  //重启服务
        service crond reload   //重新载入配置
        service crond status   //查看服务状态 

      5、一个cron脚本

        0 */2 * * * /bin/bash -l -c '. ~/.bashrc; pm2 restart idsp-wxqy>> /tmp/cron.log 2>&1'
        每两个小时执行 pm2 restart idsp-wxqy 命令,并把执行日志写入cron.log文件
     
       minute hour day month dayofweek command
          minute - 从0到59的整数 
          hour - 从0到23的整数 
          day - 从1到31的整数 (必须是指定月份的有效日期)
          month - 从1到12的整数 (或如Jan或Feb简写的月份)
          dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
          command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令) 
     
      例子:
      每天早上6点 
      0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

      每两个小时 
      0 */2 * * * echo "Have a break now." >> /tmp/test.txt  

      晚上11点到早上8点之间每两个小时和早上八点 
      0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt

      每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 
      0 11 4 * 1-3 command line

      1月1日早上4点 
      0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/ 

      每小时执行/etc/cron.hourly内的脚本
      01 * * * * root run-parts /etc/cron.hourly
      每天执行/etc/cron.daily内的脚本
      02 4 * * * root run-parts /etc/cron.daily 

      每星期执行/etc/cron.weekly内的脚本
      22 4 * * 0 root run-parts /etc/cron.weekly 

      每月去执行/etc/cron.monthly内的脚本 
      42 4 1 * * root run-parts /etc/cron.monthly 

      注意: "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名。   

      每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。 
      5,15,25,35,45,55 16,17,18 * * * command

      每周一,三,五的下午3:00系统进入维护状态,重新启动系统。
      00 15 * * 1,3,5 shutdown -r +5

      每小时的10分,40分执行用户目录下的innd/bbslin这个指令: 
      10,40 * * * * innd/bbslink 

      每小时的1分执行用户目录下的bin/account这个指令: 
      1 * * * * bin/account

      每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔): 
      20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)  

      每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。 
      12,55 3 4-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt 
     
     
  • 相关阅读:
    SSL JudgeOnline 1194——最佳乘车
    SSL JudgeOnline 1457——翻币问题
    SSL JudgeOnlie 2324——细胞问题
    SSL JudgeOnline 1456——骑士旅行
    SSL JudgeOnline 1455——电子老鼠闯迷宫
    SSL JudgeOnline 2253——新型计算器
    SSL JudgeOnline 1198——求逆序对数
    SSL JudgeOnline 1099——USACO 1.4 母亲的牛奶
    SSL JudgeOnline 1668——小车载人问题
    SSL JudgeOnline 1089——USACO 1.2 方块转换
  • 原文地址:https://www.cnblogs.com/xbblogs/p/7616117.html
Copyright © 2011-2022 走看看