Linux 基礎 SHELL腳本 示例。

示例一:

#!/bin/bash

#Filename: welcome.sh

#Welcome user login script

#用戶登錄時候顯示歡迎內容,當前用戶登錄數量;

#系統進程數、空餘的內存和Swap情況。

USER_NUM=`who | wc -l`

PROCESS=`ps aux | wc -l`

PROCESS_NUM=`expr $PROCESS - 1`

FREE_MEM=`free | grep Mem | awk '{print $4}'`

FREE_SWA=`free | grep Swap | awk '{print $4}'`
echo "Welcome ${USER} to login to this server !"

echo "Now Login Users : $USER_NUM"

echo "System Process Num: $PROCESS_NUM"

echo "System Free Memory: $FREE_MEM"

echo "System Free Swawp : $FREE_SWA"

示例二:

[root@master script]# vim sumint.sh 
#!/bin/bash
#FileName: sumint.sh
#讓用戶輸入一個大於1的數值,然後求從1到該數值所有整數的和。
read -p "Please input a number (>1): " Num
i=1
Sum=0
while [ $Num -gt $i ]
do
  Sum=`expr $Sum + $i`
  i=`expr $i + 1`
done
echo "The sum of 1-$Num is :$Sum "

示例三:

#!/bin/bash
#統計目錄佔用總空間大小,並將備份日期、目錄空間大小等信息保存在臨時文件"/tmp/dbinfo.txt"中,
#然後使用tar命令將dbinfo.txt文件隨數據庫目錄一起備份到"/opt/dbbak/"目錄中,備份包文件要求體現當天的日期。
DAY=`date +%Y%m%d`
SIZE=`du -sh /var/lib/mysql`
echo "Date:$DAY" >> /tmp/dbinfo.txt
echo "Data size:$SIZE" >> /tmp/dbinfo.txt
tar zcvf /opt/dbbak/mysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt
rm -f /tmp/dbinfo.txt

示例四:

#!/bin/bash
#FileName:checkfile.sh
#對於使用"/bin/bash"作爲登錄SHELL的用戶,
#檢查他們在"/opt"目錄中擁有的子目錄或文件數量.
DIR="/opt"
LMT=100
ValidUsers=`grep "/bin/bash" /etc/passwd | cut -d ":" -f 1`
for UserName in $ValidUsers
do
    Num=`find $DIR -user $UserName | wc -l`
    if [ $Num -gt $LMT ]; then
        echo "$UserName have  $Num files."
    fi
done

示例五:

#!/bin/bash
#FileName: batchAddUser.sh
#批量添加用戶,用戶自定義前綴,後綴爲數字,
#如果小於10,以(01、02。。。)這樣的方式添加;大於10,則不用前面加0
#添加個數由用戶自定義!初次登錄用戶必須修改密碼。
read -p "Please Input Your Want to add User's prefix Name: " AddName
read -p "Please Input Your Want to Add User's Num: " AddNum
i=1
while [ $i -le $AddNum ]
do
    if [ $i -lt 10 ]; then
        username=${AddName}0${i}
    else
        username=${AddName}${i}
    fi #if done;
useradd $username
#set user's default password
echo "123456" | passwd --stdin $username &> /dev/null
#one time login, user mast change password!
chage -d 0 $username
let i++
done #for done;
echo "All Ready Add $i User's ."

 

暫且這五個示例吧,希望對一些新學Shell的朋友有所幫助!

如果腳本中,大家覺得哪裏修改下就更好了,請評論告知,多多交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章