一個網站故障排查的、程式碼更新的簡便指令碼
故障排錯指令碼
由於近來公司的伺服器經常會出點小問題,基於各種原因要去排錯。這裡我用python寫了一個指令碼,主要四呼叫os模組操作。有一個是要統計mysql最大連線數的。因為好像python不支援"show processlist",所以自己寫了一個模組mysqlconn.py。放在/python目錄下。這個模組的作用主要是執行“sh /python/mysqlconn.sh”.這個指令碼。然後指令碼會生成一個叫mysqlconn.txt檔案放到:/python/mysqlconn.txt下面。主要是統計當前連線數。和mysql預設允許的最大連線數。
最後一個要說的就是,我的程式碼更新目錄是:/www/zhs/tool(測試環境)。更新之前上次到:/python目錄,然後用for去統計檔案。先備份到/tmp的目錄下:下面是部分內容效果(程式碼比較簡單,這裡不做說明開始部分的登入賬號是:xiaoluo.密碼是:123456):
wKioL1Q_kdHAzA_TAABmOM6Kbrg023.jpg
wKioL1Q_khOCMg7ZAACXBeIlU58349.jpg
程式碼展示:(複製即可使用)
#!/usr/bin/env python
import os
import fileinput
import mysqlconn
while True:
name=raw_input("please input name:").strip()
if name !="xiaoluo":
print "please try agine:"
continue
password=raw_input("please input your password:").strip()
if password !="123456":
print "please try agine:"
continue
break
while True:
print "1.webserver:[1]"
print "2.mysqlserver:[2]"
print "3.update code:[3]"
choose=raw_input("your server is:")
if choose=="1":
user=os.getlogin()
print user
userlogin=os.system("w | grep 192|wc -l")
userlogin=raw_input('check your free io:[y/n](60)')
if userlogin=="y":
io=os.system("iostat|awk 'NR==4{print $NF}'|cut -f 1 -d .|grep -v ^0$")
# print io
else:
pass
cpu=raw_input("check your free cpu:[y/n]")
if cpu=="y":
cpu_idle=os.system("top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d .")
else:
pass
swap=raw_input("check your free_swap:[y/n]")
if swap=="y":
free_swap=os.system("/usr/bin/free -m|grep Mem|awk '{print $4}'")
else:
pass
web_load=raw_input("check your load:[y/n](18)")
if web_load=="y":
web_load=os.system("uptime|awk '{print $NF}'|cut -f 1 -d .")
else:
pass
user_disk=raw_input("check your uses disk:[y/n]")
if user_disk=="y":
user_load=os.system("df -H|sort -k5nr|grep -vE 'Filesystem|tmpfs|cdrom'|awk '{print $5 " " $1}'")
else:
pass
tcp_connection=raw_input("check your tcp connection:[y/n]" )
if tcp_connection=="y":
tcp_connection=os.system("netstat -nat |grep 80|awk '{print $6}'|sort|uniq -c|sort -rn")
else:
pass
top_ip=raw_input("check yout top ip connection:[y/n]")
if top_ip=="y":
top_ip=os.system("netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20")
else:
pass
if choose=="2":
mysqluser=raw_input("please input mysql user:").strip()
if len(mysqluser)==0:
print "empty mysqluser,try again"
continue
else:
pass
mysqlpassword=raw_input("please input mysql password:").strip()
if len(mysqlpassword)==0:
print "empty mysqluser,try again"
continue
else:
pass
host=raw_input("please input mysql host:").strip()
if len(host)==0:
print "empty mysqluser,try again"
continue
else:
pass
user=os.getlogin()
print user
userlogin=os.system("w | grep 192|wc -l")
userlogin=raw_input(' check your io:[y/n]')
if userlogin=="y":
io=os.system("iostat|awk 'NR==4{print $NF}'|cut -f 1 -d .|grep -v ^0$")
# print io
else:
pass
cpu=raw_input("check your free cpu:[y/n]")
if cpu=="y":
cpu_idle=os.system("top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d .")
else:
pass
swap=raw_input("check your free_swap:[y/n]")
if swap=="y":
free_swap=os.system("/usr/bin/free -m|grep Mem|awk '{print $4}'")
else:
pass
web_load=raw_input("check your load:[y/n]")
if web_load=="y":
web_load=os.system("uptime|awk '{print $NF}'|cut -f 1 -d .")
else:
pass
user_disk=raw_input("check your uses disk:[y/n]")
if user_disk=="y":
user_load=os.system("df -H|sort -k5nr|grep -vE 'Filesystem|tmpfs|cdrom'|awk '{print $5 " " $1}'")
else:
pass
mysql_prolist=raw_input("check your mysql Curren connection:[y/n]")
if mysql_prolist=="y":
f=open("/python/mysqlconn.txt")
u=f.readline()
print u
mysql_MAX_prolist=raw_input("check your mysql max_connection:[y/n] ")
if mysql_MAX_prolist=="y":
f1=open("/python/mysqlconn.txt")
u1=f.readlines()
for line in u1:
print line
if choose=="3":
name=raw_input("please input your well update package:(.tar)").strip()
if len(name)==0:
print "empty mysqluser,try again"
continue
else:
pass
# os.system("cd /python/%s" %(name))
w=os.listdir('/python/%s'%(name))
print w
# for line in w:
backup=os.system("mkdir /tmp/`date +%Y%m%d`")
for line in w:
os.system("cp -r /www/zhs/%s/%s /tmp/%s" %(name,line,backup))
os.system("cp -rf /python/%s/* /www/zhs/%s/" %(name,name))
第二、mysqlconn.py模組程式碼:
#!/usr/bin/env python
#xiaoluo
import os
os.system("sh /python/mysqlconn.sh")
第三、mysqlconn.sh指令碼用來收集資訊。在使用的時候根據自己伺服器的ip地址修改一下就好了:
#!/bin/bash
#xiaoluo
#18878774260
mysql -uroot -p123456 -h 192.168.38.131 -e "show processlist"|grep -v localhost|wc -l > /python/mysqlconn.txt
mysql -uroot -p123456 -h 192.168.38.131 -e "show variables like 'max_connections'"|grep max | awk '{print$2}' >>/python/mysqlconn.txt
©著作權歸作者所有:來自51CTO部落格作者小羅ge11的原創作品,如需轉載,請註明出處,否則將追究法律責任
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2331/viewspace-2820283/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 測試網站頁面網速的一個簡單Python指令碼網站Python指令碼
- mysql便於管理的幾個shell指令碼MySql指令碼
- 最簡單的一個powershell的指令碼指令碼
- 10個免費下載PHP指令碼的網站PHP指令碼網站
- 一個簡單的Gradle指令碼檔案Gradle指令碼
- 10個提供免費PHP指令碼下載的網站PHP指令碼網站
- 一個非常簡單易懂的WIFI密碼爆破python指令碼WiFi密碼Python指令碼
- 14個程式碼展示網站網站
- 三種提高Python程式碼效能的簡便方法Python
- 推薦16個下載超酷指令碼的熱門網站指令碼網站
- 一個簡單的自動備份alert log指令碼指令碼
- GoDaddy被發現其在託管的網站的所有網頁嵌入了一個指令碼Go網站網頁指令碼
- 9個實用的Javascript程式碼高亮指令碼JavaScript指令碼
- 簡單易懂的XSS(跨站指令碼攻擊)指令碼
- 記 Arthas 實現一次 CPU 排查與程式碼熱更新
- 一個簡單的Linux啟動jar包的shell指令碼LinuxJAR指令碼
- 一個awk if 巢狀 if 的指令碼巢狀指令碼
- mysql的一個備份指令碼MySql指令碼
- 故障排查工具-strace,tcpdump的簡單使用TCP
- 使用Shell指令碼程式監控網站URL是否正常指令碼網站
- 分享一個刷網頁PV的python小指令碼網頁Python指令碼
- 寫一個簡單的程式碼生成器
- RAC故障診斷指令碼指令碼
- 分享一下禁用 ESLint 的簡便方法,順便嘮叨一下程式碼規範的現狀與將來EsLint
- 我想做一個指令碼更新一些excel表/細胞。指令碼Excel
- 快速搭建主從的指令碼和問題排查指令碼
- 幾個有趣的線上python 程式碼學習網站Python學習網站
- 13個超棒的程式碼資源網站推薦網站
- 高階Bash指令碼程式設計指南 一個對指令碼程式設計技術的深入探討指令碼程式設計
- 一個清理指令碼的改進思路指令碼
- 一個比較好的shell指令碼指令碼
- 一個自動ftp的指令碼(轉)FTP指令碼
- 記錄一個防止DDL的指令碼指令碼
- 不錯的IT書籍下載網站 - 指令碼之家網站指令碼
- SQL Server 簡單備份指令碼程式碼SQLServer指令碼
- 【Flutter】如何寫一個Flutter自動打包成iOS程式碼模組的指令碼FlutteriOS指令碼
- 【SQL】【遷移】寫了一個簡單的sequence遷移指令碼SQL指令碼
- 手寫指令碼程式碼太累!搞一個生成工具吧指令碼