diff --git a/1 copy.sh b/1 copy.sh new file mode 100644 index 0000000..bbf8a6d --- /dev/null +++ b/1 copy.sh @@ -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) diff --git a/1.sh b/1.sh index e6f8034..b5e6759 100644 --- a/1.sh +++ b/1.sh @@ -1,89 +1,31 @@ -#!/bin/bash -# curl -fsSL scripts.oo1.dev/1.sh | env NZ_client_secret=x bash +#!/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"; } +# 先检查是 Debian 还是 Alpine +if [ -f /etc/os-release ]; then + . /etc/os-release + OS=$NAME + VERSION=$VERSION_ID +else + echo "无法检测系统类型,请确保系统支持 /etc/os-release" + exit 1 +fi -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) +# 检查系统类型 +if [[ $OS == *"Debian"* ]]; then + echo "检测到 Debian 系统,版本: $VERSION" + SYSTEM_TYPE="debian" +elif [[ $OS == *"Alpine"* ]]; then + echo "检测到 Alpine 系统,版本: $VERSION" + SYSTEM_TYPE="alpine" +else + echo "不支持的系统类型: $OS" + exit 1 +fi