CentOS 6.4 Linux vsftpd shell管理系统脚本完整版

#!/bin/bashecho “***********************************************************************************”echo “**”echo “*东妮FTP服务器管理系统 V1.1*”echo “**”echo “***********************************************************************************”echo “*用户管理*”echo “**”echo “*选择 0、修改用户密码选择 4、查看所有FTP用户*”echo “*选择 1、查询用户选择 5、查看用户磁盘限额*”echo “*选择 2、添加用户(默认密码:用户名@123) 选择 6、修改用户磁盘限额*”echo “*选择 3、删除用户*”echo “**”echo “***********************************************************************************”echo “*日志管理*”echo “**”echo “*选择 7、查询某用户某日期某操作动作 选择 10、查看当前所有导出日志文件名*”echo “*选择 8、查询某日期所有用户操作记录 选择 11、查看提定名称的导出日志*”echo “*选择 9、查询某用户所有日期操作记录*”echo “**”echo “***********************************************************************************”echo “*管理员操作审计*”echo “**”echo “*选择 15、查询某管理员某天操作记录选择 17、查看指定文件名记录*”echo “*选择 16、查询所有管理员操作文件名选择 18、导出提定操作文件到Win*”echo “**”echo “***********************************************************************************”echo “*网络管理*”echo “**”echo “*选择 20、查看网络状态选择 25、禁用防火墙*”echo “*选择 21、重启网络选择 26、ping测试*”echo “*选择 22、禁用网络*”echo “*选择 23、查看防火墙状态*”echo “*选择 24、重启防火墙*”echo “**”echo “***********************************************************************************”echo “*系统管理*”echo “**”echo “*选择 30、查询CPU、内存使用情况选择 35、重启操作系统*”echo “*选择 31、查询当前磁盘状态选择 36、计划重启*”echo “*选择 32、查询系统当前时间选择 37、计划关机*”echo “*选择 33、修改系统当前日期时间选择 38、取消计划关机或重启*”echo “*选择 34、关闭操作系统*”echo “**”echo “***********************************************************************************”echo “*高级权限管理*”echo “**”echo “*选择 40、只能下载选择 43、完全权限*”echo “*选择 41、只能上传选择 44、查看用户权限*”echo “*选择 42、只能下载与上传选择 45、单用户管理多用户*”echo “**”echo “***********************************************************************************”echo “*其它功能*”echo “**”echo “*选择 46、查看当前在线用户*”echo “**”echo “***********************************************************************************”read -p “请选择您要做的操作:” caozuocase $caozuo in0) read -p “请输入您要修改密码的用户名: ” selectuserwhile [ ! “$selectuser” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectuser` ]doread -p “对不起,您输入的用户名$selectuser不存在,请重新输入要查询的用户名,退出请按q键: ” selectuserif [ “$selectuser” ] && [ “$selectuser” == “q” ];thenexitfidonepasswd $selectuserecho “记录: 管理员$adminroot于$timedate1修改用户$selectuser密码” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “您已经成功修改用户$selectuser的密码,按回车键继续操作” var;;1) read -p “请输入您要查询的用户名: ” selectuserwhile [ ! “$selectuser” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectuser` ]doecho “记录: 管理员$adminroot于$timedate1查询用户$selectuser” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “对不起,查询的用户名$selectuser不存在,请重新输入要查询的用户名,退出请按q键: ” selectuserif [ “$selectuser” ] && [ “$selectuser” == “q” ];thenexitfidoneecho “记录: 管理员$adminroot于$timedate1查询用户$selectuser” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “您查询的用户$selectuser为FTP用户,按回车键继续” var;;2) read -p “请输入您需要添加的用户名: ” adduserwhile [ ! “$adduser” ] || ( [ “$adduser” ] && [ `more /etc/vsftpd/chroot_list | grep -w $adduser` ] )doread -p “对不起,您的操作有误,用户名不能为空,或您添加的用户已经存在,请重新输入要查询的用户名,退出请按q键: ” adduserif [ “$adduser” ] && [ “$adduser” == “q” ];thenexitfidoneuseradd $adduser -d /opt/vsftp/$adduser -s /sbin/nologinchmod -R 777 /opt/vsftp/$adduserecho $adduser@123 | passwd –stdin $adduserecho “$adduser” >> /etc/vsftpd/chroot_listsetquota -u $adduser 512000 614400 0 0 /optcp /etc/vsftpd/vconf/moban /etc/vsftpd/vconf/$adduserecho “记录: 管理员$adminroot于$timedate1添加用户$adduser” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “您添加用户$adduser成功,按回车键继续” var;; 3) read -p “请输入您需要删除的用户名: ” deluserwhile [ ! “$deluser” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $deluser` ]doread -p “对不起,您输入的用户名$deluser不存在,请重新输入要删除的用户名,退出请按q键: ” deluserif [ “$deluser” ] && [ “$deluser” == “q” ];thenexitfidoneuserdel $deluserrm -rf /opt/vsftp/$deluser/.gnome2rm -rf /opt/vsftp/$deluser/.bashrcrm -rf /opt/vsftp/$deluser/.bash_profilerm -rf /opt/vsftp/$deluser/.bash_logoutrm -rf /etc/vsftpd/vconf/$deluser#umount /opt/vsftp/$deluser/public#rm -rf /opt/vsftp/$deluser/publicumount /opt/vsftp/$delusermv /opt/vsftp/$deluser /opt/vsftp/bak$deluserrm -rf /opt/vsftp/$delusersed -i “/$deluser/d” /etc/vsftpd/chroot_listsed -i “/$deluser/d” /etc/vsftpd/mountuser.sh#sed -i “/$deluser/d” /etc/vsftpd/mountpublic.shecho “记录: 管理员$adminroot于$timedate1删除用户$deluser” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “您已经成功删除用户$deluser,按回车键继续” var;; 4) more /etc/vsftpd/chroot_listread -p “以上为所有FTP用户,按回车键继续” var;; 5) read -p “请输入您要查询限额的用户名: ” selectquotawhile [ ! “$selectquota” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectquota` ]doread -p “对不起,您输入的用户名$selectquota不存在,请重新输入要查询限额的用户名,退出请按q键: ” selectquotaif [ “$selectquota” ] && [ $selectquota == q ];thenexitfidonequota $selectquota | sed -n ‘3p’ | echo “当前用户的软限制为: `awk ‘{print $3}’`KB”quota $selectquota | sed -n ‘3p’ | echo “当前用户的硬限制为: `awk ‘{print $4}’`KB”echo “记录: 管理员$adminroot于$timedate1查询用户$selectquota磁盘限额信息” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “当前用户的磁盘限额如上,按回车键继续” var;; 6) read -p “请输入您要修改限额的用户名: ” revisequotawhile [ ! “$revisequota” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $revisequota` ]doread -p “对不起,您输入的用户名$revisequota不存在,请重新输入要查询限额的用户名,退出请按q键: ” revisequotaif [ “$revisequota” ] && [ $revisequota == q ];thenexitfidonequota $revisequota | sed -n ‘3p’ | echo “修改前用户的软限制为: `awk ‘{print $3}’`KB”quota $revisequota | sed -n ‘3p’ | echo “修改前用户的硬限制为: `awk ‘{print $4}’`KB”read -p “请修改您要修改的用户软限制值,默认单位为KB: ” quota1while [ ! $quota1 ];doread -p “对不起,修改用户的软限制值不能为空,请重新输入软限制值,退出请按q键: ” quota1if [ $quota1 ];thenif [ $quota1 == q ];thenexitfifidoneread -p “请修改您要修改的用户硬限制值,默认单位为KB: ” quota2while [ ! $quota2 ] || [ $quota2 -lt $quota1 ];doread -p “对不起,修改用户的硬限制值不能为空,且硬限制的值不能小于软限制的值,请重新输入硬限制值,退出请按q键: ” quota2if [ “$quota2” ] && [ “$quota2” == “q” ];thenexitfidonesetquota -u $revisequota $quota1 $quota2 0 0 /optecho “记录: 管理员$adminroot于$timedate1修改用户$revisequota软限制为: $quota1 硬限制为: $quota2” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″quota $revisequota | sed -n ‘3p’ | echo “修改后用户的软限制为: `awk ‘{print $3}’`KB”quota $revisequota | sed -n ‘3p’ | echo “修改后用户的硬限制为: `awk ‘{print $4}’`KB”read -p “当前用户修改后磁盘限额如上,按回车键继续” var;;7) read -p “请输入您要查询的用户名: ” selectuserwhile [ ! $selectuser ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectuser` ]doread -p “对不起,您查询的用户名$selectuser不存在,请重新输入,退出请按q键: ” selectuserif [ “$selectuser” ] && [ “$selectuser” == “q” ];thenexitfidoneread -p “请输入您要查询的日期(格式:2013-07-11 08:32:21): ” datetime3while [ ! $datetime3 ]doread -p “对不起您的输入有误,日期时间不能空,请重新输入: ” datetime3doneread -p “请输入您要查询的操作动作(DELETE、MKDIR、UPLOAD、RMDIR、DOWNLOAD、LOGIN): ” opreatewhile [ ! $opreate ]doread -p “对不起,操作动作不能为空,请重新输入: ” opreatedonewhile ( [ $opreate != ‘MKDIR’ ] && [ $opreate != ‘UPLOAD’ ] && [ $opreate != ‘DELETE’ ] && [ $opreate != ‘LOGIN’ ] && [ $opreate != ‘RMDIR’ ] && [ $opreate != ‘DOWNLOAD’ ] )doread -p “对不起您输入的操作动作有误,请重新输入: ” opreatedoneecho ” 操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容” > /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlsmore /var/log/messages | grep $selectuser] | grep $opreate | grep $datetime3 | awk ‘{print $1″|”$2″|”$5″|”$6″|”$7″|”$9″|”$10 }’ >> /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/://3’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/”//g’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/\[//’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/]//’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/,//g’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/UPLOAD/上传资料/g’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/DELETE/删除文件/g’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/LOGIN/用户登录/g’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/RMDIR/删除目录/g’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/MKDIR/新建目录/g’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/DOWNLOAD/下载资料/g’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/OK/成功/g’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlssed -i ‘s/FAIL/失败/g’ /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlsecho “记录: 管理员$adminroot于$timedate1查询用户$selectuser的操作动作$opreate日志” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “直接查看请按a键,下载到Win查看请按b键: ” abjianif [ “$abjian” == “a” ];thenmore /opt/vsftp/ftplog/”$timedate1″”$selectuser””$opreate”.xlsread -p “以上为指定用户的操作日志,按回车键继续操作” varelif [ “$abjian” == “b” ];thencd /opt/vsftp/ftplogsz “$timedate1″”$selectuser””$opreate”.xlsread -p “指定用户的操作日志已经成功导出到Win,按回车键继续操作” varfi;;8) read -p “请输入您要查询的日期(格式:2012-09-12): ” riqiwhile [ ! $riqi ]doread -p “对不起日期不能为空,请重新输入(格式:2012-09-12): ” riqidonewhile [ `echo $riqi | grep -q ‘^[1-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$’ && echo ! aa || echo aa` ]doread -p “您输入的日期格式错误,请重新输入(格式:2012-09-12): ” riqidoneread -p “请输入您要查询的时间,(格式:23:12): ” shijianif [ ! $shijian ];thenecho ” 操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容” > /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlsmore /var/log/messages | grep $riqi | grep vsftpd | awk ‘{print $1″|”$2″|”$5″|”$6″|”$7″|”$9″|”$10 }’ >> /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/://3’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/”//g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/\[//’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/]//’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/,//g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/UPLOAD/上传资料/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/DELETE/删除文件/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/LOGIN/用户登录/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/RMDIR/删除目录/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/MKDIR/新建目录/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/DOWNLOAD/下载资料/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/OK/成功/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlssed -i ‘s/FAIL/失败/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlsecho “记录: 管理员$adminroot于$timedate1查询日期为:$riqi的所有用户操作记录” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “直接查看请按a键,下载到Win查看请按b键: ” abjianif [ “$abjian” == “a” ];thenmore /opt/vsftp/ftplog/”$timedate1″查询”$riqi”.xlsread -p “以上为指定用户的操作日志,按回车键继续操作” varelif [ “$abjian” == “b” ];thencd /opt/vsftp/ftplogsz “$timedate1″查询”$riqi”.xlsread -p “指定用户的操作日志已经成功导出到Win,按回车键继续操作” varfielsewhile [ `echo $shijian | grep -q ‘^[0-9][0-9]:[0-9][0-9]$’ && echo ! aa || echo aa` ]doread -p “您输入的时间格式不正确,请重新输入(格式:23:12): ” shijiandoneshi=`echo ${shijian:0:2}`jian=`echo ${shijian:${#shijian}-2:${#shijian}}`echo “操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容” > /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”more /var/log/messages | grep $riqi | grep $shijian | grep vsftpd | awk ‘{print $1″|”$2″|”$5″|”$6″|”$7″|”$9″|” $10 }’ >> /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/://3’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/”//g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/\[//’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/]//’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/,//g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/UPLOAD/上传资料/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/DELETE/删除文件/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/LOGIN/用户登录/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/RMDIR/删除目录/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/MKDIR/新建目录/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/DOWNLOAD/下载资料/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/OK/成功/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”sed -i ‘s/FAIL/失败/g’ /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”echo “记录: 管理员$adminroot于$timedate1查询日期为:$riqi时间为:$shijian的所有用户操作记录” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “直接查看请按a键,下载到Win查看请按b键: ” abjianif [ “$abjian” == “a” ];thenmore /opt/vsftp/ftplog/”$timedate1″查询”$riqi”-“$shi”.”$jian”.xlsread -p “以上为指定用户的操作日志,按回车键继续操作” varelif [ “$abjian” == “b” ];thencd /opt/vsftp/ftplogsz “$timedate1″查询”$riqi”-“$shi”.”$jian”.xlsread -p “指定用户的操作日志已经成功导出到Win,按回车键继续操作” varfifi;;9) read -p “请输入您要查询的用户名: ” selectuserwhile [ ! $selectuser ]doread -p “对不起,查询的用户名不能为空,请重新输入要查询的用户名: ” selectuserdonewhile [ ! `more /etc/vsftpd/chroot_list | grep -o $selectuser` ]doread -p “对不起,您查询的用户名不存在,请重新输入要查询的用户名: ” selectuserdoneecho “操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容” > /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlsmore /var/log/messages | grep $selectuser | grep vsftpd | awk ‘{print $1 “|” $2 “|” $5 “|” $6 “|”$7 “|” $9 “|” $10 }’ >> /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/://3’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/”//g’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/\[//’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/]//’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/,//g’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/UPLOAD/上传资料/g’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/DELETE/删除文件/g’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/LOGIN/用户登录/g’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/RMDIR/删除目录/g’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/MKDIR/新建目录/g’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/DOWNLOAD/下载资料/g’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/OK/成功/g’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlssed -i ‘s/FAIL/失败/g’ /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlsecho “记录: 管理员$adminroot于$timedate1查询日期为:$selectuser的所有用户操作记录” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “直接查看请按a键,下载到Win查看请按b键: ” abjianif [ “$abjian” == “a” ];thenmore /opt/vsftp/ftplog/”$timedate1″查询”$selectuser”.xlsread -p “以上为指定用户的操作日志,按回车键继续操作” varelif [ “$abjian” == “b” ];thencd /opt/vsftp/ftplogsz “$timedate1″查询”$selectuser”.xlsread -p “指定用户的操作日志已经成功导出到Win,按回车键继续操作” varfi;;10) ls /opt/vsftp/ftplog/ | moreecho “记录: 管理员$adminroot于$timedate1查看了所有导出的用户操作日志文件名” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为所有已导出用户操作日志文件名,按回车键继续” var;;11) read -p “请输入您要查看的用户操作日志文件名: ” opreatefilewhile [ ! $opreatefile ]doread -p “对不起,您输入的文件名不能为空,请重新输入: ” opreatefiledonefilelist=`ls /opt/vsftp/ftplog/ | grep -w ^\$opreatefile\$`while [ “$filelist” != “$opreatefile” ]doread -p “对不起,你输入的文件名不存在,请重新输入文件名: ” opreatefilefilelist=`ls /opt/vsftp/ftplog/ | grep -w ^\$opreatefile\$`donemore /opt/vsftp/ftplog/$opreatefileecho “记录: 管理员$adminroot于$timedate1查看了用户操作日志文件:$opreatefile” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为您查询的操作日志文件$opreatefile全部内容,按回车键继续” var;;15) read -p “请输入审计管理员用户名: ” auditadminread -p “请输入审计管理员密码: ” -s auditpasswdwhile [ “$auditadmin” != “admin45930” ] || [ “$auditpasswd” != “SOHU123” ]doread -p “对不起,您输入的用户名或密码不正确,请重新输入审计管理员用户名: ” auditadminread -p “对不起,您输入的用户名或密码不正确,请重新输入审计管理员密码: ” -s auditpasswddoneread -p “请输入您要查询的管理员名字: ” rootadminwhile [ ! $rootadmin ]doread -p “对不起管理员名字不能为空,请重新输入: ” rootadmindoneread -p “请输入您要查询的操作日期(格式:20130711): ” opreatetimewhile [ ! $opreatetime ]doread -p “对不起操作日期不能为空,请重新输入: ” opreatetimedonewhile [ ! `ls /opt/vsftp/adminlog/* | grep “$rootadmin””$opreatetime”` ]doread -p “对不起,您查询的操作信息不存在,按回车键继续: ” varexitdonemore /opt/vsftp/adminlog/$rootadmin$opreatetimeecho “记录: 审计管理员$auditadmin于$timedate1审计了管理员$rootadmin操作记录” >> /opt/vsftp/adminlog/”$auditadmin””$timedate2″read -p “以上为管理员$rootadmin于$opreatetime操作记录,按回车键继续” var;;16) read -p “请输入审计管理员用户名: ” auditadminread -p “请输入审计管理员密码: ” -s auditpasswdwhile [ “$auditadmin” != “admin45930” ] || [ “$auditpasswd” != “SOHU123” ]doread -p “对不起,您输入的用户名或密码不正确,请重新输入审计管理员用户名: ” auditadminread -p “对不起,您输入的用户名或密码不正确,请重新输入审计管理员密码: ” -s auditpasswddonels /opt/vsftp/adminlog/ | moreecho “记录: 审计管理员$auditadmin于$timedate1查询了所有管理员操作记录文件” >> /opt/vsftp/adminlog/”$auditadmin””$timedate2″read -p “以上为所有管理员操作记录文件,按回车键继续” var;;17) read -p “请输入审计管理员用户名: ” auditadminread -p “请输入审计管理员密码: ” -s auditpasswdwhile [ “$auditadmin” != “admin45930” ] || [ “$auditpasswd” != “SOHU123” ]doread -p “对不起,您输入的用户名或密码不正确,请重新输入审计管理员用户名: ” auditadminread -p “对不起,您输入的用户名或密码不正确,请重新输入审计管理员密码: ” -s auditpasswddoneread -p “请输入您要查看的管理员操作文件: ” opreatefilefilelist=`ls /opt/vsftp/adminlog/ | grep -w ^\$opreatefile\$`while [ “$filelist” != “$opreatefile” ]doread -p “对不起,你输入的文件名不存在,请重新输入文件名: ” opreatefilefilelist=`ls /opt/vsftp/adminlog/ | grep -w ^\$opreatefile\$`donemore /opt/vsftp/adminlog/$opreatefileecho “记录: 审计管理员$rootadmin于$timedate1审计了$opreatefile管理员操作文件” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为您查询的操作日志文件$opreatefile全部内容,按回车键继续” var;;18) read -p “请输入审计管理员用户名: ” auditadminread -p “请输入审计管理员密码: ” -s auditpasswdwhile [ “$auditadmin” != “admin45930” ] || [ “$auditpasswd” != “SOHU123” ]doread -p “对不起,您输入的用户名或密码不正确,请重新输入审计管理员用户名: ” auditadminread -p “对不起,您输入的用户名或密码不正确,请重新输入审计管理员密码: ” -s auditpasswddoneread -p “请输入您要查看的管理员操作文件: ” opreatefilefilelist=`ls /opt/vsftp/adminlog/ | grep -w ^\$opreatefile\$`while [ “$filelist” != “$opreatefile” ]doread -p “对不起,你输入的文件名不存在,请重新输入文件名: ” opreatefilefilelist=`ls /opt/vsftp/adminlog/ | grep -w ^\$opreatefile\$`donecd /opt/vsftp/adminlog/sz $opreatefileecho “记录: 审计管理员$rootadmin于$timedate1导出$opreatefile管理员操作文件” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “您已经成功导出$opreatefile管理员操作文件,按回车键继续” var;;20) service network statusecho “记录: 管理员$adminroot于$timedate1查看网络状态” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为当前网络状态,按回车键继续” var;;21) service network restartecho “记录: 管理员$adminroot于$timedate1重启网络” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为网络重启状态,如不正常,请联系超级管理员,按回车键继续” var;;22) service network stopecho “记录: 管理员$adminroot于$timedate1禁用网络” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为网络禁用状态,如不正常,请联系超级管理员,按回车键继续” var;;23) service iptables statusecho “记录: 管理员$adminroot于$timedate1查看防火墙状态” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为当前防火墙状态,如不正常,请联系超级管理员,按回车键继续” var;;24) service iptables restartecho “记录: 管理员$adminroot于$timedate1重启防火墙” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为防火墙重启状态,如不正常,请联系超级管理员,按回车键继续” var;;25) service iptables stopecho “记录: 管理员$adminroot于$timedate1禁用防火墙” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为防火墙禁用状态,如不正常,请联系超级管理员,按回车键继续” var;;26) read -p “请输入您要ping的IP地址: ” pingIPwhile [ ! $pingIP ]doread -p “对不起,IP地址不能为空,请重新输入: ” pingIPdoneecho “记录: 管理员$adminroot于$timedate1对IP:$pingIP进行了连通性测试” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″ping -c 5 $pingIPread -p “以上为连通性测试结果,按回车键继续” var;;30) awk ‘$1==”cpu”{Total=$2+$3+$4+$5+$6+$7;print “当前剩余CPU: ” $5/Total*100″% \n当前已使用CPU: ” (Total-$5)*100/Total”%”}’ </proc/statecho “系统最大内存:`free -m | grep Mem | awk ‘{print $2}’`”echo “用户已经内存:`free -m | grep Mem | awk ‘{print $3}’`”echo “剩余可用内存:`free -m | grep Mem | awk ‘{print $4}’`”echo “系统最大虚拟内存:`free -m | grep Swap | awk ‘{print $2}’`”echo “用户已经虚拟内存:`free -m | grep Swap | awk ‘{print $3}’`”echo “剩余可用虚拟内存:`free -m | grep Swap | awk ‘{print $4}’`”echo “记录: 管理员$adminroot于$timedate1查看了CPU与内存的使用情况” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为当前系统CPU内存使用情况,按回车键继续” var;;31) df | grep /dev/sda5 | echo “存储空间已用: `awk ‘{print $3}’`”df | grep /dev/sda5 | echo “存储空间可用: `awk ‘{print $4}’`”df | grep /dev/sda5 | echo “已用百分比:`awk ‘{print $5}’`”echo “记录: 管理员$adminroot于$timedate1查看了存储空间使用情况” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为当前存储空间使用情况,按回车键继续” var;;32) dateecho “记录: 管理员$adminroot于$timedate1查看了当前系统时间” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为当前系统时间,按回车继续” var;;33) read -p “请输入要修改的日期时间(格式:2013-07-11 20:22:11)” revisetimewhile [ ! “$revisetime” ]doread -p “对不起,修改时间不能为空,请重新输入: ” revisetimedonedate -s “$revisetime”echo “记录: 管理员$adminroot于$timedate1修改系统时间为$revisetime” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “以上为修改后时间,按回车键继续” var;;34) read -p “你真的要关机吗?是请按y,否则按q键退出: ” YESif [ $YES == y ];thenecho “记录: 管理员$adminroot于$timedate1关闭服务器” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″shutdown -h nowelif [ $YES == q ];thenecho “记录: 管理员$adminroot于$timedate1退出了关闭服务器操作” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″exitfi;;35) read -p “你真得要重启吗?是请按y,否则按q键退出: ” YESif [ $YES == y ];thenecho “记录: 管理员$adminroot于$timedate1重启服务器” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″shutdown -r nowelif [ $YES == q ];thenecho “记录: 管理员$adminroot于$timedate1退出了重启服务器操作” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″exitfi;;36) read -p “请输入你计划关机时间,以分钟为单位: ” sececho “记录: 管理员$adminroot于$timedate1设置计划关机任务于$sec分钟后关闭服务器” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″shutdown -h +$sec &read -p “您已计划$sec分钟后关闭服务器,按回车键继续” var;;37) read -p “请输入你计划重启时间,以分钟为单位: ” sececho “记录: 管理员$adminroot于$timedate1设置计划重启任务于$sec分钟后重启服务器” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″shutdown -r +$sec &read -p “您已计划$sec分钟后重启服务器,按回车键继续” var;;38) shutdown -cecho “记录: 管理员$adminroot于$timedate1取消了计划任务重启或关闭服务器的操作” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″read -p “您已取消重启关机服务器计划,按回车键继续” var;;40) read -p “请输入您要修改权限的用户名: ” xiugaiuserwhile [ ! “$xiugaiuser” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $xiugaiuser` ]doread -p “对不起,您输入的用户名$xiugaiuser不存在,请重新输入用户名,退出请按q键: ” xiugaiuserif [ “$xiugaiuser” ] && [ $xiugaiuser == q ];thenexitfidonesed -i “s/^#cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiusersed -i “s/^cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/#cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiusersed -i “s/^cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/#cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiuserread -p “您已成功修改$xiugaiuser权限为只能下载权限,按回车键继续” varecho “记录: 管理员$adminroot于$timedate1修改$xiugaiuser权限为只能下载权限” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″;;41) read -p “请输入您要修改权限的用户名: ” xiugaiuserwhile [ ! “$xiugaiuser” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $xiugaiuser` ]doread -p “对不起,您输入的用户名$xiugaiuser不存在,请重新输入用户名,退出请按q键: ” xiugaiuserif [ “$xiugaiuser” ] && [ $xiugaiuser == q ];thenexitfidonesed -i “s/^cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/#cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiusersed -i “s/^cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/#cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiusersed -i “s/^#cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiuserread -p “您已成功修改$xiugaiuser权限为只能上传与新建,按回车键继续” varecho “记录: 管理员$adminroot于$timedate1修改$xiugaiuser权限为只能上传与新建” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″;;42) read -p “请输入您要修改权限的用户名: ” xiugaiuserwhile [ ! “$xiugaiuser” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $xiugaiuser` ]doread -p “对不起,您输入的用户名$xiugaiuser不存在,,请重新输入用户名,退出请按q键: ” xiugaiuserif [ “$xiugaiuser” ] && [ $xiugaiuser == q ];thenexitfidonesed -i “s/^cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/#cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiusersed -i “s/^cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/#cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiusersed -i “s/^#cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiuserread -p “您已成功修改$xiugaiuser权限为只能下载与上传新建,按回车键继续” varecho “记录: 管理员$adminroot于$timedate1修改$xiugaiuser权限为只能下载与上传新建” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″;;43) read -p “请输入您要修改权限的用户名: ” xiugaiuserwhile [ ! “$xiugaiuser” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $xiugaiuser` ]doread -p “对不起,您输入的用户名$xiugaiuser不存在,请重新输入用户名,退出请按q键: ” xiugaiuserif [ “$xiugaiuser” ] && [ $xiugaiuser == q ];thenexitfidonesed -i “s/^cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/#cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiusersed -i “s/^cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/#cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiusersed -i “s/^cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/#cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g” /etc/vsftpd/vconf/$xiugaiuserread -p “您已成功修改$xiugaiuser权限为完全权限,按回车键继续” varecho “记录: 管理员$adminroot于$timedate1修改$xiugaiuser权限为完全权限” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″;;44) read -p “请输入您要查询权限的用户名: ” ftpuserwhile [ ! “$ftpuser” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $ftpuser` ]doread -p “对不起,您输入的用户名$ftpuser不存在,请重新输入用户名,退出请按q键: ” ftpuserif [ “$ftpuser” ] && [ $ftpuser == q ];thenexitfidonenumber1=`more /etc/vsftpd/vconf/$ftpuser | grep ^cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER`number2=`more /etc/vsftpd/vconf/$ftpuser | grep ^cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER`number3=`more /etc/vsftpd/vconf/$ftpuser | grep ^cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER`number4=`more /etc/vsftpd/vconf/$ftpuser | grep ^write_enable=YES`if [ “$number1” ];thenread -p “用户$ftpuser只能上传下载新建,按回车键继续操作” varelif [ “$number2” ];thenread -p “用户$ftpuser只能下载,按回车键继续操作” varelif [ “$number3” ];thenread -p “用户$ftpuser只能上传新建,按回车键继续操作” varelif [ “$number4” ];thenread -p “用户$ftpuser具有完全权限,按回车键继续操作” varfi;;45) read -p “请输入您宿主用户名: ” ftpuserwhile [ ! “$ftpuser” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $ftpuser` ]doread -p “对不起,您输入的宿主用户$ftpuser不存在,请重新输入,退出请按q键: ” ftpuserif [ “$ftpuser” ] && [ $ftpuser == q ];thenexitfidoneread -p “请输入您的寄宿用户名: ” ftpuser1while [ ! “$ftpuser1” ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $ftpuser1` ]doread -p “对不起,您输入寄宿用户$ftpuser不存在,请重新输入,退出请按q键: ” ftpuser1if [ “$ftpuser” ] && [ $ftpuser == q ];thenexitfidone#touch /opt/vsftp/$ftpuser1/.$ftpuser1#chattr +a /opt/vsftp/$ftpuser1/.$ftpuser1mkdir -p /opt/vsftp/$ftpuser/$ftpuser1mount –bind /opt/vsftp/$ftpuser1 /opt/vsftp/$ftpuser/$ftpuser1chmod -R 777 /opt/vsftp/$ftpuser/$ftpuser1echo “mount –bind /opt/vsftp/$ftpuser1 /opt/vsftp/$ftpuser/$ftpuser1” >> /etc/vsftpd/mountuser.shread -p “您已经成功将用户$ftpuser1挂载到$ftpuser里,按回车键继续操作” varecho “记录: 管理员$adminroot于$timedate1挂载用户$ftpuser1到$ftpuser” >> /opt/vsftp/adminlog/”$adminroot””$timedate2″;;46) read -p “请选择的功能正在开发中,请回车键继续” var ;;*) read -p “请选择的功能正在开发中,请回车键继续” var;;

本文出自 “东妮学IT” 博客,谢绝转载!

却坐在不足一平米的椅子上。

CentOS 6.4 Linux vsftpd shell管理系统脚本完整版

相关文章:

你感兴趣的文章:

标签云: