运维之shell篇-----4.1-20例shell点子脚本
来源:互联网 发布:怎么安装ubuntu系统 编辑:程序博客网 时间:2024/06/05 11:22
1.vim usps.sh
#!/bin/bash
A=`awk -F: '/bash$/{print $1}' /etc/passwd`
for i in $A
do
b=`grep $i /etc/shadow | awk -F: '{print $2}'`
echo "$i--->$b"
done
2.vim rh7dvd.sh
#!/bin/bash
#
echo "准备配置yum源"
rm -rf /etc/yum.repos.d/*.repo
echo '[rh7dvd]
name=Red Hat Enterprise Linux 7.1
baseurl=file:///ISO/rhel-server-7.2-x86_64-dvd.iso
Enabled=1
gpgcheck=0' > /etc/yum.repos.d/rh7dvd.repo
echo ‘yum源配置成功’
echo ‘软件数量如下:’
yum repolist | tail -1
#or
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3.vim rsync.sh
#!/bin/bash
FROM_DIR="/root/桌面/zx1/"
RSYNC_CMD="rsync -a --delete $FROM_DIR /zx2"
while inotifywait -rqq -e modify,move,create,delete,attrib $FROM_DIR
do
$RSYNC_CMD
done &
4.vim 2008还原.sh
#!/bin/bash
#############
IMG_DIR=/var/lib/libvirt/images/
id=`virsh dominfo win2008 2> /dev/null | grep running`
if [ -n "$id" ];then
/usr/bin/virsh destroy win2008 &> /dev/null
fi
virsh undefine win2008 2> /dev/null
if [ -e /var/lib/libvirt/images/win.img ]; then
rm -rf $IMG_DIR/win.img
fi
echo "正在还原....."
sleep 2
qemu-img create -f qcow2 -b $IMG_DIR/.win2008.img $IMG_DIR/win.img &> /dev/null
virsh define /root/.win2008.xml &> /dev/null
echo "还原成功....."
sleep 2
exit
5.vim log.sh
#!/bin/bash
5 3 * * 5 tar -czf log-`date +%Y%m%d`.tar.gz /var/log
6.vim whocount.sh
#!/bin/bash
#FIRST
num=$(who | wc -l) #don't have blank around '='
if [ $num -gt 3 ];then
mail -s warning root < /etc/passwd
fi
#TWO
#num = $(who | wc -l)
#if [ $num -gt 3 ];then
# mail -s warning 13475639563@163.com < /warning.txt
#fi
7.vim usr.sh
#!/bin/bash
#1.can't be empty.
#The passwd hidden.
#create multi-user.
#讲求实际实际生活对话.
:'
read -p "请输入用户名:" name
[ -z $name ] && echo "必须输入用户名!!" && exit
stty -echo
read -p "请输入密码:" pass
stty echo
[ -z $pass ] && echo "必须输入密码!!" && exit
useradd $name
echo "$pass" | passwd --stdin $name
'&>/dev/null
#2.添加若干个用户
#每个用户密码同用户名相同,而且要求,添加密码完成后不显示passwd命令的执行结果信息.
#每个用户添加后,都要展示用户某某已经添加成功.
#
'for i in $(cat people.txt)
do
id $i&>/dev/null
if [ $? != 0 ];then
useradd $i && echo "$i" | passwd --stdin $i &>/dev/null
echo "Add $i successfully."
else
echo "该用户已经存在!!" && exit
fi
done
'&>/dev/null
#3.利用for创建指定的多用户并添加统一密码,不显示passwd执行信息.
'for i in $(cat 关联文件/people.txt)
do
useradd $i
echo "123456" | passwd --stdin $i &>/dev/null
done'&>/dev/null
#4.利用while创建多用户,并统一密码.
'i=1
while [ $i -le 5 ]
do
useradd user$i
echo "123" | passwd --stdin user$i >/dev/null
let i++
done'&>/dev/null
#5.用户为空跳出,不手动设置密码默认为123456
#!/bin/bash
#
read -p "请输入用户名:" name
[ -z $name ] && exit
read -p "请输入密码:" pass
pass=${pass:-123456}
useradd $name
echo "$pass" | passwd --stdin $name
8.vim cai.sh
#!/bin/bash
#知识点:
#随机数利用RANDOM.
#while循环.
#read
#if
#增添场景对话
num=$[RANDOM%10]
i=0
while :
do
let i++
read -p "我的jj有多长,你摸一下:" cai
if [ $cai -eq $num ];then
echo "你好棒呀!!!,猜了$i次。"
exit
elif [ $cai -lt $num ];then
echo "太短啦!!妹妹!"
elif [ $cai -gt $num ];then
echo "太长啦!!妹妹!"
else
echo "你在说什么,我听不懂艾!"
fi
done
'read -p "我的jj有多长,你再给你一次机会:" cai
if [ $cai -eq $num ];then
echo "你好棒呀!!!"
exit
elif [ $cai -lt $num ];then
echo "我有这么小么!!妹妹!"
elif [ $cai -gt $num ];then
echo "奥,你太看得起我咯,没有那么大啦!!妹妹!"
else
echo "你在说什么,我听不懂艾!"
fi
read -p "我的jj有多长,再猜不对不让你吃啦:" cai
if [ $cai -eq $num ];then
echo "你好棒呀!!!"
exit
elif [ $cai -lt $num ];then
echo "我有这么小么!!妹妹!"
elif [ $cai -gt $num ];then
echo "奥,你太看得起我咯!!妹妹!"
else
echo "你在说什么,我听不懂艾!"
fi'
9. vim echc.sh
#!/bin/bash
cecho(){
echo -e "\033[$1m$2\033[0m"
}
10.vim for.sh
#!/bin/bash
# VARSION IS
#对for重要的组织形式:变量引用, 次数,值列表内容形式
for i in 1 2 3 4
do
echo $i
echo nb
done
for i in `ls /home`
do
echo $i
done
11.vim while.sh
#!/bin/bash
#基础
i=1
while [ $i -le 5 ]
do
echo $i
let i++
done
12.vim sleepwhile.sh
#!/bin/bash
#
while :
do
echo 'a'
echo 'b'
sleep 0.1
done
13.vim case.sh
#!/bin/bash
#
case $1 in
redhat )
echo "fedora";;
fedora )
echo "redhat";;
* )
esac
14.vim ip.sh
#!/bin/bash
#
i=0
while :
do
read -p "请输入IP,输入EOF 结束:" IP
[ $IP == EOF ]&& break
pool[$i]=$IP
let i++
done
echo "你输入的IP 有${pool[*]}"
echo "你输入了${#pool[*]}个IP"
echo "你输入的第十个IP是${pool[9]}"
15.ping.sh
vim
#!/bin/bash
#ping one IP
'ping -c2 $1 &>/dev/null
ping -c -i 0.2 -w 3 $1 &>/dev/null
if [ $? -eq 0 ];then
echo "$1网络可直达!!"
else
echo "$1网络不可达!!"
fi'&>/dev/null
#ping一个网段.
for IP in `seq 254`
do
ping -c 3 -i 0.2 -w 0.5 192.168.4.$IP &> /dev/null
if [ $? -eq 0 ];then
echo "Host 192.168.4.$IP is up."
else
echo "Host 192.168.4.$IP is down."
fi
done
16.vim rm.sh
#!/bin/bash
#
SHLINKS=/root/桌面/zx1/shell/关联文件
for i in `seq 10`
do
rm -rf $SHLINKS/$i.txt
done
17.vim rmuser.sh
#!/bin/bash
#
'
for i in $(cat 关联文件/people.txt)
do
userdel -r $i
echo "$i删除成功!!"
done'&>/dev/null
i=1
while [ $i -le 5 ]
do
userdel -r user$i
let i++
done
18.vim touch.sh
#!/bin/bash
for i in `seq $1`
do
touch $2/$i.txt
done
19.vim break.sh
#!/bin/bash
for i in {1..5}
do
if [ $i -eq 3 ];then
break #这里将break替换为continue,exit分别测试脚本执行效果
fi
echo $i
done
echo "程序结束"
20.vim vsftp.sh
#!/bin/bash
if [ $USER == root ];then
yum -y install vsftpd &> /dev/null #(只有管理员才有权限做)
systemctl start vsftpd
systemctl enable vsftpd
fi
echo "vsftpd is up !!"
#!/bin/bash
A=`awk -F: '/bash$/{print $1}' /etc/passwd`
for i in $A
do
b=`grep $i /etc/shadow | awk -F: '{print $2}'`
echo "$i--->$b"
done
2.vim rh7dvd.sh
#!/bin/bash
#
echo "准备配置yum源"
rm -rf /etc/yum.repos.d/*.repo
echo '[rh7dvd]
name=Red Hat Enterprise Linux 7.1
baseurl=file:///ISO/rhel-server-7.2-x86_64-dvd.iso
Enabled=1
gpgcheck=0' > /etc/yum.repos.d/rh7dvd.repo
echo ‘yum源配置成功’
echo ‘软件数量如下:’
yum repolist | tail -1
#or
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3.vim rsync.sh
#!/bin/bash
FROM_DIR="/root/桌面/zx1/"
RSYNC_CMD="rsync -a --delete $FROM_DIR /zx2"
while inotifywait -rqq -e modify,move,create,delete,attrib $FROM_DIR
do
$RSYNC_CMD
done &
4.vim 2008还原.sh
#!/bin/bash
#############
IMG_DIR=/var/lib/libvirt/images/
id=`virsh dominfo win2008 2> /dev/null | grep running`
if [ -n "$id" ];then
/usr/bin/virsh destroy win2008 &> /dev/null
fi
virsh undefine win2008 2> /dev/null
if [ -e /var/lib/libvirt/images/win.img ]; then
rm -rf $IMG_DIR/win.img
fi
echo "正在还原....."
sleep 2
qemu-img create -f qcow2 -b $IMG_DIR/.win2008.img $IMG_DIR/win.img &> /dev/null
virsh define /root/.win2008.xml &> /dev/null
echo "还原成功....."
sleep 2
exit
5.vim log.sh
#!/bin/bash
5 3 * * 5 tar -czf log-`date +%Y%m%d`.tar.gz /var/log
6.vim whocount.sh
#!/bin/bash
#FIRST
num=$(who | wc -l) #don't have blank around '='
if [ $num -gt 3 ];then
mail -s warning root < /etc/passwd
fi
#TWO
#num = $(who | wc -l)
#if [ $num -gt 3 ];then
# mail -s warning 13475639563@163.com < /warning.txt
#fi
7.vim usr.sh
#!/bin/bash
#1.can't be empty.
#The passwd hidden.
#create multi-user.
#讲求实际实际生活对话.
:'
read -p "请输入用户名:" name
[ -z $name ] && echo "必须输入用户名!!" && exit
stty -echo
read -p "请输入密码:" pass
stty echo
[ -z $pass ] && echo "必须输入密码!!" && exit
useradd $name
echo "$pass" | passwd --stdin $name
'&>/dev/null
#2.添加若干个用户
#每个用户密码同用户名相同,而且要求,添加密码完成后不显示passwd命令的执行结果信息.
#每个用户添加后,都要展示用户某某已经添加成功.
#
'for i in $(cat people.txt)
do
id $i&>/dev/null
if [ $? != 0 ];then
useradd $i && echo "$i" | passwd --stdin $i &>/dev/null
echo "Add $i successfully."
else
echo "该用户已经存在!!" && exit
fi
done
'&>/dev/null
#3.利用for创建指定的多用户并添加统一密码,不显示passwd执行信息.
'for i in $(cat 关联文件/people.txt)
do
useradd $i
echo "123456" | passwd --stdin $i &>/dev/null
done'&>/dev/null
#4.利用while创建多用户,并统一密码.
'i=1
while [ $i -le 5 ]
do
useradd user$i
echo "123" | passwd --stdin user$i >/dev/null
let i++
done'&>/dev/null
#5.用户为空跳出,不手动设置密码默认为123456
#!/bin/bash
#
read -p "请输入用户名:" name
[ -z $name ] && exit
read -p "请输入密码:" pass
pass=${pass:-123456}
useradd $name
echo "$pass" | passwd --stdin $name
8.vim cai.sh
#!/bin/bash
#知识点:
#随机数利用RANDOM.
#while循环.
#read
#if
#增添场景对话
num=$[RANDOM%10]
i=0
while :
do
let i++
read -p "我的jj有多长,你摸一下:" cai
if [ $cai -eq $num ];then
echo "你好棒呀!!!,猜了$i次。"
exit
elif [ $cai -lt $num ];then
echo "太短啦!!妹妹!"
elif [ $cai -gt $num ];then
echo "太长啦!!妹妹!"
else
echo "你在说什么,我听不懂艾!"
fi
done
'read -p "我的jj有多长,你再给你一次机会:" cai
if [ $cai -eq $num ];then
echo "你好棒呀!!!"
exit
elif [ $cai -lt $num ];then
echo "我有这么小么!!妹妹!"
elif [ $cai -gt $num ];then
echo "奥,你太看得起我咯,没有那么大啦!!妹妹!"
else
echo "你在说什么,我听不懂艾!"
fi
read -p "我的jj有多长,再猜不对不让你吃啦:" cai
if [ $cai -eq $num ];then
echo "你好棒呀!!!"
exit
elif [ $cai -lt $num ];then
echo "我有这么小么!!妹妹!"
elif [ $cai -gt $num ];then
echo "奥,你太看得起我咯!!妹妹!"
else
echo "你在说什么,我听不懂艾!"
fi'
9. vim echc.sh
#!/bin/bash
cecho(){
echo -e "\033[$1m$2\033[0m"
}
10.vim for.sh
#!/bin/bash
# VARSION IS
#对for重要的组织形式:变量引用, 次数,值列表内容形式
for i in 1 2 3 4
do
echo $i
echo nb
done
for i in `ls /home`
do
echo $i
done
11.vim while.sh
#!/bin/bash
#基础
i=1
while [ $i -le 5 ]
do
echo $i
let i++
done
12.vim sleepwhile.sh
#!/bin/bash
#
while :
do
echo 'a'
echo 'b'
sleep 0.1
done
13.vim case.sh
#!/bin/bash
#
case $1 in
redhat )
echo "fedora";;
fedora )
echo "redhat";;
* )
echo "用法:$0 {redhat|fedora}"
exit 1esac
14.vim ip.sh
#!/bin/bash
#
i=0
while :
do
read -p "请输入IP,输入EOF 结束:" IP
[ $IP == EOF ]&& break
pool[$i]=$IP
let i++
done
echo "你输入的IP 有${pool[*]}"
echo "你输入了${#pool[*]}个IP"
echo "你输入的第十个IP是${pool[9]}"
15.ping.sh
vim
#!/bin/bash
#ping one IP
'ping -c2 $1 &>/dev/null
ping -c -i 0.2 -w 3 $1 &>/dev/null
if [ $? -eq 0 ];then
echo "$1网络可直达!!"
else
echo "$1网络不可达!!"
fi'&>/dev/null
#ping一个网段.
for IP in `seq 254`
do
ping -c 3 -i 0.2 -w 0.5 192.168.4.$IP &> /dev/null
if [ $? -eq 0 ];then
echo "Host 192.168.4.$IP is up."
else
echo "Host 192.168.4.$IP is down."
fi
done
16.vim rm.sh
#!/bin/bash
#
SHLINKS=/root/桌面/zx1/shell/关联文件
for i in `seq 10`
do
rm -rf $SHLINKS/$i.txt
done
17.vim rmuser.sh
#!/bin/bash
#
'
for i in $(cat 关联文件/people.txt)
do
userdel -r $i
echo "$i删除成功!!"
done'&>/dev/null
i=1
while [ $i -le 5 ]
do
userdel -r user$i
let i++
done
18.vim touch.sh
#!/bin/bash
for i in `seq $1`
do
touch $2/$i.txt
done
19.vim break.sh
#!/bin/bash
for i in {1..5}
do
if [ $i -eq 3 ];then
break #这里将break替换为continue,exit分别测试脚本执行效果
fi
echo $i
done
echo "程序结束"
20.vim vsftp.sh
#!/bin/bash
if [ $USER == root ];then
yum -y install vsftpd &> /dev/null #(只有管理员才有权限做)
systemctl start vsftpd
systemctl enable vsftpd
fi
echo "vsftpd is up !!"
阅读全文
0 0
- 运维之shell篇-----4.1-20例shell点子脚本
- 运维之shell篇-----5.20-40例shell点子脚本
- 运维之shell篇------1. Shell概述 、 编写及执行脚本 、 Shell变量
- Shell脚本之awk篇
- Shell脚本之sed篇
- Shell脚本之sed篇
- Shell脚本之awk篇
- Shell脚本之awk篇
- shell脚本之shell数组
- Shell脚本之循环
- shell脚本之gettop
- shell脚本之颜色
- shell脚本之find
- shell脚本---之入门
- shell脚本之find .
- Shell脚本之awk
- Shell脚本之sed
- Shell脚本之循环
- JSON传输数据加号变空格问题
- 将java代码批量转进行转码gbk 转 utf-8
- java 8 实战 (一)Lambda简介
- Linux的目录结构讲解及常用命令(一)
- Unity 使用 Unity 直接编译外部 DLL
- 运维之shell篇-----4.1-20例shell点子脚本
- Vue 2.0 动态组件
- 深度学习之前生
- 李开复给中国大学生的七封公开信(其五)
- java后台模拟post接口上传
- Redis 命令
- linux screen常见命令
- 线段树模板
- Struts 2 学习(一)