我目前正在使用 i3 和 Polybar 运行 Arch。我还维护 6 台服务器,因此为了让我的生活更轻松,我制作了一系列 shell 脚本来通知我服务器是否关闭。
这些脚本可以工作,但它远非一个优雅的解决方案。目前,我为每个服务器有 2 个脚本。一种写入状态栏 (polybar),另一种写入日志。
这将写入 Polybar:
#!/bin/bash
srv=`ping 000.000.000.000 -c 1 -W 1 \
| sed '2q;d' \
| awk 'NF>1{print $NF}'`
fail=`date '+%a %H:%M:%S'`
if [[ $srv == ms ]]; then
:
else
echo " 000.000.000.000 | $fail "
fi
这将写入日志文件:
#!/bin/bash
srv=`ping 000.000.000.000 -c 1 -W 1 \
| sed '2q;d' \
| awk 'NF>1{print $NF}'`
fail=`date '+%a %F %H:%M:%S'`
log1=`ping 000.000.000.000 -c 1 -W 1`
log2=`traceroute 000.000.000.000`
if [[ $srv == ms ]]; then
:
else
echo "<---------------------------------------------->
000.000.000.000 | $fail
----------------------------------------------
$log1
----------------------------------------------
$log2
<---------------------------------------------->
" >> ~/.log/ping.log
fi
这两个脚本都作为模块添加到我的 Polybar 配置中。
我尝试将这两个脚本合并为一个,但这会使 Polybar 中显示错误的加载时间太长,因此我将它们分成两个单独的 shell 脚本。
我添加了跟踪路由以查看请求失败的位置。
我知道必须有更好的方法来解决这个问题。总共 12 个 shell 脚本太多了,而且效率很低。有人对此有更好的解决方案吗?需要较少 shell 脚本并且仍能以高效方式登录的一种?