當前位置:首頁 » 編程軟體 » shell腳本監控伺服器

shell腳本監控伺服器

發布時間: 2023-01-25 21:11:36

㈠ 伺服器運維一般需要掌握哪些方面的技術

1. 基礎理論知識;

2. 基礎命令(系統命令、目錄管理、用戶管理、文件許可權、磁碟管理、資源查看等等常見操作);

3. 文本高效處理(vi、vim、awk、grep、find、sed等);

4. bash shell腳本(可以邊工作邊學習,使用shell編寫簡單的代替重復性操作的腳本);

5. 進程調度,內存管理,文件系統,外設管理等,要熟練使用相關工具,如top iotop iftop iostat vmstatss等,並且最好了解其原理;

1. TCP/IP協議、DNS服務、CDN原理、iproute常見的網路客戶端工具(ping、wget、ftp);

2. crontab計劃任務;

3. ps、top、htop、vmstat、lsof等命令;

4. tcp,http,https,udp等;

5. 最好能做到精通,4層,7層的網路流量分析技能要熟練掌握;

6. 內部路由協議,邊際路由,交換原理,域名解析,ipv6相關知識;

1. Mysql各個版本之間的關系和特性;

2. MySQL的安裝及增刪改查;

3. MySQL的存儲引擎;

4. MySQL的優化;

5. MySQL日常使用及運維,包含備份及故障排查;

1. 使用shell腳本實現各種服務的自動化部署;

2. 使用shell腳本實現監控系統及應用自動化;

3. 使用shell腳本實現各類巡檢,故障排查自動化

㈡ 如何利用shell腳本監控伺服器溫度

統:centos 5.5 1.監控伺服器狀態腳本內容:
01 #!/bin/bash 02
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
03
04 cpu_num=`grep -c 'model name' /proc/cpuinfo` 05
06 load_15=`uptime | awk '{print $NF}'` 07 08
average_load=`echo "scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a)) print 0;print a" | bc`
09
10 average_int=`echo $average_load | cut -f 1 -d "."` 11
12 load_warn=0.70 13
14 if (($average_int > 0)); then
15 echo "$IP伺服器15分鍾的系統平均負載為$average_load,超過警
戒值1.0,請立即處理!!!" | mailx -s "$IP 伺服器系統負載嚴重告警!!!
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
" [email protected] 16 else 17
18 load_now=`expr $average_load \> $load_warn` 19
20 if (($load_now == 1)); then
21 echo "$IP伺服器15分鍾的系統平均負載達到 $average_load,超過警戒值0.70,請及時處理。" | mailx -s "$IP 伺服器系統負載告警
" [email protected] 22 fi 23 24 fi 25
26 cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."` 27
28 if (($cpu_idle < 20)); then
29
echo "$IP伺服器cpu剩餘$cpu_idle%,使用率已經超過80%,請及時
處理。" | mailx -s"$IP 伺服器CPU告警" [email protected]
30 fi 31
32 swap_total=`free -m | grep Swap | awk '{print $2}'` 33
猜你喜歡租賃一體電腦dell電腦特約維修蘋果肌注射後休息蘋果店怎麼分期付款蘋果6s64g分期付款蘋果6s零首付分期付款加固筆記本品牌孩子 培訓 電腦手機微店 app蘋果6s5.5分期付款
34 swap_free=`free -m | grep Swap | awk '{print $4}'` 35
36 swap_used=`free -m | grep Swap | awk '{print $3}'` 37
38 if (($swap_used != 0)); then
39 swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc` 40
41 swap_warn=0.20 42
43 swap_now=`expr $swap_per \> $swap_warn` 44
45 if (($swap_now == 0)); then
46 echo "$IP伺服器swap交換分區只剩下 $swap_free M 未使用,剩餘不足20%,使用率已經超過80%,請及時處理。" | mailx -s "$IP 伺服器
內存告警" [email protected] 47 fi 48 49 fi 50
51
#disk_sda=`df -h | grep /dev/sda3 | awk '{print $5}' | cut -f 1 -d "%"`
52 disk_sda=`df -Ph |grep /dev/mapper/VolGroup00-LogVol00|awk '{print

java 調用shell腳本 其中shell腳本是個實時監控程序 監測文件變化

在後台,你可以調用java的時候,如果你的java程序調用的Test.class或Test.jar的

shell腳本來調用JAVA程序#! / bin / sh的

爪哇的Test.class##或Java的罐子Test.jar的

統計=`sqlplus中.......`

