#!/bin/bash#不配置字符集,腳本放到crontab里發出的中文E-MAIL亂碼export LANG=en_US.UTF-8#有點強迫癥,習慣什么東西在什么地方干 ^_^cd /home/zabbix/graph#保存cookie文件名COOKIE=zbx_cookie.txt> $COOKIE#我是在zbx上開一個組,弄一個只讀賬號,把想出圖的主機放進去。NAME="reader"PASSWD="123456789"#EMAIL木什么好說地,有幾個e-mail并排寫就好啦。EMAIL="haha@abc.com hehe@abc.com lala@123.com"#需要提取數據的ip地址,其實這個IP主要是用來給圖片命名用的。恩恩IPADDR=(192.168.1.1 192.168.1.2)#這個地方比較麻煩,因為itemid是唯一的,所以需要自己肉眼高速掃描的去查。#這里我們拿內存和cpu來舉個例子吧。恩恩。CPU_ITEMID=(12345 67890)MEM_ITEMID=(98765 65432)#我們高大上的zbx地址URL="http://127.0.0.1"#登錄保存cookiecurl -s -c $COOKIE -b $COOKIE -d "request=&name=${NAME}&passWord=${PASSWD}&autologin=1&enter=Sign+in" $URL#還是強迫癥,木辦法。[[ -d cpu_png ]] || mkdir cpu_png[[ -d mem_png ]] || mkdir mem_png#PERIOD配置獲取數據的時間段,用秒數來表示。#ld需求要7天內的。604800,大家都懂的。#這里舉個例子我寫的3600。PERIOD=3600#這是我們的開始時間,也就是當前時間,STIME=$(date +%Y%m%d%H%M%S)#圖片寬度WHIDTH=1200#我是針對ITEMID組來進行循環創建圖片的,為了顯的好看點,我才這么寫的。#要不橫著寫起來太長鳥~!你們懂的。我們開始拼urlfor i in $(seq 0 $[${#CPU_ITEMID[@]}-1]);do curl -s -b $COOKIE / -F "itemid=${CPU_ITEMID[i]}" / -F "period=$PERIOD" / -F "curtime=$STIME" / -F "width=$WHIDTH" / "$URL/chart.php" > cpu_png/${IPADDR[i]}_cpu.pngdonefor i in $(seq 0 $[${#MEM_ITEMID[@]}-1]);do curl -s -b $COOKIE / -F "itemid=${MEM_ITEMID[i]}" / -F "period=$PERIOD" / -F "curtime=$STIME" / -F "width=$WHIDTH" / "$URL/chart.php" > mem_png/${IPADDR[i]}_mem.pngdone#我開始有點懶了,反正圖片都出來了愛怎么地怎么地吧。我手動拼的。CPU_PNG="-a cpu_png/192.168.1.1_cpu.png -a cpu_png/192.168.1.2_cpu.png"MEM_PNG="-a mem_png/192.168.1.1_mem.png -a mem_png/192.168.1.2_mem.png"#E-MAIL的TITLE,都懂的。不解釋了。CPU_TITLE="$(date +%Y年%m月%d日) Cpu idle 曲線圖"MEM_TITLE="$(date +%Y年%m月%d日) Memory realused 曲線圖"#卡卡卡開始對ld進行郵件轟炸,用不用寫個死循環呢。:p echo "附件為抽查服務器cpu idle曲線圖" | mail -s "$CPU_TITLE" $CPU_PNG $EMAILecho "附件為抽查服務器memory realused曲線圖" | mail -s "$MEM_TITLE" $MEM_PNG $EMAIL#做事要干凈,吃完飯記得擦嘴。[[ -d cpu_png ]] && rm -rf cpu_png[[ -d mem_png ]] && rm -rf mem_pngexit 0
其實就是根據這個url自己拼的。
最后呈現出來的樣子就系這樣啦。
新聞熱點
疑難解答