嗯 这快2个月里有学会了许多的东西 这次我写的是shell脚本

可能有很多的缺陷 但是我改善的 都是基于有了yum仓库的情况

这个是查看局域网内那台机器开放了ftp服务器

#!/bin/bash
#
[ -s /etc/ethers ] && cp -p /etc/ethers /etc/ethers.$(date +%Y%m%d%S)
for ip in 78.16.25.{1..20}; do
 arping -c 2 -w 1 -q $ip
done
arp -n | awk '/^78/ {print $1,$3}' >  /etc/ethers
#检查局域网内那台主机开了ftp服务
 rpm -q wget &>/dev/null
 [ $? -ne 0 ] && yum -y install wget &>/dev/null
 echo "一下主机开启了匿名ftp服务"
 for ip1 in $(awk '{print $1}' /etc/ethers); do
 wget -T 1 -t 1 -q ftp://$ip1
 [ $? -eq 0 ] && echo "$ip1"
done

这个脚本是显示你的服务器负载状态的  我把它的报警调低是为了快点看到它把报警信息写入到文件中

#!/bin/bash
#
DUG=$(df -hT |awk '/\/$/ {print $(NF-1)*1}')
CUG=$(mpstat |awk '/all/ {print int(100-$NF)}')
MUG=$(free -m | awk '/cache:/ {print int($3/($3+$4)*100)}')
[ -s /var/monitor.txt ] && cp -p /var/monitor.txt /var/monitor.txt.$(date +Y%m%d%H%M%S)
[ $DUG -ge 1 ] && echo "根分区磁盘使用率已达到 $DUG% " > /var/monitor.txt
[ $CUG -ge 1 ] && echo "CPU使用率已达到 $CUG%" >> /var/monitor.txt
[ $MUG -ge 1 ] && echo "内存使用率已达到 $MUG%" >> /var/monitor.txt

 

这个是安装vsftp服务的脚本 一共有3中配置 1.匿名ftp 2.本地用户ftp 3.虚拟用户ftp

