linux下的定时任务
Python
运行 : crontab - e 进入编辑模式:
* * * * * python /etc/task/run.py >> /var/log/dw.log 2 > &1
需要注意2点 , 就是
1.不能写脚本的名字, 必须在脚本前加上python , 如果还是不行运行, 那就写上python的完整脚本
例如: * * * * * /usr/bin/python /etc/task/run.py >> /var/log/dw.log 2 > &1
2. /etc/task/run.py这个脚本, 开头指定的 #!/usr/bin/python 在定时任务里不起作用
我在centos6下这样写是无效的:
* * * * * /etc/task/run.py >> /var/log/dw.log 2 > &1
尽管我在文件的开头指定了 #!/usr/bin/python , 定时任务仍旧不会执行
Java 需要注意的问题
一般我们的程序, 都会使用日志记录程序出现的问题, 例如我这里使用的是log4j
我的程序的目录是/etc/task/dw目录, 目录结构如下:
lib/test.jar #运行过程中用到的jar包
run.sh #运行脚本
log4j.properties #log4配置文件
run.sh的内容大概如下:
#!/bin/bash
export JAVA_HOME=/usr/local/jdk1.7
export CLASSPATH=.:$CLASSPATH:./lib/test.jar:还有很多jar包, 不列举了
cd /etc/task/dw #必须有此步骤, 否则系统就不会加载log4j.properties文件了
PATH=$JAVA_HOME/bin:$PATH
java com.dw.Main