實現的功能:
- 統計系統中各個用戶的磁盤的佔用情況,並打印佔用磁盤空間最大的用戶名;
- 遍歷搜索用戶目錄中最大的某一個文件,並打印該文件名及其字節數
- 查詢指定用戶目錄下的所有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