#!/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