任务计划:在未来的某个时间自动执行一个命令或一个脚本完成某项任务,例如可以在每天的半夜十二点关机,在每天的凌晨两点备份文件等等。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
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 中的时间写入系统时间。