crontab定时任务

通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。

一、 命令参数

1.crontab -l

显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

2.crontab -e

编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

26 9 * * 1,2,3,4,5 /usr/bin/python /home/workspace/stock/mainInfoOpenBuy1.py

输入上面的内容后,:wq保存,退出后就可直接运行了

3.crontab -r

如果不指定用户,则默认删除当前用户的crontab文件。

二、 文件格式

分 时 日 月 星期 要运行的命令

  • 第1列分钟0~59
  • 第2列小时0~23(0表示子夜)
  • 第3列日1~31
  • 第4列月1~12
  • 第5列星期0~7(0和7表示星期天)
  • 第6列要运行的命令

三、 使用实例

1.每1分钟执行一次myCommand

	*/1 * * * * 表示每一分钟执行一次

:表示每一的意思

2.每小时的第3和第15分钟执行

3,15 * * * * myCommand

3.在上午8点到11点的第3和第15分钟执行

3,15 8-11 * * * myCommand

4.每月1、10、22日的4 : 45执行

45 4 1,10,22 * * myCommand

5.每周六、周日的1 : 10执行

10 1 * * 6,0 myCommand

四、 注意事项

有时我们创建了一个crontab,但是这个任务却无法自动执行,而手动执行这个任务却没有问题,这种情况一般是由于在crontab文件中没有配置环境变量引起的。

1.脚本中涉及文件路径时写全局路径;

2.脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:

cat start_cbp.sh
!/bin/sh
source /etc/profile

3.当手动执行脚本OK,但是crontab死活不执行时,很可能是环境变量惹的祸,可尝试在crontab中直接引入环境变量解决问题。如:

0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh

你可能感兴趣的:(服务器)