@0XNIAI,要添加条件,以确保ptbd-backend.jar
文件的大小大于90MB时才执行重启操作,您可以使用if
语句来检查文件大小。以下是更新后的脚本:
#!/bin/bash
# 设置要监测的JAR文件路径
jar_file="/root/apps/ptbd/dev/backend/lib/ptbd-backend.jar"
# 设置日志文件路径
log_file="/root/apps/ptbd/dev/backend/log/monitor.log"
# 记录上次检查的文件大小
previous_file_size=$(stat -c %s "$jar_file")
# 创建日志文件(如果不存在)
touch "$log_file"
# 循环监测
while true; do
# 获取当前文件大小
current_file_size=$(stat -c %s "$jar_file")
# 检查文件大小是否发生改变且大于90MB
if [ "$current_file_size" -ne "$previous_file_size" ] && [ "$current_file_size" -gt 94371840 ]; then
timestamp=$(date +"%Y-%m-%d %H:%M:%S")
echo "$timestamp: Jar文件大小发生改变且大于90MB,执行重启脚本..." >> "$log_file"
/usr/local/sh/restart-gxs-ptbd.sh # 执行重启脚本
# 更新上次检查的文件大小
previous_file_size="$current_file_size"
fi
# 每隔一段时间再次检查
sleep 60 # 60秒,您可以根据需要调整检查频率
done
这个脚本将检查文件大小是否大于90MB,并且在文件大小发生改变时执行重启操作。如果文件大小不满足条件,脚本将继续等待并监测。
@0XNIAI,要同时输出每次监测的日志,您可以修改脚本,将日志信息写入一个日志文件,并使用tail -f
来监视这个日志文件。以下是更新后的脚本:
#!/bin/bash
# 设置要监测的JAR文件路径
jar_file="/root/apps/ptbd/dev/backend/lib/ptbd-backend.jar"
# 设置日志文件路径
log_file="/root/apps/ptbd/dev/backend/log/monitor.log"
# 记录上次检查的文件大小
previous_file_size=$(stat -c %s "$jar_file")
# 创建日志文件(如果不存在)
touch "$log_file"
# 循环监测
while true; do
# 获取当前文件大小
current_file_size=$(stat -c %s "$jar_file")
# 检查文件大小是否发生改变
if [ "$current_file_size" -ne "$previous_file_size" ]; then
timestamp=$(date +"%Y-%m-%d %H:%M:%S")
echo "$timestamp: Jar文件大小发生改变,执行重启脚本..." >> "$log_file"
/usr/local/sh/restart-gxs-ptbd.sh # 执行重启脚本
# 更新上次检查的文件大小
previous_file_size="$current_file_size"
fi
# 每隔一段时间再次检查
sleep 60 # 60秒,您可以根据需要调整检查频率
done
这个脚本会将每次监测的日志信息追加到monitor.log
文件中,并您可以使用tail -f /root/apps/ptbd/dev/backend/log/monitor.log
来实时监视日志文件以查看监测的结果。
确保您已创建了/usr/local/sh/restart-gxs-ptbd.sh
脚本,并该脚本包含了重启ptbd-backend.jar
的逻辑。
@0XNIAI,您可以编写一个Shell脚本来监测/root/apps/ptbd/dev/backend/lib
目录下的ptbd-backend.jar
文件的大小(字节数),并在大小发生改变时执行/usr/local/sh/restart-gxs-ptbd.sh
脚本。以下是一个示例脚本:
#!/bin/bash
# 设置要监测的JAR文件路径
jar_file="/root/apps/ptbd/dev/backend/lib/ptbd-backend.jar"
# 记录上次检查的文件大小
previous_file_size=$(stat -c %s "$jar_file")
# 循环监测
while true; do
# 获取当前文件大小
current_file_size=$(stat -c %s "$jar_file")
# 检查文件大小是否发生改变
if [ "$current_file_size" -ne "$previous_file_size" ]; then
echo "Jar文件大小发生改变,执行重启脚本..."
/usr/local/sh/restart-gxs-ptbd.sh # 执行重启脚本
# 更新上次检查的文件大小
previous_file_size="$current_file_size"
fi
# 每隔一段时间再次检查
sleep 60 # 60秒,您可以根据需要调整检查频率
done
这个脚本会不断检查ptbd-backend.jar
文件的大小,如果文件大小发生改变,就会执行重启脚本。请将此脚本保存为一个文件,添加可执行权限,并运行它。
类似于前一个脚本,此脚本的检查频率是每60秒一次,您可以根据需要调整这个值。确保您已经创建了/usr/local/sh/restart-gxs-ptbd.sh
脚本,并该脚本包含了重启ptbd-backend.jar
的逻辑。
@0XNIAI,您可以创建一个Shell脚本来监测/root/apps/ptbd/dev/backend/lib
目录下的ptbd-backend.jar
文件的修改日期,并在日期发生改变时执行/usr/local/sh/restart-gxs-ptbd.sh
脚本。以下是一个示例脚本:
#!/bin/bash
# 设置要监测的JAR文件路径
jar_file="/root/apps/ptbd/dev/backend/lib/ptbd-backend.jar"
# 记录上次检查的修改日期
previous_modification_time=$(stat -c %Y "$jar_file")
# 循环监测
while true; do
# 获取当前修改日期
current_modification_time=$(stat -c %Y "$jar_file")
# 检查日期是否发生改变
if [ "$current_modification_time" -ne "$previous_modification_time" ]; then
echo "Jar文件已经发生改变,执行重启脚本..."
/usr/local/sh/restart-gxs-ptbd.sh # 执行重启脚本
# 更新上次检查的修改日期
previous_modification_time="$current_modification_time"
fi
# 每隔一段时间再次检查
sleep 60 # 60秒,您可以根据需要调整检查频率
done
这个脚本会反复检查ptbd-backend.jar
文件的修改日期,如果日期发生改变,就会执行重启脚本。您可以将此脚本保存为一个文件,然后使用chmod +x
来添加可执行权限,之后运行它。
请注意,脚本中的检查频率是每60秒一次,您可以根据需要调整这个值。此外,确保您已经创建了/usr/local/sh/restart-gxs-ptbd.sh
脚本,并该脚本包含了重启ptbd-backend.jar
的逻辑。
@0XNIAI,您可以创建一个名为 restart.sh
的Shell脚本,以按照您描述的步骤执行停止和启动操作,最后监视日志文件。以下是一个示例脚本:
#!/bin/bash
# 停止应用
/root/apps/ptbd/dev/backend/bin/stop.sh
# 等待3秒
sleep 3
# 启动应用
/root/apps/ptbd/dev/backend/bin/start.sh
# 监视日志文件
tail -f /root/apps/ptbd/dev/backend/log/stdout.log
确保在执行脚本前,您已经将脚本文件(restart.sh
)设置为可执行权限,可以使用以下命令完成:
chmod +x restart.sh
然后,您可以运行 ./restart.sh
来执行脚本。这将按照您所描述的顺序执行停止、等待、启动和监视日志文件的操作。