python監控伺服器
① 用 python 可以來做什麼
Web 和 Internet開發;科學計算和統計;人工智慧;桌面界面開發;軟體開發;後端開發;網路介面:能方便進行系統維護和管理,linux下標志性語言之一,是很多系統管理員理想的編程工具。
Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。
Python標准庫的主要功能有:
1、文本處理,包含文本格式化、正則表達式匹配、文本差異計算與合並、Unicode支持,二進制數據處理等功能
2、文件處理,包含文件操作、創建臨時文件、文件壓縮與歸檔、操作配置文件等功能
3、操作系統功能,包含線程與進程支持、IO復用、日期與時間處理、調用系統函數、寫日記(logging)等功能
4、網路通信,包含網路套接字,SSL加密通信、非同步網路通信等功能
5、網路協議,支持HTTP,ftp,SMTP,POP,IMAP,NNTP,XMLRPC等多種網路協議,並提供了編寫網路伺服器的框架
6、W3C格式支持,包含HTML,SGML,XML的處理
7、其它功能,包括國際化支持、數學運算、HASH、Tkinter等
② 我的的python語言腳本監控的伺服器日誌,日誌出現錯誤的時候根據錯誤關鍵字進行語音告警。可是最近出現
應該是split後生成的列表的原始超過2個了。看下面的簡單的例子就知道了。
其實應該看一下生成後的長度,做個保護,否則像你這種賦值,只要列表長度不為2,都會異常。
>>> x=[1,2,3]
>>> a,b=x
Traceback (most recent call last):
File "<interactive input>", line 1, in <mole>
ValueError: too many values to unpack
③ python如何獲取伺服器硬體狀態信息,包括CPU溫度、硬碟溫度、主板電池電壓、主機電源電壓、CPU風扇轉速
>>> import psutil
>>> psutil.cpu_times()
scputimes(user=3961.46, nice=169.729, system=2150.659, idle=16900.540, iowait=629.59, irq=0.0, softirq=19.42, steal=0.0, guest=0, nice=0.0)
>>>
>>> for x in range(3):
... psutil.cpu_percent(interval=1)
...
4.0
5.9
3.8
>>>
>>> for x in range(3):
... psutil.cpu_percent(interval=1, percpu=True)
...
[4.0, 6.9, 3.7, 9.2]
[7.0, 8.5, 2.4, 2.1]
[1.2, 9.0, 9.9, 7.2]
>>>
>>>
>>> for x in range(3):
... psutil.cpu_times_percent(interval=1, percpu=False)
...
scputimes(user=1.5, nice=0.0, system=0.5, idle=96.5, iowait=1.5, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
scputimes(user=1.0, nice=0.0, system=0.0, idle=99.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
scputimes(user=2.0, nice=0.0, system=0.0, idle=98.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
>>>
>>> psutil.cpu_count()
4
>>> psutil.cpu_count(logical=False)
2
>>>
④ python ftplib監控文件修改時間
用python的ftplib,示例代碼如下,返回目錄內容的詳細信息,自己做下相應的處理就可以了
fromftplibimportFTP
ftp=FTP()
timeout=30
port=21
ftp.connect('192.168.85.1',port,timeout)#連接FTP伺服器
ftp.login('test','test')#登錄
printftp.getwelcome()#獲得歡迎信息
ftp.cwd('test')#設置FTP路徑
printftp.retrlines('LIST')#列出目錄內容
⑤ 7種檢測Python程序運行時間、CPU和內存佔用的方法
1. 使用裝飾器來衡量函數執行時間
有一個簡單方法,那就是定義一個裝飾器來測量函數的執行時間,並輸出結果:
import time
from functoolsimport wraps
import random
def fn_timer(function):
@wraps(function)
def function_timer(*args, **kwargs):
t0= time.time()
result= function(*args, **kwargs)
t1= time.time()
print("Total time running %s: %s seconds" %
(function.__name__, str(t1- t0))
)
return result
return function_timer
@fn_timer
def random_sort(n):
return sorted([random.random() for i in range(n)])
if __name__== "__main__":
random_sort(2000000)
輸出:Total time running random_sort: 0.6598007678985596 seconds
使用方式的話,就是在要監控的函數定義上面加上 @fn_timer 就行了
或者
# 可監控程序運行時間
import time
import random
def clock(func):
def wrapper(*args, **kwargs):
start_time= time.time()
result= func(*args, **kwargs)
end_time= time.time()
print("共耗時: %s秒" % round(end_time- start_time, 5))
return result
return wrapper
@clock
def random_sort(n):
return sorted([random.random() for i in range(n)])
if __name__== "__main__":
random_sort(2000000)
輸出結果:共耗時: 0.65634秒
2. 使用timeit模塊
另一種方法是使用timeit模塊,用來計算平均時間消耗。
執行下面的腳本可以運行該模塊。
這里的timing_functions是Python腳本文件名稱。
在輸出的末尾,可以看到以下結果:4 loops, best of 5: 2.08 sec per loop
這表示測試了4次,平均每次測試重復5次,最好的測試結果是2.08秒。
如果不指定測試或重復次數,默認值為10次測試,每次重復5次。
3. 使用Unix系統中的time命令
然而,裝飾器和timeit都是基於Python的。在外部環境測試Python時,unix time實用工具就非常有用。
運行time實用工具:
輸出結果為:
Total time running random_sort: 1.3931210041 seconds
real 1.49
user 1.40
sys 0.08
第一行來自預定義的裝飾器,其他三行為:
real表示的是執行腳本的總時間
user表示的是執行腳本消耗的CPU時間。
sys表示的是執行內核函數消耗的時間。
注意:根據維基網路的定義,內核是一個計算機程序,用來管理軟體的輸入輸出,並將其翻譯成CPU和其他計算機中的電子設備能夠執行的數據處理指令。
因此,Real執行時間和User+Sys執行時間的差就是消耗在輸入/輸出和系統執行其他任務時消耗的時間。
4. 使用cProfile模塊
5. 使用line_profiler模塊
6. 使用memory_profiler模塊
7. 使用guppy包
⑥ python 監控一個文件夾
笨辦法是在循環中不斷讀取目錄以及目錄中文件的最後修改時間,如果有變更,則說說文件被修改。
這種辦法需要不斷的循環讀取文件信息,這對cpu佔用較高,同時也會產生一定的磁碟IO,短時間小范圍使用尚可,如果長時間運行在伺服器上,或者監控一個包含很多文件的目錄則不可取。
辦法之二是利用操作系統提供的功能來實現。
比如在Windows中,可以利用Windows API【ReadDirectoryChangesW】來實現。這可以免去大量的磁碟IO。因為文件修改的頻率一般不高,可以使用定計時器進行循環,對cup的佔用也會少很多。
⑦ 使用python,在linux上監控遠程windows的CPU、硬碟、內存使用率
你需要安裝wmic,它實現了linux下能使用wmi,安裝以後就可以用了,下面是例子。
import wmi_client_wrapper as wmi
wmic = wmi.WmiClientWrapper(
username="Administrator",
password="password",
host="192.168.1.149",
)
output = wmic.query("SELECT * FROM Win32_Processor")
⑧ python主要可以做什麼
現在互聯網發展迅速,眾多行業巨頭,都已經轉投到人工智慧領域,而人工智慧的首選編程語言就是python,所以學好Python能夠從事的工作還是很多的,而且前景非常不錯。
學完python可以應用於以下領域:
①Web 和 Internet開發
②科學計算和統計
③人工智慧
④桌面界面開發
⑤軟體開發
⑥後端開發
⑦網路爬蟲
可以從事的崗位也很多,比如Python爬蟲工程師,大數據工程師等等!
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望採納。