20200702Linux 计划任务

    技术2022-07-21  82

    一 at 执行一次的任务

    有时at不是自启的,要在设置下。

    systemctl restart atd                   # 重启这个服务

    systemctl enable atd                  # 开机自启

    systemctl status atd                   # 查看目前状态

    运行方式:

    我们使用at这个命令来产生所要运行的任务,并将这个任务以文本文件的方式写入/var/spool/at 目录内,该任务便能等待atd这个服务的使用和执行了。

    还有两个文件要设置:

    /etc/at.allow                # 在这个文件中的用户才能使用at

    /etc/at.deny                # 在这个文件中用户不能使用at

    如果两个文件都不存在,那么这有root用户可以使用at命令

     

    at [-mldv] TIME

    at -c 任务号码

    -m              当at的任务完成后,即使没有输出信息,也发送邮件通知使用者已完成

    -l                 at -l     相当于atq     列出目前系统上面的at计划任务

    -d                at -d    相当于atrm,   取消一个在at计划中的任务

    -v                可以使用较明显的时间格式列出at计划中的任务列表

    -c                 可以列出后面接的该任务的实际命令内容

    Time 如下:

    04:00            04:00 2011-11-11       now + 5 minutes   之类的

    at now + 5 minutes at> /bin/mail -s "xxxx" root < /root/.bashrc at> EOF # 手动输入ctrl + d 终止输入

    at 好像没啥用,注意的是,at的执行与终端环境无关,而所有标准输出/标准错误输出都会发送到执行者mailbox中,所以终端不会有任何消息,at 执行 echo就看不到结果。

     

    二 cron

    还是有两个文件,/etc/cron.allow   /etc/cron.deny , 默认情况下,任何用户只要不被列入/etc/cron.deny中,那么他就可以直接执行crontab -e.

    当用户使用crontab这个命令来建立计划任务之后,该项任务就会被记录到/var/spool/cron/中。

    cron执行的每一项任务都会被记录到/var/log/cron中。

    crontab [-u username] [-l | -e | -r] 

    -u   只有root才能执行这个任务,即帮助其他使用者建立删除crontab计划任务

    -e   编辑crontab的任务内容

    -l    查看crontab的任务内容

    -r   删除所有的crontab的计划任务

    时间配置:

    * * * * *

    依次是  分时日月周

    0,3,6 * * * command # 每天的三点和六点执行 20 8-20 * * * # 8点到12点每小时的20分执行,8:20 9:20,,, */5 * * * * # / 每隔5分钟执行一次

     

    上面的命令是针对用户的,如果要执行系统的例行性任务时,只要编辑/etc/crontab这个文件就好了。

    用发差不多。

     

     

     

     

     

     

    Processed: 0.009, SQL: 9