zoukankan      html  css  js  c++  java
  • 一次性计划任务at与周期性计划任务crontab

    一、at一次性计划任务使用

    at语法格式:

    at 时间

    at设置计划任务

    1.下载at程序

    [root@li ~]# yum install at -y

    2.启动atd服务

    [root@li ~]# systemctl restart atd

    [root@li ~]# ps aux | grep atd

    root 1166 0.0 0.1 25904 944 ? Ss 17:52 0:00 /usr/sbin/at -f root 1168 0.0 0.1 112704 956 pts/0 S+ 17:52 0:00 grep –color=auto atd

    3.设置at计划任务

    [root@li ~]# at 10:00 #如果是上午时间,后面加上am,比如9:20am

    at> touch /tmp/test1 #输入你要执行的命令 at> <EOT> #按ctrl+d保存

    job 1 at Fri Mar 1 10:00:00 2019

    [root@li ~]# at -l #查看计划任务 1 Fri Mar 1 10:00:00 2019 a root

    [root@li ~]# atq #查看计划任务 1 Fri Mar 1 10:00:00 2019 a root

    4.删除计划任务atrm

    [root@li ~]# at -l #第一步查看计划任务,获取前面编号

    1 Fri Mar 1 10:00:00 2019 a root

    [root@li ~]# atrm 1 #删除计划任务加上编号

    [root@li ~]# at -l #再次查看计划任务发现已经删除

    5.at计划任务的特殊写法

    [root@li ~]# at 20:00 2018-10-1 在某天

    [root@li ~]# at now +10min 在 10分钟后执行

    [root@li ~]# at 17:00 tomorrow 明天下午5点执行

    [root@li ~]# at 6:00 pm +3 days 在3天以后的下午6点执行

    6.查看at计划任务的详细信息

    at -c jobid

    [root@li html]# at 10:00
    at> touch kk
    at> <EOT>
    job 2 at Tue May 14 10:00:00 2019
    [root@li html]# at -c 2

    二、crontab计划任务使用

    语法:crontab 选项

    常用选项:

    -l:list,列出指定用户的计划任务列表

    -e:edit,编辑指定用户的计划任务列表

    -u:user,指定的用户名,如果不指定,则表示当前用户

    -r:remove,删除指定用户的计划任务列表

    制定计划任务

    1.查看计划任务程序是否启动

    [root@li ~]# ps aux | grep crond
    root 1032 0.0 0.1 126232 1616 ? Ss 19:42 0:00 /usr/sbin/crond -n

    2.查看计划任务

    [root@li ~]# crontab -l
    no crontab for root

    3.编写计划任务(打印时间至/tmp/li)

    [root@li bak]# crontab -e

    * * * * * /usr/bin/echo 123 >> /tmp/li

    4.查看计划执行结果

    [root@li bak]# cat /tmp/li
    123
    123
    123
    123
    123
    123

    5.删除计划任务

    (1)crontab -r

    (2)用#注释掉不需执行的任务

    crontab 配置文件介绍

    SHELL=/bin/bash(指定shell类型)
    PATH=/sbin:/bin:/usr/sbin:/usr/bin(crontab命令执行路径)
    MAILTO=root(发送邮件到/var/spool/mail/root)

    # For details see man 4 crontabs

    # Example of job definition:
    # .---------------- minute (0 - 59)
    # | .------------- hour (0 - 23)
    # | | .---------- day of month (1 - 31)
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # | | | | |
    # * * * * * user-name command to be executed

    *:表示取值范围中的每一个数字

    -:做连续区间表达式的,要想表示1~7,则可以写成:1-7

    /:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:*/10

    ,:表示多个取值,比如想在1点,2点6点执行,则可以在时的位置写:1,2,6

    *  * * * * /bin/systemctl restart network  #表示每天24小时每分钟都执行

    1-7  * * * * /bin/systemctl restart network  #表示每天没小时的1-7分钟执行命令

    */10  * * * * /bin/systemctl restart network  #表示每天没小时的每10分钟执行命令

    1,10,20 * * * * /bin/systemctl restart network  #表示每天没小时的第1分钟,10.分钟,20分钟执行命令

    例子1:每月1、10、22日的4:45重启network服务

    45 4 1,10,22 * * /usr/bin/systemctl restart network

    例子2:每周六、周日的1:10重启network服务

    10 1 * * 6,7 /usr/bin/systemctl restart network

    例子3:每天18:00至23:00之间每隔30分钟重启network服务

    */30 18-23 * * * /usr/bin/systemctl restart network

    例子5:每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss;

    30 2 * * 7 /usr/bin/cp /etc/fstab /tmp/fstab-`date “+\%F_\%T”`

  • 相关阅读:
    sqlserver数据导入问题:报错“对COM组件的调用返回了错误HRESULT E_FAIL”
    删除文件夹提示”该项目不在请确认该项目位置“
    delphi三层DCOM架构
    sqlserver 将店铺表转换成可以用in查询的字符串
    Delphi如何获取一个字符串再另一个字符串中最后一次出现的位置
    c# 通过地址下载流然后保存文件到本地
    使用SQL语句清空数据库所有表的数据
    SqlServer 查询的时候过滤条件有参数导致速度很慢的问题-参数嗅探
    delphi和C# 保存exe文件到数据库
    DELPHI 多线程(TThread类的实现)
  • 原文地址:https://www.cnblogs.com/Agnostida-Trilobita/p/10883452.html
Copyright © 2011-2022 走看看