1. Sử dụng uptime để tính toán tải của hệ thống. Vẽ biểu đồ tải hệ thống theo thời gian trong mỗi 5'. Nếu tải hơn 50% thì gởi email thông báo.
#!/bin/bash
clear
uptime | awk '{ print $(NF-2) " " $(NF-1) " " $(NF)}' >out
a=$(cut -d',' -f1 out | sed 's/^0.//g')
b=$(cut -d',' -f2 out | sed 's/^0.//g')
c=$(cut -d',' -f3 out | sed 's/^0.//g')
echo $a $b $c
echo "% CPU moi phut: "
for i in `seq 1 $a`
do
echo -n "|"
done
echo " "
echo "% CPU moi 5 phut: "
for i in `seq 1 $b`
do
echo -n "|"
done
echo " "
echo "% CPU moi 15 phut: "
for i in `seq 1 $c`
do
echo -n "|"
done
echo " "
d=`echo "$a > 20" | bc -l`
if [[ $d -eq 1 ]]
then
echo "CPU vuot qua 20%!!! Hien tai: $a%" >baocao
mail -s "Bao cao" root@localhost <baocao
fi
#ngoai ra con cau hinh trong crontab: */5 * * * * bash /root/Desktop/tenfileshell
2. Sử dụng iostat để vẽ biểu đồ tải của ứng dụng của user, tải của hệ thống theo thời gian.
b=$(cat out | cut -d" " -f2)
echo "Bieu do ung dung cua user, $a%: "
for i in `seq 1 $a`
do
echo -n "|"
done
echo ""
echo "Bieu do ung dung cua system, $b%: "
for j in `seq 1 $b`
do
echo -n "|"
done
echo ""
d=$(echo "$a >6" | bc -l)
if [[ $d -eq 1 ]]
then echo "Canh bao ung dung user su dung qua 6%, hien tai la $a%">warning
mail -s "CANH BAO" hien@localhost<warning
fi
c=$(echo "$b >5" | bc -l)
if [[ $c -eq 1 ]]
then echo "Canh bao sys dung qua 5%, hien tai la $b%">warning
mail -s "CANH BAO" hien@localhost<warning
fi
3. Sử dụng vmstat để tìm thời gian máy tính dùng ít tài nguyên nhất trong ngày.
#File 1
#!/bin/bash
a=$(vmstat | sed -n '3p' | awk '{print $4}')
b=$(date | awk '{print $4}' )
echo "Luc $b-$a" >>out
#File 2
#!/bin/bash
cat out | sort -nr -k 3 | sed -n '1p' >ok
cat ok | sed 's/-/ co bo nho free nhieu nhat la /'
Không có nhận xét nào:
Đăng nhận xét