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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章