今天我意识到,我的服务器没有像它每晚应该做的那样发送日志检查邮件。我用 ssh 登录到我的盒子,我输入的第一个命令返回了no disk space left
。我的主机管理面板(Virtuozzo 电源面板)显示了类似的警告,使用率为 99%。这很奇怪,因为这个盒子很新(6 周),磁盘使用率应该是 2%(就像前一天日志检查邮件中说的那样)。du -sh
我试图用它找到大文件,但什么也没找到。没有文件,没有大文件夹。
在阅读了有关错误的会话处理导致磁盘在特定 php 群集中填满的案例后,我决定一个接一个地关闭我的所有 Web 应用程序(我的服务器上未安装 php)。我首先猜测是我的 Jenkins 服务器,就在我停止服务后,我的管理工具2% disk usage
再次显示。所以我找到了错误,但我不知道是什么原因造成的。Jenkins 是我 6 周前安装的第一件东西,到目前为止从未出现过问题。我没有看到任何对 Jenkins 的可疑访问,每隔一天我的日志中就会出现一些机器人登录失败的情况,但我认为这并不罕见。我无法在 Google 上搜索这种行为,并且(当然)对此有点担心。我可以/应该做什么来防止它发生?
请注意,我的 Jenkins 服务器当前有一个 checkin-build 和一个 nightly build,它们都是小型 Java-EE 应用程序。
答案1
要检查可用空间詹金斯作业:
参数
FREE_SPACE
:需要自由空间英国。
工作
#!/usr/bin/env bash
free_space="$(df -Ph . | awk 'NR==2 {print $4}')"
if [[ "${free_space}" = *G* ]]; then
free_space_gb=${x/[^0-9]*/}
if [[ ${free_space_gb} -lt ${FREE_SPACE} ]]; then
echo "Warning! Low space: ${free_space}"
exit 2
fi
else
echo "Warning! Unknown: ${free_space}"
exit 1
fi
echo "Free space: ${free_space}"
插件
设置构建描述
构建后操作
- 正则表达式:
Free space: (.*)
描述:
Free space: \1
构建失败的正则表达式:
Warning! (.*)
- 构建失败的描述:
\1