加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

关于定时脚本crontab的坑

发布时间:2020-12-15 22:22:09 所属栏目:安全 来源:网络整理
导读:? 需求: 每分钟执行一次程序,将处理后的数据写入mongodb 最初做法: 1):写crontab没有响应,于是打算通过shell脚本的while true来执行 当时sb,没控制时间内,而且我还是用nohup XXXX.sh 21 结果就是,几乎每一个瞬间启动一个jar,服务器内存瞬间沾满 解

?

需求:

每分钟执行一次程序,将处理后的数据写入mongodb

最初做法:

1):写crontab没有响应,于是打算通过shell脚本的while true来执行

当时sb,没控制时间内,而且我还是用nohup XXXX.sh 2>&1 &

结果就是,几乎每一个瞬间启动一个jar,服务器内存瞬间沾满

解决:利用awk命令处理

kill -9 $(ps -ef | grep jar | awk {print $2}

2):重新解决crontab问题

crontab很坑,坑的原因有俩:

第一个坑:crontab无法识别环境变量

比如你定时执行java程序,那么通过定时脚本执行:

* * * * * /root/submit_jars/dbScan.sh >> /root/dbscan.log 2>&1

会出现这样的错误:java : commond not found

第二个坑:jarfile not fount

?

解决:

两个坑一起解决:

第一个坑:脚本中添加source /etc/profile

第二个坑:脚本中的jar包需要全路径

?

我的脚本:

#! /bin/bash
source /etc/profile
java -Xms2048m -Xmx2048m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC  -XX:NewRatio=1 -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15 -XX:ParallelGCThreads=2 -XX:G1HeapRegionSize=10m -XX:+PrintHeapAtGC -XX:+PrintGCTimeStamps -Xloggc:/root/submit_jars/gc.log  -jar /root/submit_jars/dbscanToMongo.jar 2019-04-01 00:00:00 2019-05-01 00:00:00 3000 1 och_ci hot_chart_push_data och_ci BKDFmME9 order_info_201904

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读