linux監控磁碟
『壹』 如何使用PHP實時監控linux伺服器的cpu,內存,硬碟信息
1,Linux下可以在/proc/cpuinfo中看到每個cpu的詳細信息。但是對於雙核的cpu,在cpuinfo中會看到兩個cpu。常常會讓人誤以為是兩個單核的cpu。
其實應該通過Physical Processor ID來區分單核和雙核。而Physical Processor ID可以從cpuinfo或者dmesg中找到. flags 如果有 ht 說明支持超線程技術 判斷物理CPU的個數可以查看physical id 的值,相同則為同一個物理CPU
2,查看內存大小:
cat /proc/meminfo |grep MemTotal
3,其他一些可以查看詳細linux系統信息的命令和方法:
uname -a # 查看內核/操作系統/CPU信息的linux系統信息命令
head -n 1 /etc/issue # 查看操作系統版本,是數字1不是字母L
cat /proc/cpuinfo # 查看CPU信息的linux系統信息命令
hostname # 查看計算機名的linux系統信息命令
lspci -tv # 列出所有PCI設備
lsusb -tv # 列出所有USB設備的linux系統信息命令
lsmod # 列出載入的內核模塊
env # 查看環境變數資源
free -m # 查看內存使用量和交換區使用量
df -h # 查看各分區使用情況
-sh # 查看指定目錄的大小
grep MemTotal /proc/meminfo # 查看內存總量
grep MemFree /proc/meminfo # 查看空閑內存量
uptime # 查看系統運行時間、用戶數、負載
cat /proc/loadavg # 查看系統負載磁碟和分區
mount | column -t # 查看掛接的分區狀態
fdisk -l # 查看所有分區
swapon -s # 查看所有交換分區
hdparm -i /dev/hda # 查看磁碟參數(僅適用於IDE設備)
dmesg | grep IDE # 查看啟動時IDE設備檢測狀況網路
ifconfig # 查看所有網路介面的屬性
iptables -L # 查看防火牆設置
route -n # 查看路由表
netstat -lntp # 查看所有監聽埠
netstat -antp # 查看所有已經建立的連接
netstat -s # 查看網路統計信息進程
ps -ef # 查看所有進程
top # 實時顯示進程狀態用戶
w # 查看活動用戶
id # 查看指定用戶信息
last # 查看用戶登錄日誌
cut -d: -f1 /etc/passwd # 查看系統所有用戶
cut -d: -f1 /etc/group # 查看系統所有組
crontab -l # 查看當前用戶的計劃任務服務
chkconfig –list # 列出所有系統服務
chkconfig –list | grep on # 列出所有啟動的系統服務程序
rpm -qa # 查看所有安裝的軟體包
cat /proc/cpuinfo :查看CPU相關參數的linux系統命令
cat /proc/partitions :查看linux硬碟和分區信息的系統信息命令
cat /proc/meminfo :查看linux系統內存信息的linux系統命令
cat /proc/version :查看版本,類似uname -r
cat /proc/ioports :查看設備io埠
cat /proc/interrupts :查看中斷
cat /proc/pci :查看pci設備的信息
cat /proc/swaps :查看所有swap分區的信息
『貳』 Linux緋葷粺鎬ц兘鐩戞帶宸ュ叿tsar涔嬩嬌鐢ㄤ綘鐭ラ亾澶氬皯錛
娣卞叆鎺㈢儲Linux緋葷粺鎬ц兘鐩戞帶鍒╁櫒錛歵sar鐨勫疄鎴樺簲鐢鍦↙inux涓栫晫涓錛岀郴緇熺洃鎺х姽濡備竴鎶婂弻鍒冨墤錛屾棦鍙浠ュ府鍔╂垜浠鍙戠幇鎬ц兘鐡墮堬紝鍙堝彲鑳借╀漢鐪艱姳緙涔便傞潰瀵逛紬澶氬伐鍏鳳紝濡備綍楂樻晥鍒╃敤瀹冧滑錛屾壘鍑篊PU銆佸唴瀛樸佺佺洏鍜岀綉緇滅殑闅愮橀棶棰橈紝鏄涓涓鍊煎緱娣卞叆鎺㈣ㄧ殑璇濋樸傛湰鏂囧皢甯︿綘棰嗙暐涓縐嶅疄鐢ㄤ笖鐩磋傜殑鐩戞帶宸ュ叿鈥斺攖sar錛屽畠濡備綍鍔╁姏鎴戜滑鏇村揩鍦板畾浣嶉棶棰樸
緋葷粺璧勬簮鐨勫井瑙傝嗗浘
鍦ㄤ紬澶氭ц兘鍒嗘瀽宸ュ叿涓錛孊rendan Gregg鐨勭郴緇熷垎鏋愬浘鍫縐扮粡鍏革紝瀹冪姽濡備竴涓緋葷粺鐨勫叏鏅鍥撅紝娓呮櫚鍦板睍紺轟簡搴旂敤紼嬪簭銆佺郴緇熻皟鐢ㄣ佸唴鏍搞佸崗璁鏍堝拰紜浠墮棿鐨勪氦浜掑叧緋匯傞氳繃鍏舵帹鑽愮殑鍛戒護緇勫悎錛屼綘鍙浠ヨ繘琛岀粏鑷村叆寰鐨勭郴緇熺洃鎺с佸垎鏋愬拰闂棰樺畾浣嶃
tsar鐨勯瓍鍔涗笌瀹炴垬
浣滀負闃塊噷宸村反鍐呴儴寮鍙戠殑涓嬈劇炲櫒錛宼sar浠ュ叾寮哄ぇ鐨勫姛鑳藉拰鐏墊椿鎬ц劚棰栬屽嚭銆傚畠涓嶄粎鑳藉熷疄鏃墮噰闆嗘湇鍔″櫒鐨勭郴緇熶俊鎮錛屽侰PU銆両O銆佸唴瀛樺拰TCP錛岃繕鑳界洃鎺у簲鐢ㄧ▼搴忕殑榪愯岀姸鎬侊紝濡係quid銆丠AProxy鍜孨ginx銆倀sar鐨勭嫭鐗逛箣澶勫湪浜庡畠灝嗘暟鎹瀛樺偍鍦ㄧ佺洏錛屾敮鎸佸巻鍙叉煡璇錛岃緭鍑烘柟寮忓氭牱錛岃繕鑳藉皢鏁版嵁鏁村悎鍒癕ySQL涓鎴栬呭彂閫佽︽姤鍒皀agios鏈嶅姟鍣ㄣ倀sar鐨勫己澶ц繕鍦ㄤ簬瀹冪殑妯″潡鍖栬捐★紝鍙浠ョ伒媧婚夋嫨妯″潡錛屽疄鏃剁洃鎺у苟鍚堝苟杈撳嚭銆
瀹夎呬笌閰嶇疆瀹炴垬
鎯寵佷嬌鐢╰sar錛岄栧厛闇瑕佸湪緋葷粺涓婂畨瑁呫傞氳繃鍛戒護琛岋紝浣犲彲浠ヨ交鏉懼畬鎴愬畨瑁呰繃紼嬶細
$ wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate
$ unzip tsar.zip
$ cd tsar
$ make # make install
鐒跺悗錛屾垜浠閰嶇疆瀹氭椂浠誨姟錛岀『淇濇瘡鍒嗛挓閫氳繃crond鑷鍔ㄩ噰闆嗘暟鎹錛
MAILTO="" * * * * * root /usr/bin/tsar --cron > /dev/null 2>&1
鍚屾椂錛屼負浜嗙$悊鏃ュ織鏂囦歡錛屾棩蹇楄疆杞閰嶇疆涔熷緢鍏抽敭錛
$ cat /etc/logrotate.d/tsar
/var/log/tsar.data {
monthly rotate 120
create
nocompress
nodateext
notifempty
prerotate
/usr/bin/chattr -a /var/log/tsar.data
endscript
postrotate
/usr/bin/chattr +a /var/log/tsar.data
endscript
}
榪欎簺璁劇疆紜淇濅簡tsar鐨勬棩蹇楁枃浠舵湁搴忚疆杞錛屾暟鎹瀛樺偍鍦ㄦ寚瀹氳礬寰勩
鎬葷粨
tsar浣滀負Linux緋葷粺鎬ц兘鐩戞帶鐨勫緱鍔涘姪鎵嬶紝鍏跺己澶у姛鑳姐佺伒媧婚厤緗浠ュ強鏄撲簬綆$悊鐨勭壒鐐逛嬌鍏跺湪浼楀氬伐鍏蜂腑鑴遍栬屽嚭銆傞氳繃浜嗚В騫舵帉鎻″叾瀹夎呫侀厤緗鍜屼嬌鐢ㄦ柟娉曪紝浣犲皢鑳藉熸洿楂樻晥鍦板彂鐜板拰瑙e喅緋葷粺鎬ц兘闂棰橈紝鎻愬崌緋葷粺鐨勭ǔ瀹氭у拰鏁堢巼銆傜珛鍗沖紑濮嬩綘鐨則sar涔嬫棶錛岃╀綘鐨凩inux榪愮淮鏇村姞寰楀績搴旀墜鍚э紒
『叄』 請問監控Linux伺服器磁碟容量的腳本怎麼寫
看看下面這個腳本(注意要用英文的標點符號):
#!/bin/bash
partion_list=( 'df -h | awk 『NF>3&&NR>1{sub(/%/,」」,$(NF-1));print $NF,$(NF-1)}』' )
critical=90
notification_email()
{
emailuser='[email protected]' 「發送郵件地址」
emailpasswd='password' 「成功開啟POP3/SMTP服務,在第三方客戶端登錄時,密碼框請輸入的授權碼」
emailsmtp='smtp.qq.com'
sendto='[email protected]' 「接收郵箱地址」
title='Disk Space Alarm' 「郵件標題」
/usr/local/bin/sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd -m $emailmessage
}
crit_info=」」
for (( i=0;i<${#partition_list[@]};i+=2 ))
do
if [ 「${partition_list[ ((i+1)) ]}」 -lt 「$critical」 ];then
echo 「ok! ${partition_list[i]} used ${partition_list[ ((i+1)) ]}%」
else
if [ 「${partition_list[ ((i+1)) ]}」 -gt 「$critical」 ];then
crit_info=$crit_info」Warning!!! ${partition_list[i]}
used ${partition_list[ ((i+1) ] }%\n」
fi
fi
done
if [ 「$crit_info」 != 」」 ];then
echo -e $crit_info | notification_email
fi
上面腳本的功能是監控每個磁碟分區,當磁碟分區使用空間超過90%時,就通過sendEmail來發送郵件告警。sendEmail是個開源工具,可以從http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz下載;
解壓後把sendEmail拷貝到/usr/local/bin下即可。
『肆』 Linux鐨勭佺洏鐩戞帶鍛戒護鏈夈1銆戙併2銆戙併3銆戙併4銆戙
(1)
iostat (2)
iotop (3)
df (4)
dstat