一 批量创建用户
[root@iZbp1el3hto8hhgtlih1m4Z test]# vi 1_useradd_piliang.sh
#!/bin/bash
#第一步获取到创建用户的名称,这里使用前台输入
USER_LIST=$@
#存放创建好的用户和密码
USER_FILE=./new_user.log
#开始进行循环
for USER in $USER_LIST;do
if ! id $USER &>/dev/null;then
PASS=$(echo $RANDOM | md5sum | cut -c 1-8)
useradd $USER
echo $PASS | passwd --stdin $USER
echo "$USER--$PASS" >> $USER_FILE
echo "$USER 用户创建成功!!!"
else
echo "$USER 用户是存在的!!!"
fi
done
二 查询linux服务器cpu和内存top10
[root@iZbp1el3hto8hhgtlih1m4Z test]# vi 2_cpu_mem_top.sh
#!/bin/bash
echo "---------cpu top 10----------"
ps -eo ruser,pid,pcpu,pmem,args --sort=-pcpu | head -10
ps -aux --sort=-pcpu | head -10
echo "---------mem top 10----------"
ps -eo ruser,pid,pmem,pcpu,args --sort=-pmem | head -10
ps -aux --sort=-pmem | head -10
三 服务器磁盘、内存和cpu查看
[root@iZbp1el3hto8hhgtlih1m4Z test]# more 3_disk_cpu_mem.sh
#!/bin/bash
#磁盘空间查看
disk(){ #disk函数
cipan=$(df -h | awk '/^\/dev/{print $1}') #输出以dev开头的
for cp in $cipan;do #循环上面的列表
mounted=$(df -h | awk -v bl=$cp '{if($1==bl)print $NF}') #挂载 awk中一个变量等于for循环中的cp值,再进行判断是否相等,相等输出对应的值,$NF为最后一列的值
size=$(df -h | awk -v bl=$cp '{if($1==bl)print $2}') #总大小
used=$(df -h | awk -v bl=$cp '{if($1==bl)print $3}') #使用大小
used_precent=$(df -h | awk -v bl=$cp '{if($1==bl)print $5}') #使用比例
echo "磁盘-挂载点: $mounted , 总大小为:$size , 使用了 $used ,使用百分比为 : $used_precent"
done
}
#cpu大小查看
cpu(){
util=$(vmstat | awk '{if(NR==3)print $13+$14}')
iowait=$(vmstat | awk '{if(NR==3)print $16}')
echo "cpu - 使用率为 $util,等待磁盘io使用率为 $iowait"
}
#内存大小查看
mem(){
total=$(free | awk '{if(NR==2)printf "%.1f",$2/1024/1024}')
used=$(free | awk '{if(NR==2)printf "%.1f",($2-$NF)/1024/1024}')
available=$(free | awk '{if(NR==2)printf "%.2f",$NF/1024/1024}')
echo "内存总大小为:$total G,内存使用了:$used G,内存可用: $available G"
}
#查看连接
tcp(){
tcp=$(netstat -antp | awk '{a[$6]++}END{for (i in a) {print i,a[i]}}')
echo "连接情况如下:$tcp"
}
disk
cpu
mem
tcp
四 批量删除用户
[root@iZbp1el3hto8hhgtlih1m4Z test]# more 4_userdel_piliang.sh
#!/bin/bash
USER_DEL=$(cat /etc/passwd | grep "bash$" | grep -v "root" | awk -F ":" '{print $1}')
for del_user in $USER_DEL;do
userdel -r $del_user
echo "$del_user 用户删除成功!!!"
done