1. 程式人生 > >發布我的運維日常腳本,不需要每天登陸服務器了

發布我的運維日常腳本,不需要每天登陸服務器了

運維腳本 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

發布我的運維日常腳本,不需要每天登陸服務器了