[Public] 重构通用脚本

This commit is contained in:
zeaslity
2023-09-28 14:42:16 +08:00
parent 1646ae1c3d
commit 65cb700649
17 changed files with 2481 additions and 29 deletions

134
Public/lib/wdd-lib-sys.sh Normal file
View File

@@ -0,0 +1,134 @@
#!/bin/bash
if [[ ! -f /root/wdd/lib/wdd-lib-log.sh ]]; then
wget https://oss-s1.107421.xyz/wdd-lib-log.sh -O /root/wdd/lib/wdd-lib-log.sh
fi
. /root/wdd/lib/wdd-lib-log.sh
# 系统相关
LinuxReleaseVersion=""
LinuxRelease=""
OS_BIT=""
CMD_INSTALL="apt-get -y -qq install"
CMD_UPDATE="apt-get -qq update"
CMD_REMOVE="apt-get -y remove"
SOFTWARE_UPDATED=0
# 判断命令是否存在
command_exists() {
command -v "$@" >/dev/null 2>&1
}
# 判定是否是root用户
check_root() {
FunctionStart "判定Root用户"
if [[ $EUID != 0 ]]; then
colorEchoRed "当前非root账号(或没有root权限)无法继续操作请更换root账号!"
colorEcho ${YELLOW} "使用sudo -命令获取临时root权限执行后可能会提示输入root密码"
exit 1
else
log "当前为root账号 "
fi
FunctionEnd
}
####### 获取系统版本及64位或32位信息
check_sys() {
FunctionStart "获取系统参数"
# 获取当前终端的宽度,动态调整分割线的长度
# local shell_width=$(stty size | awk '{print $2}')
# SplitLine=$(yes "-" | sed "${shell_width}"'q' | tr -d '\n')
sys_bit=$(uname -m)
case $sys_bit in
i[36]86)
OS_BIT="32"
LinuxRelease="386"
;;
x86_64)
OS_BIT="64"
LinuxRelease="amd64"
;;
*armv6*)
OS_BIT="arm"
LinuxRelease="arm6"
;;
*armv7*)
OS_BIT="arm"
LinuxRelease="arm7"
;;
*aarch64* | *armv8*)
OS_BIT="arm64"
LinuxRelease="arm64"
;;
*)
error "
哈哈……这个 辣鸡脚本 不支持你的系统。 (-_-) \n
备注: 仅支持 Ubuntu 16+ / Debian 8+ / CentOS 7+ 系统
" && exit 1
;;
esac
log "获取的系统信息如下: OS_BIT => ${OS_BIT} LinuxRelease => $LinuxRelease"
## 判定Linux的发行版本
if [ -f /etc/redhat-release ]; then
LinuxReleaseVersion="centos"
elif cat /etc/issue | grep -Eqi "debian"; then
LinuxReleaseVersion="debian"
elif cat /etc/issue | grep -Eqi "ubuntu"; then
LinuxReleaseVersion="ubuntu"
elif cat /etc/issue | grep -Eqi "centos|red hat|redhat"; then
LinuxReleaseVersion="centos"
elif cat /proc/version | grep -Eqi "debian"; then
LinuxReleaseVersion="debian"
elif cat /proc/version | grep -Eqi "ubuntu"; then
LinuxReleaseVersion="ubuntu"
elif cat /proc/version | grep -Eqi "centos|red hat|redhat"; then
LinuxReleaseVersion="centos"
else
LinuxReleaseVersion=""
fi
log "系统参数信息如下: LinuxReleaseVersion => $LinuxReleaseVersion"
# 判断系统的包管理工具 apt, yum, or zypper
getPackageManageTool() {
if [[ -n $(command -v apt-get) ]]; then
CMD_INSTALL="apt-get -y -qq install"
CMD_UPDATE="apt-get -qq update"
CMD_REMOVE="apt-get -y remove"
elif [[ -n $(command -v yum) ]]; then
CMD_INSTALL="yum -y -q install"
CMD_UPDATE="yum -q makecache"
CMD_REMOVE="yum -y remove"
elif [[ -n $(command -v zypper) ]]; then
CMD_INSTALL="zypper -y install"
CMD_UPDATE="zypper ref"
CMD_REMOVE="zypper -y remove"
else
return 1
fi
}
# 检查系统包管理方式,更新包
getPackageManageTool
if [[ $? -eq 1 ]]; then
error "系统的包管理不是 APT or YUM, 请手动安装所需要的软件."
return 1
fi
log "系统包管理工具为 => $CMD_INSTALL"
### 更新程序引索
if [[ $SOFTWARE_UPDATED -eq 0 ]]; then
log "正在更新软件包管理...可能花费较长时间…………"
$CMD_UPDATE
SOFTWARE_UPDATED=1
fi
FunctionEnd
}