nohup日志无法清除的问题

2 篇文章 0 订阅

1.正确的启动命令

nohup java -jar xx.jar >>xx.log 2>&1 &

2.错误的启动命令

nohup java -jar xx.jar >xx.log 2>&1 &

1)> 表示覆盖,>> 表示追加
2)当使用覆盖模式重定向日志时,清除日志时,常见的命令 >xx.log 或者 cat /dev/null > xx.log
日志内容虽然会被清除,但是空间没有释放,下载日志文件后可以看到前面的内容都变成了空行
3)要注意追加模式本身不会清除日志,而是为了后续能随时清除日志,所以如果要清除日志还需要额外去加一行清除日志的脚本

3. 启动并清除日志脚本

JAR=xxx-controller-0.0.1-SNAPSHOT.jar
PID=$(ps -ef |grep $JAR | grep -v grep | awk '{ print $2 }')
 if [ -z "$PID" ]
 then
 echo Application is already stopped
 else
 echo kill $PID
 kill -9  $PID
 fi
# 因为是以追加模式启动的,所以还要先清空日志
> admin.log 
nohup /usr/java/jdk-17.0.5/bin/java -jar $JAR --spring.profiles.active=test >>admin.log 2>&1 &
while true
do
  RESULT=`tail -n 1000 admin.log |grep "Started MainProApplication in"`
  if [ ${#RESULT} -eq 0 ];then
    echo '启动中' & sleep 1
  else
    echo "启动完了,$PID"
    break
  fi
done

echo Application is run

4. .打包日志脚本

#!/bin/bash
current_path=$(pwd| awk '{ print $1 }')
log_path=${current_path}/log 
today_logFile_path=${log_path}/$(date +"%Y-%m-%d").zip
# 创建日志目录
if [ ! -d ${log_path} ]; then
    mkdir $log_path
fi
#当天的只保留一个压缩包
if [ -f ${today_logFile_path} ]; then
	rm -f ${today_logFile_path}
fi
#压缩当日日志
zip -j ${today_logFile_path} ${current_path}/*.log
#清空今日日志 
for i in `find ${current_path} -maxdepth 1 -name "*.log"`; do cat /dev/null > $i; done
cd ${log_path}
#只保留最后20份日志(todo: 优化成 rm -f !(排除文件))
index=1;
for file in `ls -t $log_path`
do
    echo $file $index
    if [ "$index" -gt 20 ]; then 
        rm -f $file
    fi
    let index++;
done
echo "日志备份成功"
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TestBandwitdth脚本用于测试带宽; //***************************************************************************************** 用法: 1.将“TestBandwidth.tar.gz”脚本copy到服务器上解压后,进入目录; 2.编辑“TestURL.sh”:灌流量; 上行:wget http://*** 下行:post http://*** 3.如果修改了步骤2,执行此步,否则跳过: 修改 TestBandwidth.tar.gz 脚本中的倒数5-6行; kill -9 `ps -ef|grep wget|grep http|awk '{print $2}'` //修改kill关键字:grep wget rm zhuxian* //修改rm关键字:zhuxian* 4.修改“bandwidth.sh”:修改检测网卡: netcard=em1 5.使用后台运行命令执行:nohup ./bandwidth.sh (注:停止脚本 pkill -9 bandwidth.sh && pkill -9 wget) 6.查看结果:BandwitdthResult.txt //********************************************************* 测试流量:清空“TestURL.sh”文件时执行就是测试流量 //***************************************************************************************** 脚本说明: 1.调用TestURL.sh脚本启动灌流量操作; 2.等待10s(防止刚开始下载时的流量冲高); 3.取当前网卡已接收的上行、下行数据流量; 4.等待5s; 5.取当前网卡已接收的上行、下行数据流量; 6.计算两次取值中间的差值,算平均值; 7.等待10s,开始下一次小循环(循环4次)(一次小循环70s); 8.清除下载进程,清除下载文件,清除下载日志; 9.等待3495s,开始下一次大循环(一次大循环1h);

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值