current num 任務 bar == 數字 tee centos dev


範例7-2:

開發一個腳本判斷系統剩余內存的大小,如果低於100MB,就郵件報警給系統管理員,並將腳本加入系統定時任務,即每3分鐘執行一次。


首先搞定郵件服務,我的centos 7上面沒有mail包,所以就下載一個rpm的mail包安裝,下來時編輯配置文件:

[[email protected] ~]# tail -n 7 /etc/mail.rc 

set from=***@163.com
set smtp=smtp.163.com
set smtp-auth-user=***
set smtp-auth-password=***
set smtp-auth=login
[[email protected] ~]# 

然後測試郵件服務器是否正常:
[[email protected] ~]# echo "oldboy" | mail -s "cpu" ***@163.com   #好了
#!/bin/bash
men=`free -m | awk 'NR==3 {print $NF}'`
chars="current memory is $men"

if [ $men -lt 3000 ]; then
  echo "$chars" | tee /tmp/messages.txt    #打印並且保存在文件中
  mail -s "`date +%F-%T`-men" [email protected] < /tmp/messages.txt
fi

範例 7-3:分別使用read讀入及腳本傳參的方式比較兩個數字的大小。把前面涉及到的是否為整數以及傳參的個數是否按照要求的。

#!/bin/bash
read num
read num1
if [ -z "$num" ]; then
echo "plz input currt arges"
exit 4
fi

if [ -z "$num1" ]; then #發現這兩個不能放一起使用-a連接起來判斷,會出現問題。

echo "plz input currt arges"

exit 5
fi

expr $num + 4 > /dev/null
aa=$?
expr $num1 + 4 > /dev/null
bb=$?

if [ $aa -eq 0 -a $bb -eq 0 ]; then
if [ $num -lt $num1 ]; then
echo ""$num"<"$num1""
else
echo ""$num">"$num1""
fi
else
echo "this is a bad int"
fi


多分支進行判斷


第七章 if條件語句的知識和實踐(郵件報警)