Linux Ubuntu系统管理员维护脚本

 实现的功能:

  • 统计系统中各个用户的磁盘的占用情况,并打印占用磁盘空间最大的用户名;
  • 遍历搜索用户目录中最大的某一个文件,并打印该文件名及其字节数
  • 查询指定用户目录下的所有C++源程序(包括*.cpp,*.h),统计出总共的代码行数
  • 查询某个用户是否就在线,并且打印在线的终端个数
  • 查询,打开和关闭FTP,Apache网络服务

代码:命名为manage.sh

function main
{
	clear
	echo -e "---------------------------"
	echo -e "\033[33;1m 系统管理员维护脚本 \033[0m"
	echo
	echo -e "\033[31;1m 按任意键继续>>>\033[0m"
	echo -e "---------------------------"
	read a
	case "$a" in
	*)
		Menu;;
	esac
}


function Menu
{
	clear
	echo "---------------------------"
	echo -e "\033[33;1m  系统管理员维护脚本 \033[0m"
	echo 
	echo 
	echo  -e "\033[31;1m 0:退出系统 \033[0m"
	echo  -e "\033[31;1m 1:用户磁盘管理脚本模块 \033[0m"
	echo  -e "\033[31;1m 2:目录文件管理模块 \033[0m"
	echo  -e "\033[31;1m 3:C++文件管理模块 \033[0m"
	echo  -e "\033[31;1m 4:终端管理脚本模块 \033[0m"
	echo  -e "\033[31;1m 5:网络服务管理模块 \033[0m"
	echo -e "-----------------------------"
        read -p "请输入您的操作>>>" a
	
	
	case "$a" in 
	0)
		return 0;;
	1)
		CiPan;;
	2)
		MuLu;;
	3)
		CFile;;
	4)	
		ZhonD;;
	5)
		Net;;
	*)
		echo  -e "\033[31;1m 错误输入,请重新输入>>> \033[0m"
		read -p ">>>>>>>>" b
		case "$b" in
		*)
			Menu;;
		esac
	esac
}
#统计系统中各个用户的磁盘的占用情况,并打印占用磁盘空间最大的用户名;
function CiPan
{
	clear
	echo "------------------------------------------"
	echo -e "\033[33;1m 各个用户磁盘占用情况如下:\033[0m"
	df -a $HOME
	echo -e "\033[33;1m 占用磁盘空间最大的用户名为:\033[0m"
	df -a $HOME| sort -n -r| head -n 1
	echo "-------------------------------------------"
	echo -e "\033[31;1m 按任意键继续>>>\033[0m"
	echo -e "-----------------------------------------"
	read a
	case "$a" in
	*)
		Menu;;
	esac
	
}
#遍历搜索用户目录中最大的某一个文件,并打印该文件名及其字节数
function MuLu
{
	clear
	echo -e "\033[33;1m Home目录下的最大一个文件及其相关信息:\033[0m"
	du -a $HOME -h|sort -n -r| head -n 1
	echo -e "\033[31;1m 按任意键继续>>>\033[0m"
	echo -e "-----------------------------------------"
	read a
	case "$a" in
	*)
		Menu;;
	esac
}
#查询指定用户目录下的所有C++源程序(包括*.cpp,*.h),统计出总共的代码行数
function CFile
{
	clear
	echo -e "\033[33;1m Home目录下的C++源程序的总共代码行数 \033[0m"
	find $HOME -name "*.cpp" -o -name "*.h"|xargs grep '^.' |wc -l
	echo -e "\033[31;1m 按任意键继续>>>\033[0m"
	echo -e "-----------------------------------------"
	read a
	case "$a" in
	*)
		Menu;;
	esac
	
}


#查询某个用户是否就在线,并且打印在线的终端个数
function ZhonD
{
	clear
	echo -e "\033[33;1m 请输入所要查询的用户名:\033[0m"
	read b
	who -q >$HOME/get.txt
	echo -e "\033[38;1m 以下文件为所有登录在线用户的内容 \033[0m"
	cat $HOME/get.txt
	echo -e "\033[38;1m 终端个数为:\033[0m"
	who | wc -l 
	echo -e "\033[31;1m 按任意键继续>>>\033[0m"
	echo -e "-----------------------------------------"
	read a
	case "$a" in
	*)
		Menu;;
	esac
}
#查询,打开和关闭FTP,Apache网络服务
function Net
{
	clear
	echo "---------------------------"
	echo -e "\033[33;1m 网络服务管理 \033[0m"
	echo 
	echo -e "\033[31;1m 0.返回主界面 \033[0m"
	echo -e "\033[31;1m 1.查询FTP服务 \033[0m"
	echo -e "\033[31;1m 2.查询Apache服务 \033[0m"
	echo -e "\033[31;1m 3.打开FTP服务 \033[0m"
	echo -e "\033[31;1m 4.打开Apache服务 \033[0m"
	echo -e "\033[31;1m 5.关闭FTP服务 \033[0m"
	echo -e "\033[31;1m 6.关闭Apache服务 \033[0m"
	echo -e "\033[31;1m 请选择您的操作>>>\033[0m"
	echo "-------------------------------"
	read  -p ">>>>>>" a
	case "$a" in
	0)
		Menu;;
	1)
		ftp ?;;
	2)
		cat ./etc/init.d/apache2;;
	3)
		ftp open;;
	4)
		./etc/init.d/apache2 restart;;
	5)
		ftp close;;
	6)
		./etc/init.d/apache2 stop;;
	*)	
		echo -e  "\033[31;1m 错误输入,请重新输入>>> \033[0m"
		read -p ">>>>>>>" b
		case "$b" in
		*)
			Net;;
		esac
	esac
}

main

猜你喜欢

转载自blog.csdn.net/ArthurCaoMH/article/details/88809256