服务器脚本检测Java程序状态
需求:测试服务器上面有些Java服务会由于某些经常挂掉,我们需要写一个脚本,来检测Java程序的运行状态,如果出现了挂掉的程序,那么肯定就要想办法让他重启。
ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
查找指定进程格式:
ps -ef | grep 进程关键字
大约 2 分钟
需求:测试服务器上面有些Java服务会由于某些经常挂掉,我们需要写一个脚本,来检测Java程序的运行状态,如果出现了挂掉的程序,那么肯定就要想办法让他重启。
ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
查找指定进程格式:
ps -ef | grep 进程关键字
常用命令:
查找字符串,例如搜索user:/user
,此时关键字被高亮,按n可以找下一个匹配,N为上一个
用法 | 键位 |
---|---|
移到单词开头 | b |
移到单词结尾 | e |
撤回 | u |
取消撤回 | control+r |
删除一行 | dd |
向后删一个单词 | de |
不退出vim执行shell | :shell ,然后exit返回vim |
搜索,例如user | /user ,然后n往下找,N往上 |
取消搜索高亮 | :noh |
移动到行尾 | ^ 也就是shift+6 |
移动到行首 | $ ,也就是shift+4 |
删除到结尾 | d$ |
替换一个字母 | r |
跳到某一行 | :n(n是具体的行数) |
shell脚本clear_nohup.sh
#!/bin/bash
# 清空/opt/server/目录下每个子目录中的nohup.out文件
# 定义基础目录路径
base_dir="/opt/server/"
# 获取基础目录下的所有子目录列表
sub_dirs=($(find "$base_dir" -maxdepth 1 -mindepth 1 -type d))
# 遍历每个子目录
for dir in "${sub_dirs[@]}"; do
# 构造当前子目录中nohup.out文件的路径
nohup_out="$dir/nohup.out"
# 检查当前子目录是否存在nohup.out文件
if [ -f "$nohup_out" ]; then
echo "清空 $nohup_out"
# 使用cat和/dev/null清空nohup.out文件的内容
cat /dev/null > "$nohup_out"
echo "$nohup_out 已清空"
else
echo "$dir 中未找到 nohup.out 文件"
fi
done