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的朋友有所帮助!

如果脚本中,大家觉得哪里修改下就更好了,请评论告知,多多交流。

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