저는 현재 i3와 Polybar를 사용하여 Arch를 실행하고 있습니다. 또한 6개의 서버를 유지 관리하므로 생활을 더 쉽게 하기 위해 서버가 다운되면 알려주는 일련의 셸 스크립트를 만들었습니다.
이러한 스크립트는 작동하지만 우아한 솔루션과는 거리가 멀습니다. 현재 각 서버마다 2개의 스크립트가 있습니다. 하나는 상태 표시줄(폴리바)에 쓰고 다른 하나는 로그에 씁니다.
이렇게 하면 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의 오류 로딩 시간이 너무 길어져서 두 개의 별도 셸 스크립트로 분할했습니다.
요청이 실패한 위치를 확인하기 위해 추적 경로를 추가했습니다.
나는 이 문제를 해결하기 위한 더 나은 방법이 있어야 한다는 것을 알았습니다. 총 12개의 쉘 스크립트는 너무 많고 비효율적입니다. 누구든지 이것에 대한 더 나은 해결책을 가지고 있습니까? 쉘 스크립팅이 덜 필요하면서도 효율적인 방식으로 로그인할 수 있는 서비스가 있습니까?