LINUX实战:Linux下计划任务和标准化工作流程
《LINUX实战:Linux下计划任务和标准化工作流程》要点: 1、准时任务和计划任务: 2、一次性准时任务at(生产中很少使用) at命令:?at?[option]?TIME ? ? ? ? 常用选项:
? ? -V?显示版本信息:
? ? -l:?列出指定队列中等待运行的作业;相当于atq
? ? -d:?删除指定的作业;相当于atrm
? ? -c:?查看具体作业任务
? ? -f? /path/from/somefile :从指定的文件中读取任务
? ? -m:当任务被完成之后,将给用户发送邮件,即使没有标准输出
? #注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户
? TIME:定义出什么时候进行?at?这项任务的时间
? HH:MM?[YYYY-mm- dd ]
? noon,?midnight,?teatime(4pm)
tomorrow now+ #{minutes,hours,days,?OR?weeks}
? HH:MM?02:00
#在今日的?HH:MM?进行,若该时刻已过,则明天此时执行任务 ? HH:MM?YYYY-MM-DD?02:00?2016-09-20
#规定在某年某月的某一天的特殊时刻进行该项任务 ? HH:MM[am|pm]?[Month]?[Date]
04pm?March?17 17:20?tomorrow HH:MM[am|pm]?+?number?[minutes|hours|days|weeks] #在某个时间点再加几个时间后才进行该项任务 now?+?5?minutes 02pm?+?3?days? 执行方式: 1)交互式?2)输入重定向?3)?at?–f?文件 ? ? 依赖与atd服务,必要启动才能实现at任务
at队列存放在 /var/spool/at 目录中
? ? /etc/at .{allow,deny}控制用户是否能执行at任务
白名单:? /etc/at .allow?默认不存在,只有该文件中的用户才能执行at命令
黑名单:? /etc/at .deny?默认存在,拒绝该文件中用户执行
at命令,?而没有在at.deny?文件中的使用者则可执行 如果两个文件都不存在,只有?root?可以执行?at?命令 3、执行关机未能执行的计划任务:anacron 运行计算机关机时 cron 不运行的任务,?CentOS6以后版本取消anacron服务,
由crond服务管理 ? ? 对笔记本电脑、台式机、工作站、偶尔要关机的服务器及其它不一直开机
的系统很重要对很有用 ? ? 配置文件:? /etc/anacrontab ,负责执行 /etc/ ?cron .daily
/etc/cron .weekly? /etc/cron .monthly中系统任务.
? 字段1:如果在这些日子里没有运行这些任务……
? 字段2:在重新引导后等待这么多分钟后运行它
? 字段3:任务辨认器,在日志文件中标识
? 字段4:要执行的任务
? ? 由 /etc/cron .hourly /0anacron 执行
? ? 当执行任务时,更新 /var/spool/anacron/cron .daily?文件的时间戳?
CentOS6使用 /etc/cron .daily /tmpwatch 定时清除临时文件
? ? CentOS7使用systemd-tmpfiles-setup服务实现
配置文件: ? ? /etc/tmpfiles .d/*.conf
? ? /run/tmpfiles .d/*.conf
? ? /usr/lib/tmpfiles/ *.conf
? ? /usr/lib/tmpfiles .d /tmp .conf
? ? d? /tmp ?1777?root?root?10d
? ? d? /var/tmp ?1777?root?root?30d
命令: ? systemd-tmpfiles?–clean|remove|create?configfile
4、计划任务crontab(生产中重点) crontab 命令:
crontab ?[-u?user]?[-l?|?-r?|?-e]?[-i]
-l:?列出所有任务; -e:?编纂任务; -r:?移除所有任务; -i:同-r一同使用,以交互式模式移除指定任务 -u?user:?仅root可运行,指定用户管理 cron 任务
控制用户执行计划任务: ? ? /etc/cron .{allow,deny}
用户 cron :
? ? crontab 命令定义,每个用户都有专用的 cron 任务文件:
/var/spool/cron/USERNAME crontab -e #?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 ?
Ex: *?23,00-07 /1 ?*?*?*? /usr/local/bin/apache/bin/apachectl ?graceful
?这里很容易懂得成为23-第二天7天每隔一小时重启一次apache服务. 由于秒的位置是*,实际成果是23-第二天7点每分钟重启一次apache服务. 正确的应该给分钟赋固定值 01?23,00-07 /1 ?*?*?*? /usr/local/bin/apache/bin/apachectl ?graceful
礼拜最好和日期不要同时用 1、日月为* *时刻,只是星期生效,这时刻取得时交集 2、日月有值的时刻,日期和星期同时生效,取并集 01?05?28?*?6,7? /bin/bash ?/cron_scripts/backup_etc .sh?> /dev/null ?2>&1
备份剧本会在周六周日或者每月28号,凌晨5点1分执行 5、crontab尺度化工作流程 ?1、计划任务脚本指定寄存位置,便于维护和定期备份 ?2、写定时任务前必须在前面写注释,包含以下: ? 添加计划任务的人,添加任务的时间,任务有效期,计划任务脚本的对象,脚本的作用,以及其他必要提醒其他注意的事项 ?3、执行的脚本前加上/bin/bash或者/bin/sh,脚本必需使用完整的绝对路径 ?4、定时任务,必要尽量避免标准输出和标准错误输出 结尾加上 >/dev/null 2>&1 ? ?计划任务的尺度输出和尺度错误输出都会给root用户以邮件,很容易撑满磁盘消耗磁盘inode ?5、能用命令完成的也要写在剧本里 ?6、在指定用户下执行相关的准时任务 ?7、制定尺度的书写规范 其他使用注意: ?环境变量问题:计划文物的脚本得环境变量必要在脚本重新定义,可以手动在脚本内加载环境变量的配置文件如 . /etc/profile. ?时间变量的%必要转义 本文永远更新链接地址: 《LINUX实战:Linux下计划任务和标准化工作流程》是否对您有启发,欢迎查看更多与《LINUX实战:Linux下计划任务和标准化工作流程》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |