しかし、当然のことながら、システム管理者の通知を使用してポートを監視する優れたスクリプトにつまずいた しかし、上で書いたように、インターネットの安定性により、グローバルネットワーク上の特定のサーバーの可用性を判断する際に多少の不正確さが生じたため、提案されたスクリプトを少し変更して完成させました。
-スクリプトは、ポートへのアクセス不能についての手紙だけでなく、ネットワーク上での外観についても送信し始めました。
-スクリプトはメールに手紙を送信し、時間、スキャン中のエラー数、スキャンの以前のステータスをログに書き込みます。
-スクリプトは、5回接続に失敗した場合、または使用不可になってから5回成功した場合にのみ、メールにメールを送信します。
-インターネットがスクリプトの場所に行った場合、スクリプトは手紙を送信しません
-スクリプトは毎分実行できます
#!/bin/bash CATALOG="/share/Web/" NMAPCAT="/share/MD0_DATA/.qpkg/Optware/bin/" WC="/mnt/ext/usr/bin/" echo "Subject: Monitoring hosts sms" > "$CATALOG"mail echo "From: send_from@mail.ru" >> "$CATALOG"mail echo "To: send_to@mail.ru" >> "$CATALOG"mail echo "CC: copy_to@gmail.com" >> "$CATALOG"mail echo "" >> "$CATALOG"mail for i in 1 2 3 4 5 do for a in $(<"$CATALOG"servers); do "$NMAPCAT"nmap `echo $a | sed -e 's/:/ -p /'` | grep -q "/tcp *open " || echo $a; done >> "$CATALOG"serverlist_n; sleep 5; done "$WC"sort -u "$CATALOG"serverlist_n > "$CATALOG"serverlist if [[ $(cat "$CATALOG"serverlist_n | "$WC"wc -w) -ge 5 ]] then cat "$CATALOG"serverlist >> "$CATALOG"mail echo "" >> "$CATALOG"mail else echo "All OK" >> "$CATALOG"mail echo "" >> "$CATALOG"mail fi if [[ $(cat "$CATALOG"servers | "$WC"wc -w) -eq $(cat "$CATALOG"serverlist | "$WC"wc -w) ]] then cat /dev/null > "$CATALOG"serverlist_n exit 1 fi a=`expr $(cat "$CATALOG"serverlist_n | "$WC"wc -w) % 5` b=`expr $(cat "$CATALOG"serverlist_old | "$WC"wc -w) % 5` if [[ $(cat "$CATALOG"serverlist_old | "$WC"wc -w) -ne $(cat "$CATALOG"serverlist_n | "$WC"wc -w) && $a -eq 0 && $b -eq 0 ]] then cat "$CATALOG"serverlist_n | "$WC"wc -w >> "$CATALOG"mail cat "$CATALOG"serverlist_old | "$WC"wc -w >> "$CATALOG"mail cat "$CATALOG"mail | sendmail -t echo "------------" >> "$CATALOG"log DATENOW=$(date +%d-%m-%Y_%T) echo $DATENOW >> "$CATALOG"log cat "$CATALOG"serverlist >> "$CATALOG"log cat "$CATALOG"serverlist_n | "$WC"wc -w >> "$CATALOG"log cat "$CATALOG"serverlist_old | "$WC"wc -w >> "$CATALOG"log echo "------------" >> "$CATALOG"log fi if [[ $a -eq 0 ]] then cat "$CATALOG"serverlist_n > "$CATALOG"serverlist_old fi cat /dev/null > "$CATALOG"serverlist_n exit fi
CATALOG = "/ share / Web /" -このスクリプトがあるディレクトリを指定します
NMAPCAT = "/ share / MD0_DATA / .qpkg / Optware / bin /" -必要に応じてnmapの場所を指定する
WC = "/ mnt / ext / usr / bin /" -wcアプリケーションへのパス
サーバーファイルの内容は次のとおりです。
192.168.1.1:80 192.168.1.2:25 192.168.1.3:110
ログでエントリを取得します。
------------ 12/29 / 2013_12:42:41 192.168.1.1:80 5 0 ------------ ------------ 12/29 / 2013_12:58:19 192.168.1.1:80 192.168.1.2:25 10 5 ------------
SMSの監視の可能性について追加したいと思います。
主にmail.ruメールを使用して、件名にsmsという単語が含まれている場合、そのようなメッセージにInboxフォルダー内の文字のリストで赤いフラグが付けられ、コピーが38068594xxx2@sms.kyivstarのSMSとして電話に送信されるように、文字を受信するフィルターを構成しました.net。
キエフスター関税(Beeline UA)では、1日に7コペックで150のsmsと50のmmsを毎月受け取ることができます。
監視スクリプトは、ルーター、Linuxを実行する衛星放送受信機、またはNASドライブ上のcronを介して実行できます。 この場合、スクリプトはQNAP TS-419PII NASで実行されています
その結果、無料ですべてのサーバーを毎分監視できます。
余談ですが、「メールからSMS / MMSを受信する」サービスがすでにキエフスターネットワークでアクティブになっている場合、メッセージの件名にmmsという単語でフィルターを作成し、送信者の手数料なしで合計1 MBまでのメッセージを受信することもできます。
これは、1週間にわたって何度もやり直した最初のbashスクリプトです。 建設的な批判とあなたのコメントをお待ちしています。