좋아요, 데비안에서 실행 중인 프로그램을 모니터링하고 싶습니다. 예를 들어, 내 인스턴스에서 여러 프로그램이 실행 중이고 출력을 얻고 netstat -plnt
프로그램과 해당 포트가 무엇인지 확인할 수 있습니다. 예:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 65/sshd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 656/mysqld
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 631/redis-server
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1023/nginx
새 프로그램이 실행될 때 이메일/슬랙 알림을 받고 싶습니다. 누군가 이 작업을 수행할 수 있는 유틸리티나 프로그램을 알고 있을까요?
답변1
#! /bin/bash
while :; do
running=$(netstat -plnt)
if [ "$running" != "$newrunning" -a -n "$firstrun" ]; then
diff -u <(echo "$newrunning") <(echo "$running") | mail -s "New listeners!" [email protected]
fi
newrunning=$(netstat -plnt)
firstrun=1
sleep 1
done
이 스크립트(분명히 루트에서 실행해야 함)는 수신 포트를 여는 새 응용 프로그램/제거된 응용 프로그램에 대해 알려줍니다.
답변2
이를 통해 응용 프로그램 목록을 설정할 수 있습니다
cronjob에 추가 가능
#!/bin/bash
known_apps="sshd|nginx|mysqld|redis"
netstat=$(netstat -plnt | awk 'FNR > 2' | egrep -v "$known_apps")
if [[ $? -eq 0 ]]; then
echo "other apps, running"
send mail command including $netstat
fi
cronjob을 원하지 않으면 다음을 if
사용하십시오 .while
while true;
do
echo "other apps, running"
sendmail command include $netstat
sleep 2 (or how often you want this loop to run )
done
새로운 애플리케이션에 대해서만 알려줍니다.