实现的功能:
- 统计系统中各个用户的磁盘的占用情况,并打印占用磁盘空间最大的用户名;
- 遍历搜索用户目录中最大的某一个文件,并打印该文件名及其字节数
- 查询指定用户目录下的所有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