1.实现批量添加 20 个用户,用户名为:user1-20,密码为 user 后面跟着 5 个随机字符或数字
[root@localhost ~]# cat useradd.sh
#!/bin/bash
name="user"
for number in $(seq 1 20)
do
password=$(cat /dev/urandom | head -1 | md5sum | head -c 5)
useradd $name$number
echo "user$password" | passwd --stdin user$number &> /dev/null
echo "$name$number user$password" >> userinfo.txt
done
执行脚本之后 可以 cat /etc/passwd 查看有没有创建成功
2.脚本计算 1+2+3…. +100=?
[root@localhost ~]# cat number.sh
#!/bin/bash
num=1
sum=0
while [ $num -le 100 ]
do
sum=$(expr $sum + $num)
let num++
done
echo "1+2+3...+100="$sum
[root@localhost ~]# sh number.sh
1+2+3...+100=5050
3、将/usr/local/test 目录下大于 100K 的文件转移到/tmp 目录下
第一种方法: 使用find
find /usr/local/test -type f -size +100k -exec mv {} /tmp/
第二种方法:
#!/bin/bash
filelist=$(ls /usr/local/test/ -l | grep "^-" | awk '{print $9}')
filepath="/usr/local/test/"
for file in $filelist
do
filesize=$(du -s $filepath$file |awk '{print $1}')
if [ $filesize -gt 100 ]
then
mv $filepath$file /tmp/
fi
done
执行后, cd /tmp/ 查看有没有大于100k的文件被移动到这里
4.测试IP能不能ping通
第一种方法:
#!/bin/bash
IP_LIST="10.0.0.40 10.0.0.32 10.0.0.50"
for IP in $IP_LIST
do
FALL_COUNT=0
for ((i=1;i<=3;i++))
do
if ping -c 1 $IP >/dev/null
then
echo "$IP Ping is successful"
break
else
let FALL_COUNT++
fi
done
if [ $FALL_COUNT -eq 3 ]
then
echo "$IP ping is failure!"
fi
done
第二种方法:
#!/bin/bash
PING_IP() {
if ping -c 1 $IP >/dev/null
then
echo "$IP is SUCCESSFUL"
continue
fi
}
IP_LIST="10.0.0.50 10.0.0.33 10.0.0.40"
for IP in $IP_LIST
do
PING_IP
PING_IP
PING_IP
echo "$IP is FAILFURE"
done
5.猜数字
#!/bin/bash
echo -e "游戏开始"
while true
do
count=3
RANDOM_NUM=$(($(($RANDOM%100))))
#echo $RANDOM_NUM //执行时可以先取消注释,查看数字用来方便测试
for i in $(seq 3)
do
let count=$count-1
read -p "请输入你猜的数字大小:" NUMBER
if [ $RANDOM_NUM -gt $NUMBER ]
then
echo "你输入的数字太小了,还有 $count 次机会。"
elif [ $RANDOM_NUM -lt $NUMBER ]
then
echo "你输入的数字太大了,还有 $count 次机会"
else
read -p "恭喜猜对了,是否继续(y/n)" choose
if [ $choose == "Y" -o $choose == "y" ]
then
break
else
echo "欢迎大佬下次再来玩"
exit
fi
fi
if [ $count -eq 0 ]
then
read -p "对不起你的游戏次数已经用尽,是否继续(y/n)" choose
if [ $choose == "Y" -o $choose == "y" ]
then
break
else
echo "欢迎大佬下次再来玩"
exit
fi
fi
done
done
6、系统巡检脚本(精简版)
\1. 检测系统内存总容量
\2. 检测并输出剩余内存容量
\3. 检测并输出磁盘总容量
\4. 检测并输出剩余磁盘总容量
\5. 检测并输出CPU核心
\6. 检测并输出CPU型号及数量
#!/bin/bash
function cpu() {
echo "###############CPU信息#############"
CPUID=`grep 'physical id' /proc/cpuinfo | uniq | sort |wc -l`
CPUCORE=`grep 'cores' /proc/cpuinfo | sort | uniq |awk -F: '{print $2}'`
CPUMODE=`grep 'model name' /proc/cpuinfo | sort | uniq |awk -F: '{print $2}'`
echo " CPU数量:$CPUID"
echo " CPU核心: $CPUCORE"
echo " CPU型号: $CPUMODE"
FREE_ONE=`free -m | grep Mem | awk '{print $2}'`
FREE_TWO=`free -m | grep Mem | awk '{print $7}'`
echo " 内存总容量:$FREE_ONE"
echo " 剩余内存容量:$FREE_TWO"
size=0
CIR=`free|grep Swap|awk '{print $2}'`
CIS=`df -T|sed 1d|egrep -v "tmpfs"|awk '{print $3}'`
for i in ${CIS[*]}
do
size=`expr $size + $i`
done
((disktotal=\($size + $CIR\)/1024/1024))
echo " 磁盘总容量:${disktotal}GB"
size2=0
one=`free | grep Swap | awk '{print $4}'`
two=`df -T|sed 1d|egrep -v "tmpfs|sr0"|awk '{print $5}'`
for i in ${two[*]}
do
size2=`expr $size2 + $i`
done
((skt=\($size2 + $one\)/1024/1024))
echo " 剩余磁盘容量: ${skt}GB"
}
cpu