linux cron定时器使用demo

2020-01-17

14

0

技术:linux + cron

运行环境:centos 6

demo功能:提供一个cron使用的简单说明

准备定时执行的脚本

比如是启动java服务

不对的示范:nohup java -jar xxx.jar &

正确的示范:nohup /usr/local/java/bin/java -jar xxx.jar &

添加linux定时任务

注意:cron中使用的命令必须是相对路径, 也就是带盘符路径的。

crontab -l : 查看当前用户设置的定时任务

crontab -e: 编辑当前用户的定时任务,定时格式如下图展示

常用格式:

实例1:每1分钟执行一次command
命令:* * * * * command

实例2:每小时的第3和第15分钟执行
命令:3,15 * * * * command

实例3:在上午8点到11点的第3和第15分钟执行
命令:3,15 8-11 * * * command

实例4:每隔两天的上午8点到11点的第3和第15分钟执行
命令:3,15 8-11 */2 * * command

实例5:每个星期一的上午8点到11点的第3和第15分钟执行
命令:3,15 8-11 * * 1 command

实例6:每晚的21:30重启smb
命令:30 21 * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb
命令:45 4 1,10,22 * * /etc/init.d/smb restart

实例8:每周六、周日的1 : 10重启smb
命令:10 1 * * 6,0 /etc/init.d/smb restart

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
命令:0,30 18-23 * * * /etc/init.d/smb restart

实例10:每星期六的晚上11 : 00 pm重启smb
命令:0 23 * * 6 /etc/init.d/smb restart

实例11:每一小时重启smb
命令:* */1 * * * /etc/init.d/smb restart

实例12:晚上11点到早上7点之间,每隔一小时重启smb
命令:* 23-7/1 * * * /etc/init.d/smb restart

实例13:每月的4号与每周一到周三的11点重启smb
命令:0 11 4 * mon-wed /etc/init.d/smb restart

实例14:一月一号的4点重启smb
命令:0 4 1 jan * /etc/init.d/smb restart

实例15:每小时执行/etc/cron.hourly目录内的脚本
命令:01 * * * * root run-parts /etc/cron.hourly

 

保存定时任务

和vim编辑一样,使用wq保存

重启定时任务服务

任意一种都可以

systemctl restart crond.service
service crond restart

 

最后送上我的之前配置的

restart.sh

JAR_FILE=xxxx.jar

now_time=$(date "+%Y-%m-%d %H:%M:%S")
echo $now_time $JAR_FILE 开始执行重启

PID=`ps -ef | grep ${JAR_FILE} | grep java|grep -v 'grep'|awk '{print $2}'`
if [ "$PID" ]; then
    kill -9 $PID
    now_time=$(date "+%Y-%m-%d %H:%M:%S")
    echo $now_time $PID 进程killed
    rm -rf logs
    now_time=$(date "+%Y-%m-%d %H:%M:%S")
    echo $now_time 删除日志成功
fi
nohup /usr/local/java/bin/java -Xms500M -Xmx500M -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8 -verbose:gc -Xloggc:./logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m -jar ${JAR_FILE} > /dev/null 2>&1 &
PID=`ps -ef | grep ${JAR_FILE} | grep java|grep -v 'grep'|awk '{print $2}'`
now_time=$(date "+%Y-%m-%d %H:%M:%S")
echo $now_time $PID 进程重启成功
 
crontab -e
0 5 * * * cd /opt/kafka-exporter && ./restart.sh >> cron.log

欢迎添加微信,互相学习↑↑↑ -_-

发表评论

全部评论:0条

白老虎

programming is not only to solve problems, ways to think