自动化部署工具箱

#!/bin/bash
#自动化部署一个包含注册、登录,且登录成功后拥有各种功能集一身的工具箱,并使用mysql数据库用于存储用户的各种信息
#2023.11.22
mysql_password="Qianfeng@123"
#创建数据库db1
#mysql -uroot -p$mysql_password -e"create database db1;"
#创建数据库中t1表db1.t1
#mysql -uroot -p$mysql_password -e"create table db1.t1(id varchar(20) primary key not null,password varchar(20) not null);"
#登录函数
log_on(){
	read -p "请输入的你的登录账户: " logon_id
	read -p "请输入的你的登录密码: " login_password
	#查看数据库,确认登录用户是否注册过
	result=$(mysql -uroot -p$mysql_password -e"select * from db1.t1 where name='$logon_id';")
	if [[ $result = "" ]]; then
		echo "没有该用户,请注册!!!"
		continue
	else
		#把输入的用户名和密码与数据库中用户名和密码一一对应,完成确认
		result1=$(mysql -uroot -p$mysql_password -e"select password from db1.t1 where name='$logon_id' and password='$login_password';")
		if [ -n "$result1" ]; then
			fun
		else
			echo "密码错误!!!"
			
			continue
		fi
	fi
}
#登录成功之后有的功能
fun(){
	while true;do
		echo "==================主菜单==================="
		echo "1.打印当前系统登录用户"
		echo "2.检查软件是否安装并打印软件信息"
		echo "3.安装指定软件"
		echo "4.获取系统cpu排名前10的进程"
		echo "5.获取系统内存排名前10的进程"
		echo "6.退出"
		echo "=========================================="

		read -p "请输入你需要的功能: " b 
		case $b in
			1)#打印当前系统登录用户
				whoami
				;;
			2)
				read -p "请输入你需要查询的软件: " c
				#判断软件是否安装
				if command -v $c &> /dev/null;then
					#打印已安装软件的详细信息
					echo "$c已安装"
					rpm -qi $c 
				else 
					echo "$c未安装"
				fi
				;;
			3)
				read -p "请输入你所需要安装的服务: " d 
				#ping百度,检查网络情况
				ping -c1 baidu.com
				if [ $? -eq 0 ]; then
					#通过查找yum源文件,来判断yum源是否可用
					if [ -f /etc/yum.repos.d/CentOS-Base.repo ] && [ -f /etc/yum.repos.d/epel.repo ]; then
						#判断软件是否安装
						if command -v $d &> /dev/null; then
							echo "$d已安装,无需重复安装,谢谢"
							rpm -qi $d 
						else
							yum -y install $d  
							echo "$d安装成功"
						fi
					else
						echo "很抱歉,没有检测到yum源"
						exit 0
					fi
				else
					echo "很抱歉,网络连接失败,请检查网络连接状态"
					exit 0
				fi
				;;
			4)	#提供ps命令来查找cpu排名前10的进程
				ps aux | sort -r -k3 | head -n 10
				;;
			5)	#提供ps命令来查找内存排名前10的进程
				ps aux | sort -r -k4 | head -n 10
				;;
			6)
				echo "感谢使用,再见!"
				continue 3 
				;;
			*)
				echo "请正确输入"
		esac
		echo "===================================================="
		read -p "按回车键返回"
		clear
done
}
#注册函数
register_functions(){
	read -p "请输入你的注册账号: " registered_id
	read -p "请输入你的注册密码: " registered_password
	read -p "请确定你的密码: " next_password
	while true; do
		if [[ $registered_password =~ [A-Z] && $registered_password =~ [a-z] && $registered_password =~ [0-9] && ${#registered_password} -ge 5 ]]; then
			echo "账户名符合要求"
			#提供正则来判断密码是否符合复杂度(至少有8位,同时必须有大小写字母,数字)
			if [[ $registered_password =~ [A-Z] && $registered_password =~ [a-z] && $registered_password =~ [0-9] && $registered_password =~ [^0-z] && ${#registered_password} -ge 8 ]]; then
				echo "密码符合要求"
				#确认密码
				if [ $next_password=$registered_password ]; then
					#去数据库中查找是否有注册用户
					result3=$(mysql -uroot -p$mysql_password -e"select name from db1.t1 where name='$registered_id';")
					if
						[[ $result3 != "" ]]; then
						echo "该账户已经存在,请前往登录"
						continue 2
					else
						#把用户名和密码写入数据库中
						mysql -uroot -p$mysql_password -e"insert into db1.t1(name,password) values('$registered_id','$registered_password');"
						echo "账户创建成功,请前往登录"
						continue 2
					fi
				else
					echo "确认失败,重新输入密码"
					continue 3
				fi
			else
				echo "密码不符合要求,重新输入密码"
				continue 4
			fi
		else
			echo "账户名不符合要求,重新输入账户名"
			continue 5
		fi
	done

}
#工具箱函数
toolbox(){
	while true; do 
	echo "==========主菜单============" 
	echo "1.登录"
	echo "2.注册" 
	echo "3.退出" 
	echo "============================"

	read -p "请输入选项:" number
	case $number in
		1)	#调用登录函数
			log_on
			;;
		2)	#调用注册函数
			register_functions
			;;
		3)
			echo "感谢使用,再见"
				exit 0
			;;
		*)
			echo "请正确输入"
	esac
		echo "==============================="
		read -p "按回车键返回主菜单"
		clear
	done

}
toolbox

猜你喜欢

转载自blog.csdn.net/XX_HK/article/details/134658960