crontab 的时间表达式
基本格式 :
*(分) *(时) *(日) *(月) *(周) command(命令)
# Example of job definition:
# .---------------- 分 (0 - 59)
# | .------------- 时 (0 - 23)
# | | .---------- 日 (1 - 31)
# | | | .------- 月 (1 - 12)
# | | | | .---- 周 (0 - 6) (Sunday=0 or 7)
# | | | | |
# * * * * * user-name command to be executed
然后来几个实际的例子
// 每分钟执行一次
* * * * *
// 每隔一小时执行一次
0 * * * *
或
* */1 * * * (/表示频率)
// 每小时的15和30分各执行一次
15,45 * * * * (,表示并列)
// 在每天上午 8- 11时中间每小时 15 ,45分各执行一次
15,45 8-11 * * * command (-表示范围)
// 每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command
// 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
其他命令介绍
crontab file -用指定的文件替代目前的crontab。
crontab -u // 指定操作那个用户的crontab
crontab -1 // 列出用户目前的crontab.
crontab -e // 编辑用户目前的crontab.
crontab -d // 删除用户目前的crontab.
crontab -c // 指定crontab的目录。
crond 安装与配置服务
# 安装crontab
yum install crontabs
# 服务操作说明
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
# 查看crontab服务状态
service crond status
# 手动启动crontab服务
service crond start
# 查看crontab服务是否已设置为开机启动
ntsysv // 按tab键可以跳到下面,选择quit或者cannal
# 加入开机自动启动
chkconfig –level 35 crond on
查看运行中的 corn 服务
ps aux|grep cron
注意
在使用 sh 文件执行定时任务时,不要忘记给文件添加【执行权限】
chmod +x xxxx.sh
或加上【可读、写、执行权限】
chmod 777 xxxx.sh
上面的方法更不可取,使用 +x 即可
示例 sh 文件脚本
#!/bin/bash
# 导入环境变量
export LANG="en_US.UTF-8"
# jdk 路径
JDK_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.x86_64/jre
# jar 所在的路径
FILE_HOME=/home
# jar 文件名字
FILE_NAME=test.jar
# 传入 main 方法参数。不支持多个参数。即不能用空格
# ARGS="hello word"
ARGS=helllo
echo -e "【`date +%Y-%m-%d_%H:%M:%S`】开始执行 $FILE_NAME 程序......"
cd $FILE_HOME && echo -e "进入目录:$FILE_HOME"
$JDK_HOME/bin/java -jar $FILE_HOME/$FILE_NAME $ARGS && echo "执行 $FILE_NAME 完成!" || echo "执行 $FILE_NAME 失败!"
echo -e "【`date +%Y-%m-%d_%H:%M:%S`】$FILE_NAME 程序运行完毕,等待下次执行"
echo -e ""