導航:首頁 > 編程系統 > linux監控腳本

linux監控腳本

發布時間:2023-07-28 10:06:39

A. 幾個常用的linux監控腳本

幾個常用的Linux監控腳本
下面是幾個主機監控的腳本,大家可以根據自己的情況再進行修改,希望能給大家一點幫助。
1、查看主機網卡流量
#!/bin/bash
#network
#Mike.Xu
while : ; do
time='date +%m"-"%d" "%k":"%M'
day='date +%m"-"%d'
rx_before='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-'
tx_before='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-'
sleep 2
rx_after='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-'
tx_after='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-'
rx_result=$[(rx_after-rx_before)/256]
tx_result=$[(tx_after-tx_before)/256]
echo "$time Now_In_Speed: "$rx_result"kbps Now_OUt_Speed: "$tx_result"kbps"
sleep 2
done

2、系統狀況監控
#!/bin/sh
#systemstat.sh
#Mike.Xu
IP=192.168.1.227
top -n 2| grep "Cpu" >>./temp/cpu.txt
free -m | grep "Mem" >> ./temp/mem.txt
df -k | grep "sda1" >> ./temp/drive_sda1.txt
#df -k | grep sda2 >> ./temp/drive_sda2.txt
df -k | grep "/mnt/storage_0" >> ./temp/mnt_storage_0.txt
df -k | grep "/mnt/storage_pic" >> ./temp/mnt_storage_pic.txt
time=`date +%m"."%d" "%k":"%M`
connect=`netstat -na | grep "219.238.148.30:80" | wc -l`
echo "$time $connect" >> ./temp/connect_count.txt

3、監控主機的磁碟空間,當使用空間超過90%就通過發mail來發警告
#!/bin/bash
#monitor available disk space
SPACE='df | sed -n '/ \ / $ / p' | gawk '{print $5}' | sed 's/%//'
if [ $SPACE -ge 90 ]
then
[email protected]
fi

4、 監控CPU和內存的使用情況
#!/bin/bash
#script to capture system statistics
OUTFILE=/home/xu/capstats.csv
DATE='date +%m/%d/%Y'
TIME='date +%k:%m:%s'
TIMEOUT='uptime'
VMOUT='vmstat 1 2'
USERS='echo $TIMEOUT | gawk '{print $4}' '
LOAD='echo $TIMEOUT | gawk '{print $9}' | sed "s/,//' '
FREE='echo $VMOUT | sed -n '/[0-9]/p' | sed -n '2p' | gawk '{print $4} ' '
IDLE='echo $VMOUT | sed -n '/[0-9]/p' | sed -n '2p' |gawk '{print $15}' '
echo "$DATE,$TIME,$USERS,$LOAD,$FREE,$IDLE" >> $OUTFILE

5、全方位監控主機
#!/bin/bash
# check_xu.sh
# 0 * * * * /home/check_xu.sh

DAT="`date +%Y%m%d`"
HOUR="`date +%H`"
DIR="/home/oslog/host_${DAT}/${HOUR}"
DELAY=60
COUNT=60
# whether the responsible directory exist
if ! test -d ${DIR}
then
/bin/mkdir -p ${DIR}
fi
# general check
export TERM=linux
/usr/bin/top -b -d ${DELAY} -n ${COUNT} > ${DIR}/top_${DAT}.log 2>&1 &
# cpu check
/usr/bin/sar -u ${DELAY} ${COUNT} > ${DIR}/cpu_${DAT}.log 2>&1 &
#/usr/bin/mpstat -P 0 ${DELAY} ${COUNT} > ${DIR}/cpu_0_${DAT}.log 2>&1 &
#/usr/bin/mpstat -P 1 ${DELAY} ${COUNT} > ${DIR}/cpu_1_${DAT}.log 2>&1 &
# memory check
/usr/bin/vmstat ${DELAY} ${COUNT} > ${DIR}/vmstat_${DAT}.log 2>&1 &
# I/O check
/usr/bin/iostat ${DELAY} ${COUNT} > ${DIR}/iostat_${DAT}.log 2>&1 &
# network check
/usr/bin/sar -n DEV ${DELAY} ${COUNT} > ${DIR}/net_${DAT}.log 2>&1 &
#/usr/bin/sar -n EDEV ${DELAY} ${COUNT} > ${DIR}/net_edev_${DAT}.log 2>&1 &

放在crontab里每小時自動執行:

B. linux 進程監控和自動重啟腳本

ps -fe|grep X if [ $? -eq 0 ] then service restart X fi 然後把這段腳本放到crontab裡面,每分鍾執行一次就可以了

C. 利用Linux系統Shell命令編寫腳本實現對用戶行為的監控和審計功能. 求大神怎麼寫啊

.bash_history記錄了你的一切,呵呵呵。
首先,執行下面命令給.bash_history文件加上只能追加的形式進行記錄
chattr +a /home/peter/.bash_history
lsattr /home/peter/.bash_history
然後,執行下面指令,修改bash以追加的方式忘給.bash_history文件中寫入內容
shopt -s histappend
最後,調用下面指令使操作命令實時寫入到.bash_history 文件中
PROMPT_COMMAND =" history -a;$PROMPT_COMMAND "
當然還要活用這幾個命令:ac, who, last, lastlog, w, sa, lastcomm等。

