• 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 
     
     
  • 相关阅读:
    numpy排序函数:sort、argsort、lexsort、partition、sorted
    转载一份分类、回归、排序的评价指标
    python类的全面介绍
    好文推荐:转载一篇别人kaggle的经验分享
    实现ls -l
    C命令行参数
    C语言调用汇编
    汇编调用C程序
    linux 进程通信 :流套接字
    linux进程通信:消息队列
  • 原文地址:https://www.cnblogs.com/xbblogs/p/7616117.html
Copyright © 2020-2023  润新知