1.crontab 1.1 启动服务 first也是最重要的就是启动crontab服务了哦^_^俺的系统是ubuntu,crontab在ubuntu下的服务名词为cron.可以使用脚本 ls /etc/rc$(runlevel|sed 's/N.//').d|awk '!/K/ {print}'|sed 's/S[0-9][0-9]//'
当然你也可以在上面脚本后面加个 | grep cron直接参看crontab服务是否已经启动了,没有启动的话,那就启动crontab服务啥^_^,
sudo /etc/init.d/cron start(ps:你也可以使用这条命令参看cron服务是否启动了,如果已经启动会提示服务已启动的,当然一般情况下cron服务都是随系统启动的,你可以sudo sysv-rc-conf设置开机启动的服务,sysv-rc-conf如何install google or baidu it)
1.2 crontab语法
这个一般man crontab就可以了^_^
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 crontab -l //列出某个用户cron服务的详细内容 crontab -r //删除某个用户的cron服务 crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l 再例如,root想删除fred的cron设置:crontab -u fred -r 在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e 进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt 这
个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以
了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下: 分钟 (0-59) 小時 (0-23) 日期 (1-31) 月份 (1-12) 星期 (0-6)//0代表星期天 除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字. 1.3 example 30 21 * * * /usr/local/etc/rc.d/apache2 restart表示每晚的21:30重启apache2 45 4 1,10,22 * * /usr/local/etc/rc.d/apache2 restart每月1、10、22日的4 : 45重启apache2 10 1 * * 6,0 /usr/local/etc/rc.d/apache2 restart表示每周六、周日的1 : 10重启apache22. linux at 命令详解 首先也是man at了哦^_^ 使用方式 : at -V [-q queue] [-f file] [-mldbv] TIME 说明 : at 可以让使用者指定在 TIME 这个特定时刻执行某个程序或指令,TIME 的格式是 HH:MM其中的 HH 为小时,MM 为分钟,甚至你也可以指定 am, pm, midnight, noon, teatime.
如果想要指定超过一天内的时间,则可以用 MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分钟,DD 是第几日,YY
是指年份。另外,使用者甚至也可以使用像是 now + 时间间隔来弹性指定时间,其中的时间间隔可以是 minutes, hours, days,
weeks. 另外,使用者也可指定 today 或 tomorrow 来表示今天或明天。当指定了时间并按下 enter后,at 会进入交谈模式并要求输入指令或程序,当你输入完后按下 ctrl+D 即可完成所有动作,至于执行的结果将会寄回你的帐号中。
参数 :
-V : 印出版本编号
-q : 使用指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue 中,使用者可以同时使用多个 queue,而 queue 的编号为 a, b, c... z 以及 A, B, ... Z 共 52 个
-m : 即使程序/指令执行完成后没有输出结果, 也要寄封信给使用者
-f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入
-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)
-d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d)
-v : 列出所有已经完成但尚未删除的指定
例子 :
三天后的下午 5 点锺执行 /bin/ls :
at 5pm + 3 days /bin/ls 三个星期后的下午 5 点锺执行 /bin/ls :
at 5pm + 3 weeks /bin/ls
明天的 17:20 执行 /bin/date :
at 17:20 tomorrow /bin/date 2008年的最后一天的最后一分钟印出 the end of world !
at 23:59 12/31/2008 echo the end of world ! ps:at指令不能在shell中直接输入
# at 2:05 tomorrow(指定时间)
at> /home/mj/airplane > /home/mj/air-safe(具体command)
at> Ctrl+D(表示文本输入结束,不是Ctrl+C哦)
3. summary 其实不用总结大家自己也可以看出来,写论文写惯了,这里就再废话下,crontab的命令灵活些可以重复执行多次,而at的就one time了哦...
阅读(1011) | 评论(0) | 转发(0) |