要求:每周六0点自动重启apache和mysql。
****************************************************
从服务器入手
Linux原生支持crontab,所以可以利用这一功能做定时任务
cron的配置文件称为“crontab”,是“cron table”的简写。
步骤:
1、crontab -e
2、输入代码:
0 0 * * 6 /etc/init.d/httpd restart && /etc/init.d/mysqld restart
第一项(前面5位)是时间设置,
第二项是apache所在目录,
第三项上执行具体方法,
后面的&&可以连写,也可以删除&&后,换行,即也可以这么写:
0 0 * * 6 /etc/init.d/httpd restart
0 0 * * 6 /etc/init.d/mysqld restart
0 9 * * * /usr/bin/curl http://www.website.com/Index/test
每天上午9点自动执行一次http://www.website.com/Index/test方法
第二项代表curl所在目录,
第三项代表所要执行的url
3、esc
4、:wq
=======================================================
在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。每个域之间使用空格或者制表符分隔。格式如下:
* * * * * command
分 时 日 月 周 命令
第1域表示分钟,1~59 每分钟用*或者 */1表示
第2域表示小时,1~23(0表示0点)
第3域表示日期,1~31
第4域表示月份,1~12
第5域标识号星期,0~6(0表示星期天)
第6域要运行的命令
除了数字还有几个特殊的符号:"*" "/" "-" ",",其中:
"*" 代表所有的取值范围内的数字,
"/" 代表每的意思,
"/5" 表示每5个单位,
"-" 代表从某个数字到某个数字,
"," 分开几个离散的数字。
=================================================
crontab文件的一些例子:
#每晚的21:30重启apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
#每月1、10、22日
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
很多时候,我们计划任务需要精确到秒来执行,根据以下方法,可以很容易地以秒执行任务。
以下方法将每10秒执行一次
1 2 3 4 5 6 7 |
|
注意如果有命令用到 % 的话需要用 \ 转义
1 2 3 |
|