技术:linux + cron
运行环境:centos 6
demo功能:提供一个cron使用的简单说明
比如是启动java服务
不对的示范:nohup java -jar xxx.jar &
正确的示范:nohup /usr/local/java/bin/java -jar xxx.jar &
注意: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
欢迎添加微信,互相学习↑↑↑ -_-
白老虎
programming is not only to solve problems, ways to think
grafana 级连 菜单 templating (variables) 配置
rocketmq 集群搭建 (2master + 2slave + 2namesrv)
AI 机器人 抓取 微信 聊天中的 百度网盘 分享地址和密码