如果[$統計=「**」 】

使用nohup sh的single1.sh
殼順序也按順序執行,沒有回電話當Java是不會繼續向下 BR />如果你調用java程序在執行時,命令已經帶回來的符號,那麼這個命令在後台執行,shell會繼續執行下一個命令

㈣ shell腳本之伺服器意外斷電檢測

此腳本在centos7.3和7.8驗證過,應該適用centos7+。

-蕭瑟

㈤ 跪求一個linux 簡單Shell腳本... 該腳本用於監測httpd服務的運行狀態,要求: 1.當服務失常時在/var/log/h

#!/bin/bash
#Finding out the IP which logserver cannot connected from the ip list(locates:/home/list) in logserver.
#Written on xxxx.
#Author:Levin.

trap 'echo;exit 0' 2 15

IP=`cat /home/admin/IP.logserver`
list=/home/list

for i in $IP
do
ip=`echo $i|awk -F'--->' '{print $2}'`
echo $i
ssh $ip "cd /home/admin/
cat > testconnect.sh < < 'EOF'
#!/bin/bash
trap 'echo;exit 0' 2 15
ip=\`awk '{print \$2}' /home/admin/list\`
for i in \$ip
do
echo -n \"\$i \"
/usr/bin/ssh \$i \"echo connection ok!\"
done &>/home/admin/conn.txt
grep -v \"connection ok!\" /home/admin/conn.txt| tee /home/admin/conn.xg
EOF

su - admin -c \"/bin/bash /home/admin/testconnect.sh &>/dev/null\"
su - admin -c \"[ -s /home/admin/conn.xg ]&& cat /home/admin/conn.xg\"
"
done &>/home/admin/email.conn

num=`cat /home/admin/email.conn|wc -l`
if [[ $num -gt 9 ]]
then mail -s "提醒:logserver /home/list 發現問題IP " [email protected] < /home/admin/email.conn
fi

exit 0

幾個有用的技巧:
1,ssh ip "" 遠程執行命令的用法,把要在遠程執行的命令用雙引號引上,不要用單引號或不使用引號。使用單引號無法調用本地的變數,而且在使用awk的時候也會有問題。「」中的都是要在遠程伺服器執行的命令,可以用;號隔開每條命令,但最好使用回車符分開,因為這樣看上去很清晰。
2,cat > testconnect.sh < < 'EOF'
。。。
EOF
Here Document用法,簡單說明一下,testconnect.sh為要創建的文件,中間的。。。為要寫入這個文件的內容,EOF的單引號或雙引號,為注釋掉內容的變數。這種用法非常實用,值得好好去鑽研鑽研。
3,su - admin -c 「」 切換到普通用戶執行命令,「」號中是要在普通用戶環境下執行的命令。腳本中的「」被轉義了,是因為這是在遠程執行的,為了不與ssh的「」相沖突而出現錯誤。

㈥ Shell腳本根據Hash值判斷web伺服器頁面是否被更改

      當頁面被惡意木馬攻擊更改後,監控狀態腳本並不能檢測出異常,但是Web的頁面已經存在相當大的安全隱患.所以能不能尋找到一種方法判斷自己所負責的Web伺服器頁面內容是否遭到惡意木馬的攻擊和修改顯得十分重要.通過Hash值的方法可以非常高效的檢測到WEB伺服器頁面的數據內容是否完整,如果頁面內容被惡意木馬更改,新頁面的Hash值是不同於原始的Hash值的,我們就可以以此作為判斷的依據!

獲取Hash值的方法:

md5sum /var/www/html/index.html

url="Web伺服器頁面地址"

如 http://127.0.0.1/index.html

date=$(date +"%Y-%m-%d %H:%M:%S")

source_hash="獲取到的原始Hash值"

url_hash=$(curl -s $url | md5sum | cut -d ' ' -f1)

if [ "$url_hash" != "$source_hash" ];then

        mail -s  Hash is changed  root@localhost <<- EOF

        檢測時間為:$date

        數據完整性檢驗失敗,Hash值不同,$url,頁面數據被更改

        請盡快排查異常

        EOF

else

        cat >> /var/log/http_check.log <<-EOF

        $date "$url,數據完整性校驗正常"

        EOF

fi

chmod +x /check_http_hash.sh

/check_http_hash.sh

cat /var/log/http_check.log

2019-11-23 15:38:55 "http://127.0.0.1/index.html,數據完整性校驗正常"

修改/var/www/html/index.html文件的內容,模擬網站頁面被更改的情況!

/check_http_hash.sh

檢測時間為:2019-11-23 16:00:08

數據完整性檢驗失敗,Hash值不同,http://127.0.0.1/index.html,頁面數據被更改

請盡快排查異常

這一個腳本跟上一篇文章的 http服務狀態監測腳本 兩者相輔相成,也可以考慮把它們兩個合並成同一個腳本!並且一同添加到周期性計劃任務中!

㈦ 如何部署linux伺服器監控shell腳本

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里每小時自動執行:
0 * * * * /home/check_xu.sh

這樣會在/home/oslog/host_yyyymmdd/hh目錄下生成各小時cpu、內存、網路,IO的統計數據。如果某個時間段產生問題了,就可以去看對應的日誌信息,看看當時的主機性能如何。

㈧ shell腳本具體是干什麼的,是在用什麼的時候會用得到

Shell遵從經典UNIX哲學:把復雜的問題分解成簡單的小問題,然後再把各部分功能組合起來解決復雜問題。
例如我可以用shell腳本來監控伺服器整體的性能,當CPU負載超過我預設的警戒線,磁碟空間的閥值超過我預設的標准,伺服器宕機,這些都可以通過shell編寫腳本做到自動給我發告警郵件或者發簡訊通知我。簡化每日繁瑣的工作步驟,數據的備份,日誌的搜集整理。太多太多了。..

㈨ 求大神幫我寫一個伺服器監控腳本,用shell腳本寫。。

。。。。這還要結合你的服務才能採集到數據啊

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:710
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:972
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:681
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:834
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:741
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1081
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:312
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:192
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:880
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:837