crontab 的用法

怎么快速创建 cron job 任务

  1. 基本知识的铺垫:
    在这里插入图片描述
    星号():代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
    逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9
    中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
    正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如
    /10,如果用在minute字段,表示每十分钟执行一次。

  2. crontab -e 编辑计划任务,然后就像编辑普通文件一样,编辑计划任务即可

    [root@hc-25-68-14 tmp]# crontab -e
    */2 * * * *  /bin/echo "hello" >> /tmp/hello   
    # 每2分钟向文件 /tmp/hello的行尾写入 hello 字符串,
    # 当然也可以*/2 * * * * /bin/sed -i '$a hello' /tmp/hello , 这要求 /tmp/hello 文件中是有内容的
    # 为了确保计划任务能正确执行,最好在 shell 里面手动执行下计划任务中的命令同时命令的路径最好用绝对路径
    
    wq保存退出可以看到   
    
    [root@hc-25-68-14 ~]# crontab -e
    crontab: installing new crontab
    [root@hc-25-68-14 ~]#
    

    扩展:每2个小时执行一次脚本:
    0 */2 * * * /bin/echo “hello” >> /tmp/hello
    开头的分钟的星需要设置为一个具体的分钟值,表示每2个小时的某个分钟执行,如果是星,那么默认是每分钟执行一次。
    crontab设置为每2个小时之后,是从当前时间算起,还是怎么样的?
    crontab修改生效的时间是10:48。那么是 12:48 第一次执行,还是12:00就会执行?
    发现: 在12:00,14:00,16:00时间是2的倍数的都会执行。

    解释:从crontab生效开始,系统时间小时数每遇到2的倍数,如:12:00,14:00等就会执行。

    这并不是真正的每隔 2 小时运行一次。严格的每隔 2 小时的写法是:
    */120 * * * * /bin/echo “hello” >> /tmp/hello #每120分钟执行一次
    在 Redhat 上尝试,这种写法是不对的。
    对于分钟列这样 */x 的写法,其他列都是 * ,真实表达的意思是:
    如果 x < 60, 比如 25, 则在 25min 50min 和整点的时候执行
    如果 x >= 60 比如 71, 则只会在整点执行

  3. crontab -l 查看定时任务

    [root@hc-25-68-14 tmp]# crontab  -l
    */2 * * * *  echo "hello" >> /tmp/hello
    [root@hc-25-68-14 tmp]# 
    
  4. 其实上面的编辑的定时任务,就保存在了 /var/spool/cron/root 中, 该文件不要直接编辑

    [root@hc-25-68-14 tmp]# cat /var/spool/cron/root 
    */2 * * * *  echo "hello" >> /tmp/hello
    [root@hc-25-68-14 tmp]# 
    ---------------------------------------------------------------------------------------------------------------------------------
    日志文件:  ls -al /var/log/cron*  
    进程:ps -ef | grep crond  ==> /etc/init.d/crond restart  
    
    [root@JXQ-240-90-228 logrotate]# pwd
     /var/lib/logrotate
     [root@JXQ-240-90-228 logrotate]# cat logrotate.status 
     logrotate state -- version 2
     "/var/log/yum.log" 2019-4-4-10:0:0
     "/export/servers/var/log/w1-4.log" 2019-9-8-12:0:1
     "/var/log/boot.log" 2019-9-8-3:38:1
     "/export/servers/var/log/w1.log" 2019-8-20-3:0:0
     "/var/log/chrony/*.log" 2019-4-4-10:0:0
     "/var/log/wtmp" 2019-9-1-3:45:1
     "/export/servers/var/log/w1-1.log" 2019-9-8-12:0:1
     "/var/log/spooler" 2019-4-4-10:0:0
     "/export/servers/var/log/archiver.log" 2019-9-8-16:0:1
     "/var/log/btmp" 2019-9-1-3:45:1
     "/var/log/maillog" 2019-9-1-3:45:1
     "/var/log/aide/*.log" 2019-4-4-10:0:0
     "/var/log/iptraf-ng/*.log" 2019-4-4-10:0:0
     "/export/servers/var/log/w1-2.log" 2019-9-8-12:0:1
     "/var/log/wpa_supplicant.log" 2019-4-4-10:0:0
     "/var/log/secure" 2019-9-1-3:45:1
     "/export/servers/var/log/uwsgi_archvier.log" 2019-8-20-3:0:0
     "/var/log/messages" 2019-9-1-3:45:1
     "/var/account/pacct" 2019-4-4-10:0:0
     "/var/log/cron" 2019-9-1-3:45:1
     "/export/servers/var/log/w1-3.log" 2019-9-8-12:0:1
     [root@JXQ-240-90-228 logrotate]# 
    
发布了44 篇原创文章 · 获赞 0 · 访问量 3964

猜你喜欢

转载自blog.csdn.net/cpxsxn/article/details/98597411
今日推荐