Files
shell-scripts/Public/lib/wdd-lib-sys.sh
2023-09-28 14:42:16 +08:00

134 lines
3.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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