美文网首页
CentOS7 计划任务

CentOS7 计划任务

作者: 敦敦实实 | 来源:发表于2019-03-15 13:39 被阅读0次

    我的博客主页:笔头博客

    在centos7 上可以利用crontab 来执行计划任务, 依赖与 crond 的系统服务,这个服务是系统自带的,可以直接查看状态,启动,停止。

    计划任务的环境变量要使用绝对路径去执行

    # 查看状态
    systemctl status crond
    # 设为开机启动
    systemctl enable crond
    # 启动crond服务
    systemctl start crond
    

    配置用户定时任务

    crontab 可以设置针对某个用户的定时任务

    # 编辑某个用户的定时任务
    crontab -u {用户名} -e
    # 默认使用当前用户编辑定时任务
    crontab -e
    

    命令参数

    -e  编辑该用户的计时器设置。
    -l  列出该用户的计时器设置。
    -r  删除该用户的计时器设置。
    -u<用户名称>  指定要设定计时器的用户名称。
    

    LOG

    /var/log/cron
    

    将脚本改为可执行(针对shell,.sh文件)

    chmod +x filename
    

    cron 脚本

    cron脚本文件后缀为 .cron 例:mycron.cron

    1、创建脚本并写入内容

    vi mycron.cron
    # 写入
    0 6 * * * echo "Good morning." >> /tmp/test.txt
    

    2、添加定时任务

    crontab crontest.cron
    

    3、 查看结果

    crontab -l
    # 或查看该目下是生成对应cron脚本
    /var/spool/cron
    

    配置参数

    95.jpg

    例:

    # 每天,每30分钟执行一次  mycrontab 脚本
    */30 * * * root /usr/local/mycrontab.sh 
    
    # 每天凌晨三点,执行脚本
    # 由于第一个的分钟没有设置,所以每天凌晨3点的每分钟都执行一次脚本
    * 3 * * * root /usr/local/mycrontab.sh
    
    # 这样就是每天凌晨三点整执行一次脚本
    00 3 * * * root /usr/local/mycrontab.sh
    
    # 每天11点到13点之间,每10分钟执行一次脚本
    */10 11-13 * * * root /usr/local/mycrontab.sh
    
    # 每小时的10-30分钟,每分钟执行一次脚本,共执行20次
    10-30 * * * * root /usr/local/mycrontab.sh
    
    # 每小时的10,30分钟,分别执行一次脚本,共执行2次
    10,30 * * * * * root /usr/local/mycrontab.sh
    
    # 每天早上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 
    
    # 每月1、 10、22日的4 : 45重启nginx。
    45 4 1,10,22 * * /etc/init.d/nginx restart
    
    # 每周六、周日的1 : 10重启nginx。
    10 1 * * 6,0 /etc/init.d/nginx restart
    
    # 每天18 : 00至23 : 00之间每隔30分钟重启nginx。
    0,30 18-23 * * * /etc/init.d/nginx restart
    
    # 每星期六的11 : 00 pm重启nginx。
    0 23 * * 6 /etc/init.d/nginx restart
    
    # 每一小时重启nginx
    * */1 * * * /etc/init.d/nginx restart
    
    # 晚上11点到早上7点之间,每 隔一小时重启nginx
    * 23-7/1 * * * /etc/init.d/nginx restart
    
    # 每月的4号与每周一到周三 的11点重启nginx
    0 11 4 * mon-wed /etc/init.d/nginx restart
    
    # 一月一号的4点重启nginx
    0 4 1 jan * /etc/init.d/nginx restart
    
    # 每半小时同步一下时间
    */30 * * * * /usr/sbin/ntpdate 210.72.145.20
    

    相关文章

      网友评论

          本文标题:CentOS7 计划任务

          本文链接:https://www.haomeiwen.com/subject/hmmlmqtx.html