D. linux上使用shelle腳本如何實時監控文件屬性時間更新後,執行另外shell腳本

想必你已抄經在chinaunix上找到答案了吧。
a=`stat -c %Y filename`;b=`date +%s`;if [ $[ $b - $a ] -gt 180 ];then command;else othercommand;fi就挺好的
但是你要注意在crontab中執行的時候需要加source一下環境變數,不然有些命令會找不到路徑。
如:
0-59 * * * * . /etc/profile;a=`stat -c %Y filename`;b=`date +%s`;if [ $[ $b - $a ] -gt 180 ];then command;else othercommand;fi
. /etc/profile可以換成你用戶目錄下的配置文件.
C shell的為 .cshrc 在用戶主目錄下
bashell的為 .bashrc 在用戶主目錄下
kshell的為.profile 在用戶主目錄下

E. 求一個linux將監控網卡出入流量的shell腳本,每隔設定的時間輸出到文本或其他地方存儲

這個不會有人幫你寫出個完整的shell。因為每台機器的操作系統都不一定吻合,不過我可以給你個自己做的參考:
1,啟動你伺服器的snmp伺服器,編輯/etc/snmp/snmpd.conf
修改裡面的 com2sec notConfigUser default <你的community名字>, 有困惑,可以在網上搜索snmp服務配置。然後/etc/init.d/snmpd start 啟動服務。
2. 安裝net-snmp
yum install net-snmp
3.驗證你伺服器snmp是否正確安裝:
snmpwalk -v 2c -c <你自己設置的community> 127.0.0.1
有返回信息就是正確。
4. 寫你shell程序,通過snmpwalk可查看各網卡埠流量,可根據下面我提供的信息你自己選擇你要監控的埠。
[root@AAA snmp]# snmpwalk -v 2c -c <你自己定義community> 127.0.0.1 IF-MIB::ifHCOutOctets
IF-MIB::ifHCOutOctets.1 = Counter64: 2458933344
IF-MIB::ifHCOutOctets.2 = Counter64: 1714076390
IF-MIB::ifHCOutOctets.3 = Counter64: 0
IF-MIB::ifHCOutOctets.4 = Counter64: 0
[root@AAA snmp]# snmpwalk -v 2c -c c <你自己定義community> 127.0.0.1 IF-MIB::ifHCInOctets
IF-MIB::ifHCInOctets.1 = Counter64: 2458940740
IF-MIB::ifHCInOctets.2 = Counter64: 3011885260
IF-MIB::ifHCInOctets.3 = Counter64: 0
IF-MIB::ifHCInOctets.4 = Counter64: 0

實際shell賦值,可以通過snmpget命令而不是snmpwalk。比如:
[root@AAA snmp]# snmpget -v 2c -c <你自己定義community>127.0.0.1 IF-MIB::ifHCOutOctets.1
IF-MIB::ifHCOutOctets.1 = Counter64: 2458947627

這樣,你就可以通過shell,吧值賦給變數,例子如下:

[root@AAA snmp]# var=`snmpget -v 2c -c <你自己定義community> 127.0.0.1 IF-MIB::ifHCOutOctets.1 | awk '{print $4}'`;echo $var
2458981520

我已經提供全過程的信息給你了。具體你琢磨著去弄你的shell吧。

哈,有點頭暈。。。如果只監測自己機器,樓上仁兄那個最好。採納他吧。

F. 請問監控Linux伺服器磁碟容量的腳本怎麼寫

看看下面這個腳本(注意要用英文的標點符號):

#!/bin/bash
partion_list=( 'df -h | awk 『NF>3&&NR>1{sub(/%/,」」,$(NF-1));print $NF,$(NF-1)}』' )
critical=90
notification_email()
{
emailuser='user@qq.com' 「發送郵件地址」
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監控腳本相關的資料

熱點內容
港版iphone5ios7有幾種系統 瀏覽:770
qq歡迎使用影音播放 瀏覽:322
網路列印機怎麼查看電腦的密碼 瀏覽:980
淘寶賣二手的app叫什麼名字 瀏覽:217
安卓代碼讀取界面信息 瀏覽:714
數控車床車55度螺紋怎麼編程 瀏覽:391
word桌面找不到文件 瀏覽:585
數控車床編程怎麼做到的 瀏覽:639
哈爾濱市行政區劃代碼 瀏覽:716
如何顯示文件擴張 瀏覽:283
ps怎麼移植文件 瀏覽:443
傳奇補丁文件說明 瀏覽:513
奧維地圖怎麼設置網路疊加 瀏覽:407
linux載入庫文件so失敗 瀏覽:714
大家都想要的app 瀏覽:58
程序員比特幣 瀏覽:568
mysqlfrm是什麼文件 瀏覽:665
win10點擊文件夾聲音消失 瀏覽:963
蘋果手機空白文件名 瀏覽:833
linuxmv覆蓋合並文件夾 瀏覽:932

友情鏈接