#!/bin/bash
#
/etc/init.d/iptables stop &>/dev/null
setenforce 0 &>/dev/null
FTP="/etc/vsftpd"
cat << EOF
#------------------------------------------------#
#     1) 安装vsftpd匿名服务                     #
#     2) 安装vsftpd用户服务                     #
#     3) 安装vsftpd虚拟用户服务                 #
#     4)  修改虚拟用户密码    #
#     5) 卸载vsftpd服务                         #
#     6)  退出                                   #
#------------------------------------------------#
EOF
read -p "请输入你要安装的服务类型(1|2|3|4|5):"  NM
a() {
 rpm -qa | grep vsftpd &>/dev/null
if [ $? -eq 0 ]; then
 echo   "ftp服务已安装"
 exit 0
else
 echo   "ftp服务安装中,请稍等。。。。。。。"
 yum -y install vsftpd
 echo   "ftp服务安装完成"
# anonftp配置
 cp $FTP/vsftpd.conf $FTP/vsftpd.conf.bak &>/dev/null
 sed -i '/anon_up/ s/^#/ /g' $FTP/vsftpd.conf
 sed -i '27aanon_umask=022' $FTP/vsftpd.conf
 sed -i '/anon_mkdir/ s/^#/ /g' $FTP/vsftpd.conf
 sed -i '33aanon_other_write_enable=YES' $FTP/vsftpd.conf
 
#启动vsftpd服务
 /etc/init.d/vsftpd start
 chkconfig vsftpd on
 echo "ftp匿名服务配置完成" 
 
fi 
}
b() {
 rpm -qa | grep vsftpd &>/dev/null
if [ $? -eq 0 ]; then
 echo   "ftp服务已安装"
 exit 0
else
 echo   "ftp服务安装中,请稍等。。。。。。。"
 yum -y install vsftpd
 echo   "ftp服务安装完成"
 cp $FTP/vsftpd.conf $FTP/vsftpd.conf.bak &>/dev/null
#配置服务
 sed -i 's/local_umask=022/local_umask=077/g' $FTP/vsftpd.conf
 sed -i '/^#chroot_lo/s/^#/ /' $FTP/vsftpd.conf
#启动vsftpd服务
 /etc/init.d/vsftpd start
 chkconfig vsftpd on
 echo "ftp用户服务配置完成" 
fi
}
c() {
 rpm -qa |grep db4-utils &>/dev/null
if [ $? -eq 0 ] ; then
 echo "db4-utils已安装"
else
 echo “正在安装软件 请稍等。。。。。。”
 yum -y install db4-utils
 echo “安装完成”
fi
 rpm -qa | grep vsftpd &>/dev/null
if [ $? -eq 0 ]; then
 echo   "ftp服务已安装"
 exit 0
else
 echo   "ftp服务安装中,请稍等。。。。。。。"
 yum -y install vsftpd
 echo   "ftp服务安装完成"
 cp $FTP/vsftpd.conf $FTP/vsftpd.conf.bak &>/dev/null
 echo -e "1\n1\n2\n2\n3\n3" > /$FTP/vusers.list 
 db_load -T -t  hash -f $FTP/vusers.list $FTP/vusers.db
 chmod 600 $FTP/vusers.*
 useradd -d /var/ftpboot/ -s /bin/nologin virtual
 chmod 777 /var/ftpboot/
 echo -e "auth\trequired\tpam_userdb.so  db=/etc/vsftpd/vusers\naccount\trequired\tpam_userdb.so  db=/etc/vsftpd/vusers" > /etc/pam.d/vsftpd.vu
 sed -i '22aanon_umask=022' $FTP/vsftpd.conf
 sed -i 's/vsftpd$/vsftpd.vu/' $FTP/vsftpd.conf
 sed -i '$aguest_enable=YES\nguest_username=virtual' $FTP/vsftpd.conf
#启动ftp服务
 /etc/init.d/vsftpd start
 chkconfig vsftpd on
 echo "启动服务成功"

fi
for i in 1 2 3 ;do
 echo "$i 号用户 密码是 $i"
done


}
d() {
 rpm -qa | grep vsftpd &>/dev/null
if [ $? -eq 0 ];then
 yum -y remove vsftpd
 rm -rf /etc/vsftpd/ &>/dev/null
        rm -rf /var/ftp/ &>/dev/null
        echo   "vsftp服务以卸载完成"
else
 echo   "vsftp没有安装"
fi
}
e() {
while :
do
Z="/etc/vsftpd/vusers.list"
read -p "请输入你的账号:" zh
read -p "请输入你要修改的密码:" mm
cp $Z $Z.bak
case $zh in
        1)
        sed -i "2c$mm" $FTP/vusers.list
 ;;
 2)
 sed -i "4c$mm" $FTP/vusers.list
 ;; 
 3)
 sed -i "6c$mm" $FTP/vusers.list
 ;;
 *)
 for HOME in $(sed -n 'n;p' $Z) ; do
 echo "用户账号为 $HOME "
done
 ;;
esac
read -p "是否确定修改(y|n):" xg
 if [ $xg = n ]; then
 cp $Z.bak $Z
 echo "以取消"
 exit 0
fi
read -p "是否确定修改完成,确认修改请按(y|n):"  qd
 if [ $qd = y ]; then
 db_load -T -t  hash -f $FTP/vusers.list $FTP/vusers.db
 /etc/init.d/vsftpd restart
        echo "重启服务成功"
 echo "密码修改成功"
 sleep 2
 exit 0
fi
done
  
}

case  $NM in
 1)
 a
 ;;
 2)
 b
 ;;
 3)
 c
 ;;
 4)
 e
 ;;
 5)
 d
 ;;
 6)
 exit 0
 ;;
 *)
 echo "你的输入有误请重新输入"
esac
 
 谢谢  有什么问题的话 留言告诉我一下 我马上就会改

 

posted @ 2017-05-11 15:38  卓~卓  阅读(127)  评论(0编辑  收藏  举报