您好,登錄后才能下訂單哦!
這篇文章主要講解了“linux下如何監控服務器的存活狀態”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“linux下如何監控服務器的存活狀態”吧!
簡單郵件傳輸協議 (Simple Mail Transfer Protocol, SMTP) 是在Internet傳輸email的事實標準, SMTP是一個相對簡單的基于文本的協議。在其之上指定了一條消息的一個或多個接收者,然后消息文本會 被傳輸。SMTP使用TCP端口25。 一、配置環境 [root@ser ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) #查看系統環境 [root@ser ~]# systemctl stop firewalld #停止firewall防火墻服務 [root@ser ~]# systemctl disable firewalld #禁止firewall防火墻服務開機自動啟動功能 [root@ser ~]# firewall-cmd --state not running #查看防火墻運行狀態,確認防火墻被關閉。 vi /etc/selinux/config #SELINUX=enforcing #SELINUXTYPE=targeted SELINUX=disabled :wq! #關閉selinux,保存退出 [root@ser ~]# setenforce 0 #臨時關閉selinux,重啟失效 [root@ser ~]# getenforce Disabled #查看selinux狀態,確認已關閉 二、下載軟件,并安裝相關依賴的perl組件 [root@ser ~]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL #安裝依賴 [root@ser ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz #下載安裝包 [root@ser ~]# tar -zxf sendEmail-v1.560.tar.gz #解壓安裝包 [root@ser ~]# cd sendEmail-v1.56/ [root@ser sendEmail-v1.56]# ls CHANGELOG README README-BR.txt sendEmail sendEmail.pl TODO #進入目錄sendEmail-v1.56/ [root@ser sendEmail-v1.56]# cp sendEmail /usr/local/bin/sendEmail [root@ser sendEmail-v1.56]# chown root:root /usr/local/bin/sendEmail [root@ser sendEmail-v1.56]# ll /usr/local/bin/sendEmail -rwxr-xr-x 1 root root 80183 Jul 31 15:14 /usr/local/bin/sendEmail #將sendEmail復制到執行目錄/usr/local/bin/下,并賦予root用戶權限、屬組權限 三、創建腳本并賦予腳本執行權限 [root@ser ~]# cd [root@ser ~]# pwd /root #返回/root [root@ser ~]# vim mail.sh #!/bin/bash to=$1 subject=$2 body=$3 /usr/local/bin/sendEmail -o tls=auto -f ******@qq.com -t "$to" -s smtp.qq.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu ******@qq.com -xp ****** -m "$body" #腳本中 -f ********@qq.com表示發件人郵箱,-s smtp.qq.com 表示郵件的smtp服務器 #本文中使用騰訊qq郵箱,使用其他郵箱服務器需要修改 # -xu ********@qq.com 表示發件人郵箱的用戶名,-xp ********表示郵件協議授權密鑰 [root@ser ~]# chmod +x mail.sh #執行腳本測試發送郵件 [root@ser ~]# ./mail.sh chao.il@qq.com test 123 test 發件人:**<********@qq.com> 時 間:2019年9月12日(星期四) 下午3:50 (UTC+0:00 倫敦、都柏林、里斯本時間) 收件人:** <********@qq.com> 123 #收到的測試郵件 四、常見問題及處理: 1、當進行郵件測試時,出現invalid SSL_version ******/IO/Socket/SSL.pm line 444這樣的報錯時, 原因是sendEmail軟件和perl里面的SSL版本不兼容導致,通過修改/usr/local/bin/sendEmail文件第 1906行,不指定SSL版本,原始文件為 if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => ‘SSLv3 TLSv1‘)) { 更改后為 if (! IO::Socket::SSL->start_SSL($SERVER)) { 2、當進行郵件測試,出現ERROR => SMTP-AUTH: Authentication to smtp.qq.com:25 failed這樣 的報錯時,原因是郵箱要求使用第三方客戶端發送郵件是必須使用授權碼登錄的,使用帳號密碼驗證時,授 權碼需要登錄郵箱設置中查找,有些郵件服務器需要先開啟POP3服務。 五、編寫shell腳本進行服務器在線狀態監控 [root@ser ~]# vim CheckNetwork.sh #!/bin/bash tt1=172.20.220.20 #定義服務器一 tt2=172.20.11.1 #定義服務器二 while true #while(true)是一個無窮循環語句 #我們必須在他的循環語句內部加入一個判斷,當他達到了什么要求就會跳出 do ping -c 5 $tt1 >/dev/null #用ping命令來探測遠程機是否存活 if [ $? -eq 0 ];then #shell腳本中$?是指上一次命令執行的成功或者失敗的狀態。如果成功就是0,失敗為1。 #語句if [ $? -eq 0 ] 是判斷if語句的上一個命令執行如果失敗就執行if中的語句,否則就執行else中的內容。 echo `date +%F-%T` " $tt1 is yes" >> ip_yes.txt #追加當前時間和服務器IP is yes 到ip_yes.txt,此處ip_yes.txt用做正確日志文件 else echo `date +%F-%T` " $tt1 is Error" >> ip_no.txt #追加當前時間和服務器IP is Error到ip_no.txt,此處ip_no.txt用做錯誤日志文件 /root/mail.sh ********@qq.com 服務器錯誤 `date +%F-%T`----"愛普 $tt1 is Error" /root/mail.sh ********@qq.com 服務器錯誤 `date +%F-%T`----"愛普 $tt1 is Error" /root/mail.sh ********@sunplusapp.com 服務器錯誤 `date +%F-%T`----"愛普 $tt1 is Error" /root/mail.sh ********@sunplusapp.com 服務器錯誤 `date +%F-%T`----"愛普 $tt1 is Error" #發送郵件給以上的郵件地址 sleep 5 #休眠5秒 fi ping -c 5 $tt2 >/dev/null if [ $? -eq 0 ];then echo `date +%F-%T` " $tt2 is yes" >> ip_yes.txt else echo `date +%F-%T` " $tt2 is Error" >> ip_no.txt /root/mail.sh ********@qq.com 服務器錯誤 `date +%F-%T`----"益輝 $tt2 is Error" /root/mail.sh ********@qq.com 服務器錯誤 `date +%F-%T`----"益輝 $tt2 is Error" /root/mail.sh ********@sunplusapp.com 服務器錯誤 `date +%F-%T`----"益輝 $tt2 is Error" /root/mail.sh ********@sunplusapp.com 服務器錯誤 `date +%F-%T`----"益輝 $tt2 is Error" sleep 5 fi kill -9 `ps aux | grep CheckNetwork | grep -v grep | awk '{print $2}'` #執行腳本后,殺死此腳本的進程,防止重復執行腳本。 done [root@ser ~]# crontab -l */15 8-18 * * * /usr/bin/bash /root/CheckNetwork.sh #設置定時任務,8點到18點每15分鐘執行CheckNetwork.sh。(時間請根據需求設定) 下面為報警郵件信息 服務器錯誤 發件人:** <********@qq.com> 時 間:2019年9月12日(星期四) 下午4:45 (UTC+0:00 倫敦、都柏林、里斯本時間) 收件人:** <********@qq.com> 2019-09-12-12:45:19----益輝 172.20.11.1 is Error
感謝各位的閱讀,以上就是“linux下如何監控服務器的存活狀態”的內容了,經過本文的學習后,相信大家對linux下如何監控服務器的存活狀態這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。