由 syd168 在 08-10-2004 09:17 发表:
RH AS3 上计划任务随意实现
>
> 源码:
>
> * * *
>
>
> >
> 应该说,所有的操作系统都提供了计划任务功能,用来实现定时执行某个操作或定期执行重复的操作,例如定时提醒,定期备份等。
> >
> 如上所述,计划任务一般分两种,定时任务和定期任务(呵呵,我的分类,不一定准确),Windows系统下的设置更为灵活,有位朋友说Windows下无法实现每个5分钟执行任务,我专门看了,可以的。
> >
> 说明一下,定时任务只执行一次,定期任务每个一定时间自动重复执行。各种杀毒软件都具有这个功能。
> >
> <一>Linux下的计划任务实现.
> >
> 1. 定时任务实现,使用at命令(各用户独自设置)
> >
> 1)#at 时间设置
> >
> >输入命令
> >
> >ctrl+D结束输入,产生任务
> >
> 时间说明:时间分为绝对时间和相对时间。绝对时间:直接设置某个固定的时间;相对时间:从某个时间起经过一段时间后的时间
> >
> 绝对时间:[月/日/年] hh:mm //[]为可选,无表示当天或最近一天
> >
> 相对时间: 绝对时间+时间段 //时间段为:数字hours(或minutes,days,weeks)
> >
> 举例:
> >
> a)明天上午8点给root发一份邮件,告诉他系统正常
> >
> #at 8 tomorrow
> >
> >echo "System is OK!" |mail -s "mess" [email protected]
> >
> >CTRL+D
> >
> b)2008年8月1日上午8点30告诉root,建军节到了
> >
> #at 8/1/2008 8:30
> >
> >echo "Today is army day!" |mail -s "hi" root
> >
> >CTL+D
> >
> c)5天后的下午3:45告诉user1,Tom结婚,别忘记!
> >
> #at 15:45+5days
> >
> >echo "Tom will marry to tom1"|mail -s "from root" user1
> >
> >CTRL+D
> >
>
> >
> 2)显示所有的定期计划任务
> >
> #atq //显示中最左侧列为任务ID
> >
> 3)删除任务
> >
> #atrm 任务ID
> >
> 4)限制用户使用定时任务
> >
> /etc/at.allow 中列出的为用户的用户,一行一个,该文件开始没有
> >
> /etc/at.deny 中列出的为禁止使用的用户
> >
> 请大家自己判断二者都列出的用户是否可以执行at?
> >
>
> >
> 2.定期任务的实现。主要用于重复执行,如备份
> >
> Linux中的定期任务分为用户级别的和系统级别的。用户级别的优先执行。并且需要crond服务,所以要保证该服务运行!用户定期任务放在/var/spool/cron下,并以用户名命名,系统定期任务放在/etc/crontab中,以及一个特殊文件夹下。
> >
> 1)用户级别定期任务
> >
> a)#crontab -e [-u user] //编辑/添加任务 其他用户的root允许
> >
> b)#crontab -l [-u user] //列出定期任务
> >
> c)#crontab -r [-u user] //删除定期任务,删除所有
> >
> *任务文件格式:
> >
> 分钟 小时 日 月 星期 命令
> >
> 表示在按指定的时间定期执行命令
> >
> 如: 5 3 2 * * ls 表示 每月2号5:3 执行ls命令
> >
> *特殊时间格式设置
> >
> a)范围表示 - 如 2-3
> >
> b)多项表示 , 如1,3,5
> >
> c)间隔表示 / 如 2-12/ */2
> >
> *命令说明
> >
> 直接输入命令,如果需要换行,请添加%
> >
> 使用举例
> >
> a)每天晚上3点30备份自己的主要文件
> >
> 30 3 * * * cp -R ~/main ~/backup
> >
> b)每年12月26日,3-8点每隔1小时, 8-12点每隔2小时提醒自己,生日到了。
> >
> * 3-8,8-12/2 26 12 * echo "Today is your birthday!"|mail -s "message" $USER
> >
>
> >
> 2)系统级别的定期任务
> >
> 由root添加,删除
> >
> 第一种方式:直接编辑/etc/crontab文件,添加定期任务,/etc/crontab文件的格式:
> >
> 分 时 日 月 星期 执行用户 命令
> >
> 或者:
> >
> 分 时 日 月 星期 执行用户 run-parts 命令文件位置
> >
>
> >
> 例如:
> >
> 每天晚上0点,由root执行/etc/的备份,应该在/etc/crontab中添加:
> >
> * * * * * root cp -R /etc/ /backup
> >
> 或者:
> >
> * * * * * root run-parts /etc/cron/cron.syd //将命令脚本放在/etc/cron.syd下,这需要自己建
> >
> 第二种,将定期任务脚本直接放置在几个默认定期执行的目录下,他们分别是: /etc/cron.weekly,/etc