Linux之计划任务
计划任务特性
1. 需要在指定的某时间段运行
2. 需要将任务结果邮件通知用户
3. 单次任务及循环任务区别
Linux计划任务的实现工具
1. at工具
- 其只能执行一次性任务
- 其会自动加载部分环境变量
- 可以执行命令
- 可以执行脚本
- 作业有队列,用单字母表示,默认为a队列
- 作业计划任务是以绝对序列值进行排序
- 任务结果会以邮件的形式通知用户
2. batch工具
- 其使用方法与at工具类似
- 最大的区别为:它会选择系统在比较空闲的时间段执行任务
3. crontab命令
- 其可以循环执行任务,实现周期性任务
- 最小时间单位为
分钟
,如果需要到秒
级别,需要你是用外部机制 - 可以执行命令
- 可以执行脚本
- 每次的任务都会发送邮件至用户通知
- 其依赖于crond守护进程及相关辅助工具,
cronie
是其主程序包
一、at工具
synopsis: at [OPTIONS]...time
-
[time]
格式HH:MM[YYYY-mm-dd]
- 20:10 2015-10-30
noon
: 正午midnight
: 午夜teatime
: 下午4点tomorrow
: 明天now +# UNIT
* UNIT: min,hours,days,weeks
-
[options]
-l
: 列出任务队列,相当于atq
命令-f FILE
: 从指定文件中读取作业任务,不用交互式输入at -f at.sh now+5min
-d #
: 删除任务at -d 3
==atrm 3
:删除第3号任务
-c #
: 查看指定任务的内容-q a|b|c|d
: 指定默认队列
二、crontab工具
cron任务的分类
- 系统cron任务
- 配置文件
- /etc/crontab
- 配置命令
- 直接编辑/etc/crontab文件
- 配置文件
- 用户cron任务(
root用户也不例外
)- 配置文件
- /var/spool/cron/USERNAME
- 配置命令
- crontab -e
- 配置文件
/etc/crontab文件的格式
每一行定义一个周期性任务 此处的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝对路径,或自定义path环境变量 执行结果邮件发送给想着用户,即mailto=中定义的用户 普通用户不需要定义mailto参数,因为他的任务文件就以用户名命名 共7个字段 如果命令中有%这类的符号,需要转义,但旋转到单引号中的不用转义
crontab命令:
synopsis - crontab [-u user] [-l | -r | -e] [-i] [-s]
[options] -e : 编辑任务,建议使用crontab -e,这样可以帮忙检查其错误 -l : 列出所有任务 -r : 移除所有任务,即删除对应/var/spool/cron/USERNAME文件 -i : 交互式,在使用-r删除所有用户时,提示用户确认 -u USER : root用户可以为指定的用户管理、指定任务
注意:运行结果会以邮件方式通知当前用户,如果拒绝接收邮件,可以会导致未备份成功却没有任何消息反馈的情况,建设如下操作:
COMMAND > /dev/null : 将正确结果删除,只返回错误输出并发送邮件至用户 COMMAND &> /dev/null : 不建议此操作 指定的某任务在指定的时间因关机未能执行,下次开机不会自动执行 如果某时间点因故未能按时执行,下次开机后无论是否到了相应时间点,都要补充执行一次,可使用anacron实现
每12小时备份一次/etc目录至/backups目录中,保存格式为etc-yyy-mm-dd-hh.tar.xz” 01 */12 * * * root tar Jcf /backups/etc-$(date +"\%F-\%H-\%S").tar.xz /etc/ 每周2、4、7备份/var/log/secure文件至/logs目录中,文件名格式为 secure-yyyymmdd 01 09 * * 2,4,7 root tar Jcf /logs/secure-$(date +"\%Y\%m\%d") /var/log/secure 每两个小时取当前系统/proc/meminfo文件中以S或M开头的行信息追加至/tmp/meminfo.txt文件中 01 */2 * * * root grep '^[M\|S]' /proc/meminfo > /tmp/meminfo.txt
作者:沐禹辰
出处:http://www.cnblogs.com/renfanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
出处:http://www.cnblogs.com/renfanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。