1. 将Linux 系统中UID 大于等于1000 的普通用户都删除
#!/bin/bash
#先用awk 提取所有uid 大于等于1000 的普通用户名称
#再使用for 循环逐个将每个用户删除即可
user=$(awk ‐F: '$3>=1000{print $1}' /etc/passwd)
for i in $user
do
userdel ‐r $i
done
2. 使用脚本开启关闭虚拟机
#!/bin/bash
#脚本通过调用virsh 命令实现对虚拟机的管理,如果没有该命令,需要安装libvirt‐client 软件包
#$1 是脚本的第1 个参数,$2 是脚本的第2 个参数
#第1 个参数是你希望对虚拟机进行的操作指令,第2 个参数是虚拟机名称
case $1 in
list)
virsh list ‐‐all;;
start)
virsh start $2;;
stop)
virsh destroy $2;;
enable)
virsh autostart $2;;
disable)
virsh autostart ‐‐disable $2;;
*)
echo "Usage:$0 list"
echo "Usage:$0 [start|stop|enable|disable] VM_name"
cat << EOF
list 显示虚拟机列表
start 启动虚拟机
stop 关闭虚拟机
enable 设置虚拟机为开机自启
disable 关闭虚拟机开机自启功能
EOF
;;
esac
3. 调整虚拟机内存参数的shell 脚本
#!/bin/bash
#脚本通过调用virsh 命令实现对虚拟机的管理,如果没有该命令,需要安装libvirt‐client 软件包
cat << EOF
1.调整虚拟机最大内存数值
2.调整实际分配给虚拟机的内存数值
EOF
read ‐p "请选择[1‐2]:" select
case $select in
1)
read ‐p "请输入虚拟机名称" name
read ‐p "请输入最大内存数值(单位:k):" size
virsh setmaxmem $name ‐‐size $size ‐‐config;;
2)
read ‐p "请输入虚拟机名称" name
read ‐p "请输入实际分配内存数值(单位:k):" size
virsh setmem $name $size;;
*)
echo "Error";;
esac
4. 查看KVM 虚拟机中的网卡信息(不需要进入启动或进入虚拟机)
#!/bin/bash
#该脚本使用guestmount 工具,可以将虚拟机的磁盘系统挂载到真实机文件系统中
#Centos7.2 中安装libguestfs‐tools‐c 可以获得guestmount 工具
#虚拟机可以启动或者不启动都不影响该脚本的使用
#将虚拟机磁盘文件挂载到文件系统后,就可以直接读取磁盘文件中的网卡配置文件中的数据
clear
mountpoint="/media/virtimage"
[ ! ‐d $mountpoint ]&& mkdir $mountpoint
read ‐p "输入虚拟机名称:" name
echo "请稍后..."
#如果有设备挂载到该挂载点,则先umount 卸载
if mount | grep ‐q "$mountpoint" ;then
umount $mountpoint
fi
#只读的方式,将虚拟机的磁盘文件挂载到特定的目录下,这里是/media/virtimage 目录
guestmount ‐r ‐d $name ‐i $mountpoint
echo
echo "‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"
echo ‐e "\033[32m$name 虚拟机中网卡列表如下:\033[0m"
dev=$(ls /media/virtimage/etc/sysconfig/network‐scripts/ifcfg‐* |awk ‐F"[/‐]" '{print $9}')
echo $dev
echo "‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"
echo
echo
echo "+++++++++++++++++++++++++++++++++++++++++++"
echo ‐e "\033[32m 网卡IP 地址信息如下:\033[0m"
for i in $dev
do
echo ‐n "$i:"
grep ‐q "IPADDR" /media/virtimage/etc/sysconfig/network‐scripts/ifcfg‐$i || echo "未配置IP
地址"
awk ‐F= '/IPADDR/{print $2}' /media/virtimage/etc/sysconfig/network‐scripts/ifcfg‐$i
done
echo "+++++++++++++++++++++++++++++++++++++++++++"
5. 不登陆虚拟机,修改虚拟机网卡IP 地址
#!/bin/bash
#该脚本使用guestmount 工具,Centos7.2 中安装libguestfs‐tools‐c 可以获得guestmount 工具
#脚本在不登陆虚拟机的情况下,修改虚拟机的IP 地址信息
#在某些环境下,虚拟机没有IP 或IP 地址与真实主机不在一个网段
#真实主机在没有virt‐manger 图形的情况下,远程连接虚拟机很麻烦
#该脚本可以解决类似的问题
read ‐p "请输入虚拟机名称:" name
if virsh domstate $name |grep ‐q running ;then
echo "修改虚拟机网卡数据,需要关闭虚拟机"
virsh destroy $name
fi
mountpoint="/media/virtimage"
[ ! ‐d $mountpoint ]&& mkdir $mountpoint
echo "请稍后..."
if mount | grep ‐q "$mountpoint" ;then
umount $mountpoint
fi
guestmount ‐d $name ‐i $mountpoint
read ‐p "请输入需要修改的网卡名称:" dev
read ‐p "请输入IP 地址:" addr
#判断原本网卡配置文件中是否有IP 地址,有,就修改该IP,没有,就添加一个新的IP 地址
if grep ‐q "IPADDR" $mountpoint/etc/sysconfig/network‐scripts/ifcfg‐$dev ;then
sed ‐i "/IPADDR/s/=.*/=$addr/" $mountpoint/etc/sysconfig/network‐scripts/ifcfg‐$dev
else
echo "IPADDR=$addr" >> $mountpoint/etc/sysconfig/network‐scripts/ifcfg‐$dev
fi
#如果网卡配置文件中有客户配置的IP 地址,则脚本提示修改IP 完成
awk ‐F= ‐v x=$addr '$2==x{print "完成..."}' $mountpoint/etc/sysconfig/network‐scripts/ifcfg‐
$dev
6. 破解虚拟机密码,无密码登陆虚拟机系统
#!/bin/bash
#该脚本使用guestmount 工具,Centos7.2 中安装libguestfs‐tools‐c 可以获得guestmount 工具
read ‐p "请输入虚拟机名称:" name
if virsh domstate $name |grep ‐q running ;then
echo "破解,需要关闭虚拟机"
virsh destroy $name
fi
mountpoint="/media/virtimage"
[ ! ‐d $mountpoint ]&& mkdir $mountpoint
echo "请稍后..."
if mount | grep ‐q "$mountpoint" ;then
umount $mountpoint
fi
guestmount ‐d $name ‐i $mountpoint
#将passwd 中密码占位符号x 删除,该账户即可实现无密码登陆系统
sed ‐i "/^root/s/x//" $mountpoint/etc/passwd
7. Shell 脚本对信号的处理,执行脚本后,按键盘Ctrl+C 无法终止的脚本
#!/bin/bash
#使用trap 命令可以拦截用户通过键盘或kill 命令发送过来的信号
#使用kill ‐l 可以查看Linux 系统中所有的信号列表,其中2 代表Ctrl+C
#trap 当发现有用户ctrl+C 希望终端脚本时,就执行echo "暂停10s";sleep 10 这两条命令
#另外用户使用命令:[ kill ‐2 脚本的PID ] 也可以中断脚本和Ctrl+C 一样的效果,都会被trap 拦截
trap 'echo "暂停10s";sleep 10' 2
while :
do
echo "go go go"
done
8. 一键部署memcached
#!/bin/bash
#脚本用来源码安装memcached 服务器
#注意:如果软件的下载链接过期了,请更新memcached 的下载链接
wget http://www.memcached.org/files/memcached‐1.5.1.tar.gz
yum ‐y install gcc
tar ‐xf memcached‐1.5.1.tar.gz
cd memcached‐1.5.1
./configure
make
make install
9. 一键配置VNC 远程桌面服务器(无密码版本):
#!/bin/bash
#脚本配置的VNC 服务器,客户端无需密码即可连接
#客户端仅有查看远程桌面的权限,没有鼠标和键盘的操作权限
if [ $? ‐ne 0 ];then
yum ‐y tigervnc‐server
fi
x0vncserver AcceptKeyEvents=0 AlwaysShared=1 \
AcceptPointerEvents=0 SecurityTypes=None rfbport=5908
10. 关闭SELinux
#!/bin/bash
sed ‐i '/^SELINUX/s/=.*/=disabled/' /etc/selinux/config
setenforce 0
如果想上手操作练代码的同学们可以通过阿里云ecs服务器免费试用参与!
入口一:新老同学免费试用
入口二:上云第一站
入口三:学生版超低价云服务器
入口四:云服务器专享特惠版
入口五:云服务器特惠1.5折起
入口七:阿里云最新活动中心
入口八:中小企业权益满减礼包