今天复习了下鸟哥的私房菜。看了定时执行任务的那章,发觉每次去看总是有收获呀。嘿嘿。这次就是重看了at 跟 crontab的用法,期间还不小心注意到另一个命令:chkconfig , 这个命令是能指定开机的时候是否同时开启某些服务。用法:chkconfig mysqld on / off
再想想今天的at的用法,这玩意假如想开启的话,需执行下/etc/init.d/atd start,然后用法大概如下 at + time ,然后会弹出”at > " 这个符号,接下来你就需要输入操作就可以了,假如到了指定的time后,操作系统就会为你执定该操作,这个at算是挺强大,挺有用的了,但是它只能指行一次,往往很多情况下,我们都需要让操作系统为我们每天在固定的时刻,执行我们想要的操作,就当是闹钟一样吧。这个其实当我只会at命令的时候,我曾想过用递归的方法来实现,但是我知道了还有另一个更powerful的命令之后,就觉得我之前那种想法太麻烦了。。掌握的命令不够多就会发生这种情况,但是往往自己又不知道自己不知道哪些命令,这才最晕。。哈哈。所以要多看书了,那个很强悍的命令就是前面说的crontab了 ,这个东东,我们只需要执行 " crontab -e " 然后就会弹出一个vim编辑界面,我们只需要在其中写上我们要的任务跟执行的时候就可以了,写法: 分 时 日 月 周 命令 。
假如想每天4点的时候,输出一个字符,我们可以这么做:* 4 * * * echo "dongdong"。*符号代表无论何时何月的四点,就会执行dongdong。还有一个问题就是周跟日月不可同时指定,为什么呢。因为这样会造成混淆,假如我想 5月17号星期一的四点时 系统执行一个操作,就千万不可以 * 4 17 5 4 echo "dongdong" 。这样的话系统可能在每个星期五都会为你执行一次操作,在5月17号也帮你执行一个操作,那可就麻烦鸟,时间除了可以用星号符号,还可以用其它符号:
逗号(在逗号隔开的时刻都会执行)。比如: 1,2,3,4 4 17 5 4 echo "dongdong"
减号(指定一个时间段)比如: 1-4 4 17 5 4 echo "dongdong"
还有比较重要的 "/" 符号(表示每过多久)比如:*/4 * * * * echo "dongdong" 就表示每过4分钟执行一个输出啦。
假如说你想删除指定的定时任务,at所记录的任务,可以用“at -d 任务号 “ 或” atrm 任务号“ 想查看任务号的话,可以用"at q " ,就能
看到所有的任务号啦,假如你想确定那个任务号对应的是什么任务的话,那么就用“at -c 任务号”。多么方便
crontab的话,如果想删除任务的话,那么还是用crontab -e进行编辑吧,把不想要的删除了就可以了,假如你定了很多任务的话,同时
想删光的话,那么可以用crontab -r , 仅仅想查看任务的话,也可以用crontab -l 列出所有的任务