發布我的運維日常腳本,不需要每天登陸服務器了
阿新 • • 發佈:2018-05-30
運維腳本 linux運維腳本 linux運維必看 自動化運維 linux自動化 大家好
出個血本,把畢生功力濃縮進一個運維腳本中
每天定時執行腳本發送郵件到郵箱
配合報警機制,基本不需要登陸服務器就可以了如指掌
出個血本,把畢生功力濃縮進一個運維腳本中
每天定時執行腳本發送郵件到郵箱
配合報警機制,基本不需要登陸服務器就可以了如指掌
好了,廢話不多說,直接貼腳本,裏面@是註解,別急,最後會告訴大家如何刪除
vi xunjian.sh
@指定使用的sh #!/bin/bash @指定變量,yd縮寫yesterday,哈昨天 yd=`date -d "1 day ago" +%Y%m%d` @輸出標題,我這邊寫的是IP echo ‘Subject:11.2.1.1‘ @輸出分隔符,下面很多,為了美觀,最後會貼圖,大家可以看看 echo ‘############################################################################################################‘ @輸出自己能看懂的意思就可以了,推薦英文以及漢語拼音,因為中文偶爾很走雞 echo ‘ip‘ @linux命令,目的查看IP及網卡流量 ifconfig @輸出空行,也是為了美觀,後面一樣 echo ‘‘ echo ‘‘ echo ‘####################################################################################‘ echo ‘crontab‘ @輸出計劃任務,目的萬一有人更改,及時可以發現 crontab -l echo ‘‘ echo ‘‘ echo ‘####################################################################################‘ echo ‘cpu‘ @輸出CPU信息,直接用TOP不行的 top -b -n 1 |head -n 15 echo ‘‘ echo ‘‘ echo ‘####################################################################################‘ echo ‘cpu-top10‘ @CPU占用前十的進程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head echo ‘‘ echo ‘‘ echo ‘####################################################################################‘ echo ‘mem‘ @內存狀態,看看剩余,雖然我也有報警裝置,但每天看看放心 free -m echo ‘‘ echo ‘‘ echo ‘####################################################################################‘ echo ‘mem-top10‘ @內存占用前十進程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head echo ‘‘ echo ‘‘ echo ‘####################################################################################‘ echo ‘fdisk‘ @硬盤狀態,剩余量 df -h echo ‘‘ echo ‘‘ echo ‘################################### ```#########################################################################‘ echo ‘service‘ @目前開啟的都有哪些服務 netstat -tunpl echo ‘‘ echo ‘‘ echo ‘####################################################################################‘ echo ‘time‘ @時間看看,是不是準確,這裏輸出時間是你crontab中設定的時間為準 date echo ‘‘ echo ‘‘ echo ‘####################################################################################‘ echo ‘ping‘ @試試網絡如何,雖然百度也有掛的時候,但總體穩定 ping -c 5 www.baidu.com echo ‘‘ echo ‘‘ echo ‘####################################################################################‘ echo ‘80port‘ @輸出80端口,各狀態的數量,比如wait,正在連接什麽的 netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}‘ echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘ydIPshu‘ @這裏引用最開始的YD變量,查看昨天一天所有訪問日誌中來訪的IP數量,叫PV還是什麽的,其實也不準確,尤其國內都是大局域網 grep -v HEAD /opt/logs/*${yd}.log | awk ‘{print $1}‘ |sort | uniq -c |wc -l echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘message‘ @查看系統日誌,有報錯沒有 tail -n 10 /var/log/messages echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘nginx-error‘ @查看nginx錯誤日誌,一般都是一堆404,大牛黑客搜後臺整的 tail -n 10 /opt/logs/error.log echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘php-error‘ @查看PHP錯誤日誌 tail -n 5 /var/log/php-fpm/error.log echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘inotify-log size‘ @查看同步軟件的日誌文件大小,有設置每天清空,要不太大,裝unsion+inotify來同步上傳目錄,雙機熱備 ls -l /opt/inotify.log echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘inotify-tailf-10‘ @查看同步的情況,從這能看出軟件是否正常運行 tail -n 10 /opt/inotify.log echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘last‘ @查看服務器登錄用戶,最近時間五個,別讓人登錄了都不知道 last -5 echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘log-ip-top10‘ @查看某網站,昨天一天的來訪IP前十,目的是如果某IP數量巨大,你就要查查看是不是攻擊或者什麽的 awk ‘{print $1}‘ /opt/logs/sssss.access.${yd}.log| sort | uniq -c | sort -n -k 1 -r | head -n 10 echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘log-200-top10‘ @查看昨天一天,各狀態碼前十數量,前十足夠了,200 404 403啥的 awk ‘{print $9}‘ /opt/logs/sssss.access.${yd}.log | sort | uniq -c | sort -rn echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘back‘ @查看昨天備份網站成功了嗎,我都是直接tar全備 ls -alh /opt/back/*${yd}* echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘log-back‘ @查看昨天各種日誌的備份 ls -alh /opt/logs/*${yd}* find /opt/logs/*.log -mtime -1 echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘mail‘ @查看mail郵件,系統有什麽報錯,也會向ROOT用戶發郵件,要時時關註 ls -al /var/spool/mail/root echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘mysql-error‘ @查看數據庫錯誤日誌 tail -n 20 /usr/local/mysql/logs/mysqld.log echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘mysql-status‘ @數據庫狀態,我是用來看當前數據庫連接數 mysql -uroot -pmima -e ‘status‘ echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘databases‘ @查看所有數據庫名稱 mysql -uroot -pmima -e ‘show databases‘ echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘mysql-max-connection‘ @查看數據庫啟動到現在最大的連接數峰值,嘿,非常邏輯清楚的解釋 mysql -uroot -pmima -e "show global status like ‘Max_used_connections‘;" echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘mysql-master-slave‘ @我有裝mysql主主雙機,這裏查看雙機同步狀態 mysql -uroot -pmima -e ‘show slave status\G;‘ echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘mysql-slowlog‘ @查看數據庫慢日誌,我設置1S tail -n 20 /usr/local/mysql/logs/mysqlslow.log echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘clamd‘ @查看殺毒軟件今天有沒有查到病毒文件,這軟件怎麽裝,在我之前的博文裏有 cat /opt/clamav/bingdu.log echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘ echo ‘users‘ @查看新增用戶,我之前有用一款國產軟件,服了,一升級就給我新增個用戶,最逗的是空密碼,咋想的開發 tail -n 5 /etc/passwd echo ‘‘ echo ‘‘ echo ‘############################################################################################################‘
好啦,大家也看完了,:wq保存 這些註解肯定不能留啊 炫個技 sed -i ‘/@/d‘ xunjian.sh 執行這個命令,你會發現註解都沒有了 crontab -e 添加定時任務,把我的貼出來大家看看,8點準時發送,一上班就吃著早點看看 10 8 * * * /opt/xunjian/xunjian.sh > /opt/xunjian/xunjian 2>&1;sendmail [email protected] < /opt/xunjian/xunjian 當然,這裏說了,你要先安裝好sendmail,我之前的博文中也有推薦看看 好了,謝謝大家觀看,歡迎下方討論,我叫TAB
發布我的運維日常腳本,不需要每天登陸服務器了