现在的位置: 首页 > 综合 > 正文

linux中的计划任务

2012年04月21日 综合 ⁄ 共 1224字 ⁄ 字号 暂无评论

任务计划:在未来的某个时间自动执行一个命令或一个脚本完成某项任务,例如可以在每天的半夜十二点关机,在每天的凌晨两点备份文件等等。
1、#at --在未来的某个时间仅执行一次;
-l –查看任务队列;
-r Job_num—删除未来的一任务;
-f FILE TIME –从一文件中读取命令;
at 命令的时间表示法:
HH:MM[ AM | PM ]
MM/DD/YY
now+#(minutes | hours)
ctrl + d –提交任务
任务执行结果会以邮件的形式发给任务的发起者;
#batch –用法和at命令差不多,特别之处是batch不用指定时间,它会选择系统空闲的时候,执行任务;

2、在未来周期性的去执行一个任务;
使用#crontab ,#anacron
crontab和anacron的区别是crontab,当任务定义的时间点过去后,就不再执行;anacron则是检查crontab中的时间列表看有无曾经应该执行而没有执行的任务。
crontab
crontab需要一个服务—crond支持,只有开启crond服务,crontab定义的计划任务才会有效。
crontab定义任务分两类:
1、用户定义的任务 – 存放在/var/spool/cron/下一个与用户名同名的文件;
2、系统定义的任务 – 存放在/etc/crontab(与用户定义任务格式的区别是系统任务得指定执行任务的用户。)
时间格式:
分 时 日 月 星期
0-59 0-23 1-31 1-12 0-7(0和7都表示星期日)
符号:
* -- 表任何时候;
,-- 表非连续时间点
- -- 表连续的时间点
*/# -- 每隔多长时间

#crontab的使用
-e – 编辑任务
-l – 列出自己的任务计划;
-r – 删除所有任务计划;
-u USERNAME –为用户制定任务计划
注:在crontab中执行脚本。脚本中最好先声明PATH变量,确保脚本中的命令能够执行。
eg:01 3 * * * /bin/tar –jcf /backup/etc-`date +%F`.tar.bz2 /etc – 在每天的凌晨3点1分备份/etc目录下的所有内容。
#anacron
配置文件为/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

1 65 cron.daily run-parts /etc/cron.daily
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly
“1” 表示检查过去1天内是否有应该执行而未执行的任务,“65”表示在开机后65分钟执行该任务;
eg: 01 8 * * * /sbin/hwclock –s -- 在每天的8:01 将BIOS中的时间写入系统时间。

给我留言

留言无头像?