at,crontab定时程序

作者: 醉里挑灯看剑422 | 来源:发表于2018-10-16 02:15 被阅读7次

    介绍

    程序员对于定时执行任务一定不陌生,很多任务为了减少对用户的干扰,如系统更新、维护、数据库结构变更等,通常会选择在凌晨进行。对于一些简单的无需人工照看的任务,就可以预先写好命令,并设定时间自动运行,然后就可以安心睡大觉了。
    其他情况还有,可以预计的将来要做的操作,为了防止遗忘,先写好命令脚本,然后设置自动运行,就可以把这事从你的日程表里划掉啦。
    下面进入正题。

    一、at

    1. 常用命令

    基本用法:at [参数] [时间]
    控制台读入任务完毕,ctrl+d结束。

    参数 说明
    at -l 或 atq 查看当前任务
    at -d [任务id]或atrm 删除定时任务
    at -c [任务id] 打印任务内容
    at -f [文件] 从指定文件读入任务,而不是从控制台
    2. 用法

    时间的指定非常灵活,下面列举常用几种:
    at 04:00
    at 04pm
    at noon
    at now + 3min/minutes/hours/days/weeks
    at 04pm + 20min
    at today/tomorrow
    at 7:30pm 2017-09-26

    二、cron

    定时任务命令crontab = chronos + table。chronos来源于希腊语,原意是时间

    1. 常用命令
    命令 说明
    crontab -e 编辑定时任务,可以增加或删除。推荐
    crontab -l 列出当前用户的定时任务
    crontab -r 删除当前用户的定时任务
    crontab [test.cron] 用test.cron(自己定义)覆盖定时任务文件 (不推荐)
    2. 配置说明

    crontab -e的默认文件,对配置有了初步的说明,基本够用。下面通过示例形象说明:

    指令 功能
    */2 * * * * echo 'holy shit' >> test.txt 每两分钟执行一次
    20-40/2 * * * * echo 'holy shit' >> test.txt 20到40分钟,每两分钟执行一次
    20-40/2, 50 * * * * echo 'holy shit' >> test.txt 20到40分钟,每两分钟执行一次,第50分钟也执行一次
    0 3-5 * * * echo 'holy shit' >> test.txt 每天的3到5小时开始时执行一次
    0 3-5 3,5,6 * * echo 'holy shit' >> test.txt 每月3、5、6号的3到5点开始时执行一次
    3. 日志地址

    一般情况下,crontab日志在/var/log/cron.log.

    如果没有,那么就在/var/log/syslog,可通过下面命令查看cron日志:

    grep cron /var/log/syslog
    

    修改日志位置:

    sudo vi /etc/rsyslog.d/50-default.conf
    
    #找到下面的line
    #cron.*                         /var/log/cron.log
    #去掉注释
    
    sudo systemctl restart rsyslog
    #查看启动状态
    sudo systemctl status rsyslog
    

    相关文章

      网友评论

        本文标题:at,crontab定时程序

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