添加系统类型检测功能,支持 Debian 和 Alpine 系统识别
This commit is contained in:
93
1 copy.sh
Normal file
93
1 copy.sh
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# ...
|
||||||
|
#
|
||||||
|
# 使用方法:
|
||||||
|
# URL="https://git.1-h.cc/Scripts/Linux/raw/branch/main/1.sh"; curl -fsSL "$URL" | bash || wget -q -O - "$URL" | bash
|
||||||
|
|
||||||
|
set -e # 遇到错误即退出
|
||||||
|
trap 'echo "Error on line $LINENO"' ERR
|
||||||
|
|
||||||
|
print_red() { echo -e "\033[31m\033[01m$1$2\033[0m"; }
|
||||||
|
print_green() { echo -e "\033[32m\033[01m$1$2\033[0m"; }
|
||||||
|
print_yellow() { echo -e "\033[33m\033[01m$1$2\033[0m"; }
|
||||||
|
|
||||||
|
install_docker() {
|
||||||
|
print_green "###################"
|
||||||
|
print_green "##### docker ######"
|
||||||
|
print_green "###################"
|
||||||
|
if [ -x "$(command -v docker)" ]; then
|
||||||
|
echo "Docker 已安装"
|
||||||
|
else
|
||||||
|
echo "Docker 未安装,正在安装中..."
|
||||||
|
curl -fsSL https://get.docker.com/ | sh
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
sysctl_config() {
|
||||||
|
print_green "###################"
|
||||||
|
print_green "##### sysctl ######"
|
||||||
|
print_green "###################"
|
||||||
|
SYSCTL_SETTINGS=(
|
||||||
|
"net.core.rmem_max=16777216"
|
||||||
|
"net.core.wmem_max=16777216"
|
||||||
|
"net.core.default_qdisc=fq_codel"
|
||||||
|
"net.ipv4.tcp_congestion_control=bbr"
|
||||||
|
"net.ipv4.tcp_slow_start_after_idle=0"
|
||||||
|
"net.ipv4.tcp_notsent_lowat=16384"
|
||||||
|
# "net.ipv4.tcp_notsent_lowat=131072"
|
||||||
|
)
|
||||||
|
for SETTING in "${SYSCTL_SETTINGS[@]}"; do # 遍历数组
|
||||||
|
KEY=$(echo "$SETTING" | cut -d '=' -f 1) # 截取=左边的字符串
|
||||||
|
sed -i "/^$KEY *= *[0-9]*/d" /etc/sysctl.conf # 删除已有的配置
|
||||||
|
echo "$SETTING" >>/etc/sysctl.conf # 追加新的配置
|
||||||
|
# echo "已添加系统配置: $SETTING" # 输出提示信息
|
||||||
|
done # 循环结束
|
||||||
|
sysctl -p
|
||||||
|
}
|
||||||
|
|
||||||
|
modify_authorized_keys() {
|
||||||
|
print_green "###################"
|
||||||
|
print_green "# authorized_keys #"
|
||||||
|
print_green "###################"
|
||||||
|
echo "正在修改 authorized_keys"
|
||||||
|
mkdir -p /root/.ssh/
|
||||||
|
AUTHORIZED_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDi6fLhEYp2mmUUBOB/6CA0iQYcwhAUVBwpbJJhK0fZmvmtrCrfkDvFtqw4WH0D/DgRtJNyoDfrQ2gm67FtFzu2ZfH0PtIEI6JWrh432qjQnAT5cuKbN3ghrjTHf08vjh0axxilSFtCXf5Gyv+ZnABil7GZAhJB5K/yBUMr6OD5fp4tvjAYe0t6ZIQb8vgd0dCXDGA3Rak1B7W24vDA1Col+Qvx5I7pfqiebkof7BbkfBYX5KZ/ArK0n1RV7wBjf6g/XkwRPvpCR5rz7s+UnMr2FFYqfQ1wkpKjo74KzAahFyy7UicM3e7OKfZvd8EmWBysIdKCcl9s/H9Z4Q/TDZsmnr68KweCvpqFVHfKS9CZ/7w/7zQhrXDhnysqt6nmp/moQLMax6b62++4X6E0gyopc2nlMT+QjIwRPl+DPC2UicWniOSAuSvpPxt8YXF4Zbpsg0efMQvHDrjQF6Ws9UIKVQeTBqij+TJ3w5aUbLEjPhrP5ia7Dtn7u/3IsosxW00= yanhao@yanhaodeMacBook-Pro.local"
|
||||||
|
echo $AUTHORIZED_KEY >/root/.ssh/authorized_keys
|
||||||
|
chmod 600 /root/.ssh/authorized_keys
|
||||||
|
# wget -q -O /tmp/sshd_config https://script.yanhao.ren/downloads/sshd_config
|
||||||
|
# mv /tmp/sshd_config /etc/ssh/sshd_config
|
||||||
|
# service sshd restart
|
||||||
|
}
|
||||||
|
|
||||||
|
bash_aliases() {
|
||||||
|
print_green "###################"
|
||||||
|
print_green "## bash_aliases ###"
|
||||||
|
print_green "###################"
|
||||||
|
rm -f /root/.bash_aliases
|
||||||
|
# 确保 .bashrc 包含别名加载代码
|
||||||
|
touch /root/.bash_aliases
|
||||||
|
grep -q "/root/.bash_aliases" /root/.bashrc || echo '
|
||||||
|
if [ -f /root/.bash_aliases ]; then
|
||||||
|
. ~/.bash_aliases
|
||||||
|
fi' >>/root/.bashrc
|
||||||
|
|
||||||
|
cat <<'EOF' >/root/.bash_aliases
|
||||||
|
alias maddy='docker exec -it maddy maddy'
|
||||||
|
alias l='ls -l'
|
||||||
|
alias ll='ls -alF'
|
||||||
|
alias telnet='docker run --quiet --rm --network host --entrypoint telnet busybox:latest'
|
||||||
|
alias dstats='docker stats --no-stream'
|
||||||
|
alias dup='docker compose up --remove-orphans'
|
||||||
|
alias dps='docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Size}}"'
|
||||||
|
EOF
|
||||||
|
|
||||||
|
print_yellow "别名配置已完成,请执行 source /root/.bashrc 使配置生效"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
modify_authorized_keys
|
||||||
|
bash_aliases
|
||||||
|
install_docker
|
||||||
|
sysctl_config
|
||||||
|
source <(curl -fsSL scripts.oo1.dev/nezha-v1.sh)
|
110
1.sh
110
1.sh
@ -1,89 +1,31 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
# curl -fsSL scripts.oo1.dev/1.sh | env NZ_client_secret=x bash
|
#
|
||||||
|
# ...
|
||||||
|
#
|
||||||
|
# 使用方法:
|
||||||
|
# URL="https://git.1-h.cc/Scripts/Linux/raw/branch/main/1.sh"; curl -fsSL "$URL" | bash || wget -q -O - "$URL" | bash
|
||||||
|
|
||||||
set -e # 遇到错误即退出
|
set -e # 遇到错误即退出
|
||||||
trap 'echo "Error on line $LINENO"' ERR
|
trap 'echo "Error on line $LINENO"' ERR
|
||||||
|
|
||||||
print_red() { echo -e "\033[31m\033[01m$1$2\033[0m"; }
|
# 先检查是 Debian 还是 Alpine
|
||||||
print_green() { echo -e "\033[32m\033[01m$1$2\033[0m"; }
|
if [ -f /etc/os-release ]; then
|
||||||
print_yellow() { echo -e "\033[33m\033[01m$1$2\033[0m"; }
|
. /etc/os-release
|
||||||
|
OS=$NAME
|
||||||
|
VERSION=$VERSION_ID
|
||||||
|
else
|
||||||
|
echo "无法检测系统类型,请确保系统支持 /etc/os-release"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
install_docker() {
|
# 检查系统类型
|
||||||
print_green "###################"
|
if [[ $OS == *"Debian"* ]]; then
|
||||||
print_green "##### docker ######"
|
echo "检测到 Debian 系统,版本: $VERSION"
|
||||||
print_green "###################"
|
SYSTEM_TYPE="debian"
|
||||||
if [ -x "$(command -v docker)" ]; then
|
elif [[ $OS == *"Alpine"* ]]; then
|
||||||
echo "Docker 已安装"
|
echo "检测到 Alpine 系统,版本: $VERSION"
|
||||||
else
|
SYSTEM_TYPE="alpine"
|
||||||
echo "Docker 未安装,正在安装中..."
|
else
|
||||||
curl -fsSL https://get.docker.com/ | sh
|
echo "不支持的系统类型: $OS"
|
||||||
fi
|
exit 1
|
||||||
}
|
fi
|
||||||
|
|
||||||
sysctl_config() {
|
|
||||||
print_green "###################"
|
|
||||||
print_green "##### sysctl ######"
|
|
||||||
print_green "###################"
|
|
||||||
SYSCTL_SETTINGS=(
|
|
||||||
"net.core.rmem_max=16777216"
|
|
||||||
"net.core.wmem_max=16777216"
|
|
||||||
"net.core.default_qdisc=fq_codel"
|
|
||||||
"net.ipv4.tcp_congestion_control=bbr"
|
|
||||||
"net.ipv4.tcp_slow_start_after_idle=0"
|
|
||||||
"net.ipv4.tcp_notsent_lowat=16384"
|
|
||||||
# "net.ipv4.tcp_notsent_lowat=131072"
|
|
||||||
)
|
|
||||||
for SETTING in "${SYSCTL_SETTINGS[@]}"; do # 遍历数组
|
|
||||||
KEY=$(echo "$SETTING" | cut -d '=' -f 1) # 截取=左边的字符串
|
|
||||||
sed -i "/^$KEY *= *[0-9]*/d" /etc/sysctl.conf # 删除已有的配置
|
|
||||||
echo "$SETTING" >>/etc/sysctl.conf # 追加新的配置
|
|
||||||
# echo "已添加系统配置: $SETTING" # 输出提示信息
|
|
||||||
done # 循环结束
|
|
||||||
sysctl -p
|
|
||||||
}
|
|
||||||
|
|
||||||
modify_authorized_keys() {
|
|
||||||
print_green "###################"
|
|
||||||
print_green "# authorized_keys #"
|
|
||||||
print_green "###################"
|
|
||||||
echo "正在修改 authorized_keys"
|
|
||||||
mkdir -p /root/.ssh/
|
|
||||||
AUTHORIZED_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDi6fLhEYp2mmUUBOB/6CA0iQYcwhAUVBwpbJJhK0fZmvmtrCrfkDvFtqw4WH0D/DgRtJNyoDfrQ2gm67FtFzu2ZfH0PtIEI6JWrh432qjQnAT5cuKbN3ghrjTHf08vjh0axxilSFtCXf5Gyv+ZnABil7GZAhJB5K/yBUMr6OD5fp4tvjAYe0t6ZIQb8vgd0dCXDGA3Rak1B7W24vDA1Col+Qvx5I7pfqiebkof7BbkfBYX5KZ/ArK0n1RV7wBjf6g/XkwRPvpCR5rz7s+UnMr2FFYqfQ1wkpKjo74KzAahFyy7UicM3e7OKfZvd8EmWBysIdKCcl9s/H9Z4Q/TDZsmnr68KweCvpqFVHfKS9CZ/7w/7zQhrXDhnysqt6nmp/moQLMax6b62++4X6E0gyopc2nlMT+QjIwRPl+DPC2UicWniOSAuSvpPxt8YXF4Zbpsg0efMQvHDrjQF6Ws9UIKVQeTBqij+TJ3w5aUbLEjPhrP5ia7Dtn7u/3IsosxW00= yanhao@yanhaodeMacBook-Pro.local"
|
|
||||||
echo $AUTHORIZED_KEY >/root/.ssh/authorized_keys
|
|
||||||
chmod 600 /root/.ssh/authorized_keys
|
|
||||||
# wget -q -O /tmp/sshd_config https://script.yanhao.ren/downloads/sshd_config
|
|
||||||
# mv /tmp/sshd_config /etc/ssh/sshd_config
|
|
||||||
# service sshd restart
|
|
||||||
}
|
|
||||||
|
|
||||||
bash_aliases() {
|
|
||||||
print_green "###################"
|
|
||||||
print_green "## bash_aliases ###"
|
|
||||||
print_green "###################"
|
|
||||||
rm -f /root/.bash_aliases
|
|
||||||
# 确保 .bashrc 包含别名加载代码
|
|
||||||
touch /root/.bash_aliases
|
|
||||||
grep -q "/root/.bash_aliases" /root/.bashrc || echo '
|
|
||||||
if [ -f /root/.bash_aliases ]; then
|
|
||||||
. ~/.bash_aliases
|
|
||||||
fi' >>/root/.bashrc
|
|
||||||
|
|
||||||
cat <<'EOF' >/root/.bash_aliases
|
|
||||||
alias maddy='docker exec -it maddy maddy'
|
|
||||||
alias l='ls -l'
|
|
||||||
alias ll='ls -alF'
|
|
||||||
alias telnet='docker run --quiet --rm --network host --entrypoint telnet busybox:latest'
|
|
||||||
alias dstats='docker stats --no-stream'
|
|
||||||
alias dup='docker compose up --remove-orphans'
|
|
||||||
alias dps='docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Size}}"'
|
|
||||||
EOF
|
|
||||||
|
|
||||||
print_yellow "别名配置已完成,请执行 source /root/.bashrc 使配置生效"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
modify_authorized_keys
|
|
||||||
bash_aliases
|
|
||||||
install_docker
|
|
||||||
sysctl_config
|
|
||||||
source <(curl -fsSL scripts.oo1.dev/nezha-v1.sh)
|
|
||||||
|
Reference in New Issue
Block a user