zoukankan      html  css  js  c++  java
  • Linux任务计划

    任务计划

    1     Linux任务计划、周期性任务执行 
    2         未来的某时间点执行一次任务 
    3             at 指定时间点,执行一次性任务 
    4             batch 系统自行选择空闲时间去执行此处指定的任务 (不常用)
    5         周期性运行某任务 
    6             cron 

    任务计划创建之at

     1 at任务 
     2     包:at 
     3     at命令:at [option] TIME 
     4     常用选项: 
     5         -V 显示版本信息 
     6         -t time 时间格式 [[CC]YY]MMDDhhmm[.ss] 
     7         -l 列出指定队列中等待运行的作业;相当于atq 
     8         -d 删除指定的作业;相当于atrm 
     9         -c 查看具体作业任务 
    10         -f /path/file 指定的文件中读取任务 
    11         -m 当任务被完成之后,将给用户发送邮件,即使没有标准输出
    12             -m是即使没有标准输出,计划任务执行完了也会发送邮件
    13     注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户 
    14     TIME:定义出什么时候进行 at 这项任务的时间 
    15         HH:MM [YYYY-mm-dd] 
    16         noon(中午), midnight(午夜), teatime(4pm)(下午茶) 
    17         tomorrow 
    18         now+#{minutes,hours,days, OR weeks} 
    19         +10minutes:十分钟后执行
    20 例:创建一次性任务,以邮件方式查看
    21     [root@centos6 ~]#at 11:35
    22     at> date
    23     at> ls /root
    24     at> echo 123123
    25     at> <EOT>        输入命令后Ctrl+d键退出
    26     job 2 at 2019-09-09 11:35
    27     [root@centos6 ~]#at -l
    28     2       2019-09-09 11:35 a root    
    29   也支持输入重定向方式
    30     at 12:00 << EOF
    31         echo 123
    32         echo 354
    33         EOF
    34 at时间格式 
    35     HH:MM  02:00 
    36         在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务 
    37     HH:MM YYYY-MM-DD   02:00 2016-09-20 
    38         规定在某年某月的某一天的特殊时刻进行该项任务 
    39     HH:MM[am|pm] [Month] [Date] 
    40         04pm March 17 
    41         17:20 tomorrow 
    42     HH:MM[am|pm] + number [minutes|hours|days|weeks] 
    43         在某个时间点再加几个时间后才进行该项任务 
    44         now + 5 min  
    45         02pm + 3 days 
    46 at任务 
    47     执行方式: 
    48         1)交互式 2)输入重定向 3)at –f 文件 
    49     依赖与atd服务,需要启动才能实现at任务 
    50     at队列存放在/var/spool/at目录中 
    51     /etc/at.{allow,deny}控制用户是否能执行at任务 
    52         白名单:/etc/at.allow 默认不存在,只有该文件中的用户才能执行at命令 
    53         黑名单:/etc/at.deny 默认存在,拒绝该文件中用户执行at命令,而没有在
    54         添加黑名单之后该用户将不能创建计划任务,按时该用户之前创建的计划任务
    55         是可以执行的
    56         这两个文件的优先级顺序是这样的,当一个用户区创建计划任务先看有没有
    57         /etc/at.allow ,如果有看文件中有没有这个用户如果有就可以执行,如果没有
    58         就会拒绝。如果/etc/at.allow文件不存在就会看/etc/at.deny文件如果有就会
    59         被拒绝,如果没有将默认允许
    60     at.deny 文件中的使用者则可执行 
    61         如果两个文件都不存在,只有 root 可以执行 at 命令 

    任务计划创建之cron

     1 周期性任务计划cron 
     2     周期性任务计划:cron 
     3     相关的程序包: 
     4         cronie:主程序包,提供crond守护进程及相关辅助工具 
     5         在主程序包中包含一个服务/usr/lib/systemd/system/crond.service
     6         这个服务必须处于启用的状态计划任务才能进行执行
     7         cronie-anacron:cronie的补充程序,用于监控cronie任务执行状况,如
     8     cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次
     9     此任务 
    10         crontabs:包含CentOS提供系统维护任务 
    11 计划任务 
    12     确保crond守护处于运行状态: 
    13         CentOS 7: 
    14             systemctl status crond 
    15         CentOS 6: 
    16             service crond status 
    17     计划周期性执行的任务提交给crond,到指定时间会自动运行 
    18         系统cron任务:系统维护作业 
    19             /etc/crontab 
    20         用户cron任务: 
    21             crontab命令 
    22     日志:/var/log/cron 
    23 计划任务 
    24     系统cron任务:/etc/crontab 
    25     注释行以  #  开头 
    26     详情参见  man  5  crontab  
    27         # Example of job definition: 
    28         # .---------------- minute (0 - 59) 
    29         # | .------------- hour (0 - 23) 
    30         # | | .---------- day of month (1 - 31) 
    31         # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
    32         # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
    33         # | | | | | 
    34         # * * * * * user-name command to be executed 
    35     例如:晚上9点10分运行echo命令 
    36         10 21 * * * wang /bin/echo "Howdy!" 
    37     */10 *  *  *  *  root   /data/bin/checkdisk.sh    :每隔十分中就检查一次磁盘;*号表示每的意思,
    38                                                     */10表示每10分钟,其他的都是每小时,每天,每月
    39      30  2 1,10,20 *  0  root  /data/check_disk.sh    :如果天和周都有定义,就是或的关系,这个例子是1,
    40                                                      10,20号和周日的2点30分执行命令,如果想要1,10,2041                                                      并且是周日在执行,那就在脚本里写一个判断语句,
    42                                                      date +%w判断是周几,返回的是数字
    43      30  2  * 3-6,12  *  root  /bin/cat /var/log/messages    :3到6月和12月的每天2点30分以root用户
    44                                                              身份执行命令
    45      任务计划中的命令必须是命令的绝对路径,一般情况都是编辑好脚本,这里写脚本的绝对路径运行脚本的
    46 计划任务 
    47     时间表示法: 
    48         (1) 特定值 
    49             给定时间点有效取值范围内的值 
    50         (2) * 
    51             给定时间点上有效取值范围内的所有值 
    52             表示“每...” 
    53         (3) 离散取值 
    54             #,#,# 
    55         (4) 连续取值 
    56             #-# 
    57         (5) 在指定时间范围上,定义步长 
    58             /#: #即为步长 
    59 时间格式 
    60     @reboot Run once after reboot :下次重启执行
    61     @yearly 0 0 1 1 * :每天
    62     @annually 0 0 1 1 * 
    63     @monthly 0 0 1 * * :每月
    64     @weekly 0 0 * * 0 
    65     @daily 0 0 * * * 
    66     @hourly 0 * * * * 
    67     示例:每3小时echo和wall命令 
    68         0 */3 * * * centos /bin/echo “howdy”;  wall “welcome to Magedu!69 计划任务 
    70     系统的计划任务: 
    71         /etc/crontab 配置文件 
    72         /etc/cron.d/ 配置文件 
    73         /etc/cron.hourly/ 脚本 
    74         /etc/cron.daily/ 脚本 
    75         /etc/cron.weekly/ 脚本 
    76         /etc/cron.monthly/ 脚本 
    77 用户计划任务 
    78     crontab命令定义 
    79         每个用户都有专用的cron任务文件:/var/spool/cron/USERNAME 
    80     crontab命令: 
    81         crontab [-u user] [-l | -r | -e] [-i] 
    82         -l 列出所有任务 
    83         -e 编辑任务 
    84         -r 移除所有任务 
    85         -i 同-r一同使用,以交互式模式移除指定任务 
    86         -u user 仅root可运行,指定用户管理cron任务 :指定是那个用户的计划任务
    87     控制用户执行计划任务: 
    88         /etc/cron.{allow,deny} 
    89 at和crontab 
    90     一次性作业使用 at 
    91     重复性作业使用crontab 
    92         Create at time crontab -e 
    93         List at -l crontab -l 
    94         Details at -c jobnum crontab -l 
    95         Remove at -d jobnum crontab -r 
    96         Edit N/A crontab -e 
    97     没有被重定向的输出会被邮寄给用户 
    98     root能够修改其它用户的作业
    99  

    计划任务的实例

     112:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。
     2     1 0 * * * /root/bin/backup.sh
     3 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。
     4     59 11 * * 1,2,3,4,5 /root/bin/backup.sh
     5 下面例子与上面的例子效果一样:
     6     59 11 * * 1-5 /root/bin/backup.sh
     7 每5分钟运行一次命令
     8     */5 * * * * /root/bin/check-status.sh
     9 每个月的第一天 1:10 p.m 运行
    10     10 13 1 * * /root/bin/full-backup.sh
    11 每个工作日 11 p.m 运行。
    12     0 23 * * 1-5 /root/bin/incremental-backup.sh
    13     30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    14 上面的例子表示每晚的21:30重启apache。
    15     45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    16 上面的例子表示每月1、10、22日的4 : 45重启apache。
    17     10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    18 上面的例子表示每周六、周日的1 : 10重启apache。
    19     0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
    20 上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
    21     0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
    22 上面的例子表示每星期六的11 : 00 pm重启apache。
    23     * */1 * * * /usr/local/etc/rc.d/lighttpd restart
    24 每一小时重启apache
    25     * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
    26 晚上11点到早上7点之间,每隔一小时重启apache
    27     0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
    28 每月的4号与每周一到周三的11点重启apache
    29     0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
    30 #每天早上7点执行一次 /bin/ls :
    31     0 7 * * * /bin/ls
    3212 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup
    33     0 6-12/3 * 12 * /usr/bin/backup
  • 相关阅读:
    用户之间imp的问题
    Java的面向AOP编程
    【Samza系列】实时计算Samza中文教程(四)—API概述
    Objective-C基础笔记(8)Foundation经常使用类NSString
    多校第六场 HDU 4927 JAVA大数类+模拟
    走进windows编程的世界-----对话框、文本框、button
    mysql中的触发器和事务的操作
    《这个医生不干了:一个名医硕士的十年江湖路》:一个聪明、勤奋、上进、友善的医学硕士在医药广告界的十年打拼,难得的是基本是真事 五星
    《致命接触》:人畜共患传染病的故事,SARS一章非常精彩,四星推荐
    《再造医疗:向最好的医院学管理(实践篇)》离中国情况太远,个案太多,概括总结太少 二星,不推荐 。
  • 原文地址:https://www.cnblogs.com/yongbuyanbai0/p/11581844.html
Copyright © 2011-2022 走看看