日期:2014-05-16  浏览次数:20787 次

linux下crontab定时执行任务

1.需要移植crond和crontab

crontab使用大概有两种,一种是修改全局配置文件/etc/crontab,另一种是直接运行命令crontab -e.

全局配置没有详细测试,似乎直接运行crontab -e方便一些.

1.先把要加入定时任务的脚本写好

比如可以写test:

#!/bin/sh
cd /home/a
echo "Hello World!" > hello
ls -l > mm

2.执行命令 crontab -e,此时系统会打开一个vi编辑器.

3.输入

59 23 * * *??? /home/a/test

表示每天23:59运行脚本bakuplog.sh.前面的时间格式为“M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。*表示任何.例如01 * * * * 表示每小时的01分执行.


时程表的格式如下:?
  f1 f2 f3 f4 f5 program?

  其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。?
  当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推?
  当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推?
  当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
  当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推?
  使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。?




4.重新启动这个进程

/etc/init.d/cron restart

service crond restart