linux中的定时任务由crond服务完成,ps -ef|grep crond,服务是否启动。
服务命令:/sbin/service crond start 启动服务
/sbin/service crond restart 重启服务
/sbin/service crond stop 停止服务
设置定时程序方法:
命令格式为:crontab [-u user] file crontab [-u user] [ -e | -l | -r ]
参数 -u user:用来设定某个用户的crontab服务
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab
-e 打开编辑器,编辑命令,如果不指定用户,则表示编辑当前用户的crontab文件
-l 查看当前用户正在运行的定时命令,如果不指定用户,则表示编辑当前用户的crontab文件
-r 删除crontab文件中的定时命令,如果不指定用户,则默认删除当前用户的crontab文件
-i 在删除用户的crontab文件时给确认提示
时程表的基本格式 :
* * * * * program
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示子夜零点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~7(0和7都表示星期天)
第6列要运行的命令
如设置每5分钟输出hello world到hello.txt:
1、先输入crontab -e 进入编辑器
2、输入命令 */5 * * * * echo "hello world" >> hello.txt
如每天3点重启mysql服务:
0 3 * * * /sbin/service mysqld restart
(这里有个坑,必须要用/sbin/service,直接使用service没有效果)
同理,在脚本中也是如此。
0 3 * * * /root/test/mysql.sh
mysql.sh 脚本内容
/sbin/service mysqld restart