143 lines
5.7 KiB
Bash
143 lines
5.7 KiB
Bash
#!/usr/bin/env bash
|
||
|
||
# 提示红色的错误信息
|
||
error_msg() {
|
||
echo -e "\033[0;31m[$(date +"%F %T")]:\033[0m $*" >&2
|
||
}
|
||
|
||
# 提示绿色的成功信息
|
||
success_msg() {
|
||
echo -e "\033[0;32m[$(date +"%F %T")]:\033[0m $*" >&1
|
||
}
|
||
|
||
customAddUser() {
|
||
read -p "请输入用户名:" user
|
||
#使用‐z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本,退出码为 2
|
||
#没有输入用户名脚本退出后,使用$?查看的返回码为 2
|
||
if id -u ${user} >/dev/null 2>&1 ; then
|
||
echo "用户 ${user} 已存在."
|
||
return 127
|
||
fi
|
||
#使用 stty ‐echo 关闭 shell 的回显功能
|
||
#使用 stty echo 打开 shell 的回显功能
|
||
# read -s -p "请输入密码:" pass
|
||
# pass=${pass:-123456}
|
||
adduser $user
|
||
echo -e "\n"
|
||
# echo $user:$pass | chpasswd
|
||
if [[ $? -eq 0 ]]; then
|
||
read -p "是否将用户添加入sudo组?(y/n)" confirmAdd
|
||
if [[ "$confirmAdd" == `echo -e "\n"` || $confirmAdd == "Y" || $confirmAdd == "y" ]]; then
|
||
usermod -aG sudo $user
|
||
fi
|
||
else
|
||
return $?
|
||
fi
|
||
return $?
|
||
}
|
||
|
||
customDeleteUser() {
|
||
read -p "请输入需要删除的用户名:" username
|
||
deluser --remove-home $username
|
||
return $?
|
||
}
|
||
|
||
selectTips(){
|
||
Hostname=( '创建用户' '删除用户' '安装Caddy' '安装Docker' '卸载docker' '安装postgres数据库' '退出' )
|
||
PS3="Please input the number of host: "
|
||
select host in ${Hostname[@]}; do
|
||
case ${host} in
|
||
'创建用户')
|
||
customAddUser
|
||
if [[ $? -eq 0 ]]; then
|
||
echo "用户添加成功"
|
||
else
|
||
echo "用户添加失败"
|
||
fi
|
||
;;
|
||
'删除用户')
|
||
customDeleteUser
|
||
if [[ $? -eq 0 ]]; then
|
||
echo "用户删除成功"
|
||
else
|
||
echo "用户删除失败"
|
||
fi
|
||
;;
|
||
'安装Caddy')
|
||
echo -e "------安装Caddy------\n"
|
||
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
|
||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
|
||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
|
||
sudo apt update
|
||
sudo apt install caddy
|
||
echo -e "------Caddy安装完成------\n"
|
||
echo -e "------设置开机自启------\n"
|
||
sudo systemctl enable --now caddy
|
||
echo -e "------设置开机自启完成------\n"
|
||
echo -e "Caddy 配置路径为 /etc/caddy/Caddyfile \n"
|
||
;;
|
||
'安装Docker')
|
||
echo -e "------删除历史docker------\n"
|
||
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
|
||
echo -e "------删除历史docker完成------\n"
|
||
# Add Docker's official GPG key:
|
||
sudo apt-get update
|
||
sudo apt-get install ca-certificates curl gnupg
|
||
sudo install -m 0755 -d /etc/apt/keyrings
|
||
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||
|
||
# Add the repository to Apt sources:
|
||
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||
echo \
|
||
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
|
||
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
|
||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||
sudo apt-get update
|
||
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||
|
||
echo -e "------添加docker组------\n"
|
||
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
|
||
newgrp docker #更新用户组
|
||
echo -e "------添加docker组完成------\n"
|
||
;;
|
||
'卸载docker')
|
||
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
|
||
sudo rm -rf /var/lib/docker
|
||
sudo rm -rf /var/lib/containerd
|
||
;;
|
||
'安装postgres数据库')
|
||
sudo apt-get update && sudo apt-get upgrade
|
||
echo -e "------默认安装当前最新稳定版本------\n"
|
||
sudo apt-get install postgresql # 默认安装当前最新稳定版本
|
||
sudo systemctl enable postgresql
|
||
echo -e "------查看版本号------\n"
|
||
psql --version
|
||
echo -e "------开启Postgres的远程访问------\n"
|
||
ver=$(psql --version | grep -oP '\d+' | head -1)
|
||
sudo sed -i '/listen_addresses =/s/=.*/= '\''*'\''/' /etc/postgresql/$ver/main/postgresql.conf
|
||
sudo sed -i '/port =/s/=.*/= '\''5432'\''/' /etc/postgresql/$ver/main/postgresql.conf
|
||
echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/$ver/main/pg_hba.conf
|
||
echo -e "------开启Postgres的远程访问完成------\n"
|
||
echo -e "------重启psql------\n"
|
||
sudo systemctl restart postgresql
|
||
echo -e "------设置默认的PostgreSQL用户密码------\n"
|
||
echo -e "1. 打开终端并以root用户身份登录\n"
|
||
echo -e "2. 切换到PostgreSQL默认用户postgres:su - postgres\n"
|
||
echo -e "3. 进入PostgreSQL命令行界面:psql\n"
|
||
echo -e "4. 在命令行中输入以下:ALTER USER postgres WITH PASSWORD new_password;\n"
|
||
echo -e " new_password是您想要设置的新密码\n"
|
||
echo -e "5. 输入\q退出PostgreSQL命令行界面\n"
|
||
echo -e "------设置默认的PostgreSQL用户密码------\n"
|
||
;;
|
||
'退出')
|
||
exit
|
||
;;
|
||
*)
|
||
echo "请选择正确的选项"
|
||
selectTips;
|
||
esac
|
||
done
|
||
}
|
||
|
||
selectTips |