linux 计划任务
2017-05-10 23:07
288 查看
at option TIME
如果都没有全都拒绝普通用户
option
time
周期性任务计划cron
系统维护作业etccrontab 详情参见 man 5 crontab
用户cron 任务crontab 命令
控制用户执行计划任务etccronallowdeny
时间表示法
-
时间格式
系统的计划任务
实例
anacron 系统
秒级别运行任务
at与crontab对比
管理临时文件
配置文件
命令
run-parts dir 执行dir下所有脚本
sleep单位s秒 默认
vipw vi etcpasswdvigr pwck grpck
at 队列存放在/var/spool/at 目录中
白名单:/etc/at.allow默认不存在,只有该文件中的用户才能执行at 命令
黑名单:/etc/at.deny默认存在,拒绝该文件中用户执行at 命令, 而没有在at.deny文件中的使用 者则可执行
如果 两个文件都不存在有 ,只root行可以执行 at命令
==at.deny,allow文件优先级高,有此文件,deny无效,只有此文件中的用户可使用at;
deny文件优先级低,此文件中的用户拒绝,不在此文件允许;
cronie: 主程序包,提供crond 守护进程及相关辅助工具
cronie-anacron :cronie 的补充 程序,用于 监控cronie任务执行状况,如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务
crontabs :包含CentOS 提供系统维护任务
日志:/var/log/cron
任务文件var/spool/cron
CentOS 7:
systemctl status crond
CentOS 6:
service crond status
-u user: 仅root 可运行,指定用户管理cron 任务
-r删除当前用户的计划任务
-ru user1删除用户1的计划任务
-lu user1列出user1的计划任务
-eu user1 以user1的身份编辑计划任务
-i :同-r 一同使用,以交互式模式移除指定任务
deny文件优先级低,此文件中的用户拒绝,不在此文件允许;
如果都没有,全都拒绝普通用户
给定时间点有效取值范围内的值
*
给定 时间点上有效取值范围内的所有值
表示 “每…”
离散取值
/#: #即 即 为步长
示例:每 每3 小时echo 命令
0 /3 * * centos /bin/echo “howdy!”
@yearly 0 0 1 1 *
@annually 0 0 1 1 *
@monthly 0 0 1 * *
@weekly 0 0 * * 0
@daily 0 0 * * *
@hourly 0 * * * *
/etc/cron.d/ 配置文件
/etc/cron.hourly/ 脚本
/etc/cron.daily/ 脚本
/etc/cron.weekly/ 脚本
/etc/cron.monthly/
每周2, 4,7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”
每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中
工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就执行wall警报
取消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 文件的时间戳
==对于cron 任务来讲,% 有特殊用途;如果在命令中要使用%, ,
则 需要转义。将% 放置于单引号 中,则可不用转义==
==没有被重定向的输出会被邮寄给用户==
==根用户能够修改其它用户的作业==
CentOS7 使用systemd-tmpfiles-setup
/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
h: 小时
d: 天
如果都没有全都拒绝普通用户
option
time
周期性任务计划cron
系统维护作业etccrontab 详情参见 man 5 crontab
用户cron 任务crontab 命令
控制用户执行计划任务etccronallowdeny
时间表示法
-
时间格式
系统的计划任务
实例
anacron 系统
秒级别运行任务
at与crontab对比
管理临时文件
配置文件
命令
run-parts dir 执行dir下所有脚本
sleep单位s秒 默认
vipw vi etcpasswdvigr pwck grpck
at [option] TIME
通过rpm -ql at可知at依赖于/etc/rc.d/init.d/atd服务,使用前需要确认服务是否已开启;centos7 是否开机启动 systemctl is-enabled atd.service 是否目前启动状态 systemctl status atd.service centos6 是否开机启动 chkconfig --list atd chkconfig atd on 是否目前启动状态 service atd status
at 队列存放在/var/spool/at 目录中
白名单:/etc/at.allow默认不存在,只有该文件中的用户才能执行at 命令
黑名单:/etc/at.deny默认存在,拒绝该文件中用户执行at 命令, 而没有在at.deny文件中的使用 者则可执行
如果 两个文件都不存在有 ,只root行可以执行 at命令
==at.deny,allow文件优先级高,有此文件,deny无效,只有此文件中的用户可使用at;
deny文件优先级低,此文件中的用户拒绝,不在此文件允许;
如果都没有,全都拒绝普通用户
option
options | complications |
---|---|
-l | 列出指定队列中等待运行的作业;相当于atq |
-d | 删除指定的作业;相当于atrm |
-c | 查看具体作业任务 |
-f | /path/from/somefile :从指定的文件中读取任务 |
-m | 当任务 |
time
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
周期性任务计划cron
rpm -ql cronie 可知需要/etc/rc.d/init.d/crond提供服务cronie: 主程序包,提供crond 守护进程及相关辅助工具
cronie-anacron :cronie 的补充 程序,用于 监控cronie任务执行状况,如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务
crontabs :包含CentOS 提供系统维护任务
日志:/var/log/cron
任务文件var/spool/cron
CentOS 7:
systemctl status crond
CentOS 6:
service crond status
系统维护作业/etc/crontab( 详情参见 man 5 crontab)
# 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 例如:晚上9 点10 分运行echo 命令; 10 21 * * * centos /bin/echo "Howdy!"
用户cron 任务:crontab 命令
-l列出当前用户的计划任务-u user: 仅root 可运行,指定用户管理cron 任务
-r删除当前用户的计划任务
-ru user1删除用户1的计划任务
-lu user1列出user1的计划任务
-eu user1 以user1的身份编辑计划任务
-i :同-r 一同使用,以交互式模式移除指定任务
#非交互式实现 echo '*/2 * * * * wall test'|crontab #列出hacker用户的计划任务 crontab -lu hacker
控制用户执行计划任务/etc/cron.{allow,deny}
默认只有cron.deny,allow文件优先级高,有此文件,deny无效,只有此文件中的用户可使用cron;deny文件优先级低,此文件中的用户拒绝,不在此文件允许;
如果都没有,全都拒绝普通用户
时间表示法
特定值给定时间点有效取值范围内的值
*
给定 时间点上有效取值范围内的所有值
表示 “每…”
离散取值
,#,
连续取值-
在指定时间范围上, 定义步长/#: #即 即 为步长
示例:每 每3 小时echo 命令
0 /3 * * centos /bin/echo “howdy!”
时间格式
@reboot Run once after reboot.@yearly 0 0 1 1 *
@annually 0 0 1 1 *
@monthly 0 0 1 * *
@weekly 0 0 * * 0
@daily 0 0 * * *
@hourly 0 * * * *
系统的计划任务
/etc/crontab/etc/cron.d/ 配置文件
/etc/cron.hourly/ 脚本
/etc/cron.daily/ 脚本
/etc/cron.weekly/ 脚本
/etc/cron.monthly/
实例
每天的2点和12点整,将/etc备份至/testdir/backup目录中,保存的文件名称格式为“etcbak-yyyy-mm-dd-HH.tar.xz”echo '* 2,12 * * * cp -a /etc /testdir/backup/etcbak-`date +%Y-%m-%d-%H`' |crontab echo '* 2,12 * * * root cp -a /etc /testdir/backup/etcbak-`date +%Y-%m-%d-%H`' >> /etc/cron.d/backupetc
每周2, 4,7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”
echo '* * * * 2,4,7 root cp -a /var/log/messages /logs' >> /etc/cron.d/backupmessages
每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中
echo "* 2 * * * root grep -E '^[SM]' /proc/meminfo >>/tmp/meminfo.txt " >> /etc/cron.d/meminfo
工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就执行wall警报
echo "*/10 * * * 1-5 root for i in `df -P|tr -s ' '|cut -d' ' -f5|grep -o [[:digit:]]`;do [ "$i" -gt 2 ] && wall 'disk over 80%';done" >> /etc/cron.d/diskwall
anacron 系统
运行计算机关机时cron 不运行的任务,CentOS6 以后版本取消anacron 服务,由crond 服务管理
对笔记本电脑、台式机、工作站、偶尔要关机的服务器及其它不一直开机的系统很重要对很有用
配置文件:/etc/anacrontab ,负责执行/etc/ cron.daily;/etc/cron.weekly ;/etc/cron.monthly 中系统任务。
cat /etc/anacrontab # /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
字段1 :如果在这些日子里没有运行这些任务……
字段2 :在重新引导后等待这么多分钟后运行它
字段3 :任务识别器,在日志文件中标识
字段4 :要执行的任务
由/etc/cron.hourly/0anacron 执行
当执行任务时,更新/var/spool/anacron/cron.daily 文件的时间戳
秒级别运行任务
在每分钟的基础上循环执行* * * * * for min in 0 1 2; do echo "hi"; sleep 20; done
at与crontab对比
item | at | crontab |
---|---|---|
Create | at time | crontab -e |
List | at -l | crontab -l |
Details | at -c jobnum | N/A |
Remove | at -d jobnum | crontab -r |
Edit | N/A | crontab -e |
则 需要转义。将% 放置于单引号 中,则可不用转义==
==没有被重定向的输出会被邮寄给用户==
==根用户能够修改其它用户的作业==
管理临时文件
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 configfilerun-parts dir 执行dir下所有脚本
sleep单位s:秒, 默认
m: 分 分h: 小时
d: 天
vipw vi /etc/passwd(vigr pwck grpck)
相关文章推荐
- Linux计划任务入门详解
- Linux计划任务——cron服务
- Linux计划任务 -- cron
- linux中的任务计划(Crontab)
- 用Linux计划任务cron执行cvs定时更新时的问题
- Linux 计划任务详解
- linux中的crondtab定时计划任务
- Linux系统crontab命令格式--周期性计划任务(重点)
- LINUX_计划任务
- Linux 计划任务之crontab
- Linux 中怎么设置计划任务:cron 与 anacron
- Linux 计划任务 Crontab 笔记与总结(1)
- PHP之Linux(十)计划任务与备份策略
- linux 任务计划
- Linux学习之计划任务(at、batch、crontab)篇
- Oracle 定时自动备份(windows任务计划,2016新增linux自动化备份)
- linux任务计划
- 让你学会Linux计划任务
- linux下创建expdp备份的计划任务
- linux 计划任务