跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

从零搭建 Gitee 标准化脚本仓库:自动化运维脚本管理方案

在 Gitee 搭建标准化自动化脚本仓库的方案,包括环境准备、目录结构规范、Git 版本控制、SSH 免密配置、跨主机迁移及脚本头部自动注入功能。通过规范化命名、提交记录及云端备份,实现运维脚本的高效管理、复用与精准获取,适用于个人或团队场景。

内存管理发布于 2026/3/28更新于 2026/9/1268 浏览
从零搭建 Gitee 标准化脚本仓库:自动化运维脚本管理方案

从零搭建 Gitee 标准化脚本仓库:自动化运维脚本管理方案

前言

日常会编写大量 Ansible、Shell、Python 自动化脚本,分散存放不仅难以检索,还存在丢失风险。本文将带你从零搭建Gitee 标准化脚本仓库,通过规范化目录结构、Git 版本控制、云端备份,实现脚本的高效管理、复用、跨主机迁移,以及单个脚本的精准获取,适合个人或团队运维场景。

一、环境准备

1. 本地环境
  • 操作系统:Ubuntu 20.04+/CentOS 7+(本文以 Ubuntu 为例)
  • 核心工具:Git(版本 2.30+)
  • 权限:root 用户(或 sudo 权限)
2. 云端环境
  • Gitee 账号:注册地址 https://gitee.com/
  • 空仓库:提前创建私有仓库(用于存储脚本,避免敏感信息泄露)

二、核心目标

  1. 标准化目录结构:按「语言 + 功能 + 环境」分类,脚本一目了然
  2. 版本控制:通过 Git 追踪脚本修改记录,支持回滚
  3. 云端备份:同步本地脚本到 Gitee,避免丢失
  4. 规范管理:统一脚本命名、元数据注释、Git 提交规范
  5. 跨主机迁移:新主机一键复刻仓库环境,无缝衔接
  6. 灵活获取:支持完整仓库克隆、单个脚本下载,适配不同使用场景

三、完整操作步骤

步骤 1:安装 Git 并配置基础信息
1.1 安装 Git(Ubuntu 系统)
# 更新软件源
apt update -y
# 安装 Git
apt install git -y
# 验证安装结果
git --version
# 输出类似:git version 2.43.0
1.2 配置 Git 全局信息(提交代码时显示的身份)
git config --global user.name "<your_name>"
git config --global user.email "<[email protected]>"
# 配置拉取时默认合并方式(避免后续冲突提示)
git config --global pull.rebase false
步骤 2:创建 Gitee 私有仓库
2.1 网页端创建仓库
  1. 登录 Gitee → 右上角「+」→「新建仓库」
  2. 填写仓库信息(关键配置):
    • 仓库名称:script-repo-name(自定义,建议含 scripts 标识)
    • 路径:默认与仓库名称一致
    • 仓库类型:私有(保护运维脚本等敏感内容)
    • 初始化设置:不勾选「使用 README 文件初始化仓库」(避免后续合并冲突)
  3. 点击「创建」,记录仓库 SSH 地址(后续关联用):[email protected]:<your_gitee_username>/script-repo-name.git
2.2 配置 SSH 免密登录(可选但推荐)

避免每次推送都输入账号密码,配置 SSH 免密:

# 生成 SSH 密钥(一路回车,无需设置密码)
ssh-keygen -t ed25519 -C "<[email protected]>"
# 查看公钥内容(全选复制)
cat ~/.ssh/id_ed25519.pub
  1. 登录 Gitee → 右上角头像 →「设置」→「SSH 公钥」
  2. 粘贴复制的公钥,点击「确定」

验证 SSH 连接:

ssh -T [email protected]
# 输出类似:Hi <username>! You've successfully authenticated...
步骤 3:本地初始化标准化脚本仓库
3.1 下载自动化初始化脚本

创建 init_script_repo.sh 脚本,一键生成标准化目录结构、README、.gitignore:

cat > init_script_repo.sh << 'EOF'
#!/bin/bash
set -e
# ======================== 配置项(请修改为你的信息)========================
GITEE_USERNAME="<your_gitee_username>" # 你的 Gitee 用户名(路径中的用户名)
REPO_NAME="script-repo-name" # Gitee 仓库名称
LOCAL_REPO_PATH="$HOME/scripts" # 本地脚本仓库路径
GIT_NAME="<your_name>" # Git 提交用户名
GIT_EMAIL="<[email protected]>" # Git 提交邮箱
# ==========================================================================
# 颜色输出函数
green_echo() {
    echo -e "\033[32m$1\033[0m"
}
red_echo() {
    echo -e "\033[31m$1\033[0m"
}
yellow_echo() {
    echo -e "\033[33m$1\033[0m"
}
# 前置检查:检测 Git 是否安装
green_echo "===== 0. 前置检查:检测 Git 环境 ====="
if ! command -v git &> /dev/null; then
    red_echo "未检测到 Git,开始自动安装..."
    apt update -y && apt install git -y
    if ! command -v git &> /dev/null; then
        red_echo "Git 安装失败,请手动安装后重试!"
        exit 1
    fi
    green_echo "Git 安装成功!"
else
    green_echo "Git 已安装:$(git --version)"
fi
# 第一步:创建标准化目录结构
green_echo "===== 1. 创建脚本目录结构 ====="
mkdir -p "${LOCAL_REPO_PATH}"/{ansible,shell,python,archive}/{cloud,monitor,automation,centos,ubuntu,api}
green_echo "目录创建完成:${LOCAL_REPO_PATH}"
# 第二步:生成标准化 README.md
green_echo "===== 2. 生成标准化 README.md ====="
cat > "${LOCAL_REPO_PATH}/README.md" << README_EOF
# ${REPO_NAME} 个人/团队自动化脚本管理仓库,包含 Ansible/Shell/Python 等运维脚本。
## 目录说明
| 目录 | 用途 |
|--------------|--------------------------|
| ansible/ | Ansible Playbook/Role |
| shell/ | Shell 脚本(按系统分类) |
| python/ | Python 自动化脚本 |
| archive/ | 废弃/归档脚本 |
## 脚本规范
1. 文件名格式:功能_环境。后缀(如:nginx_install_centos.sh)
2. 脚本头部必须包含元数据注释(功能、环境、依赖、版本)
3. Git 提交规范:feat(目录): 描述 / fix(目录): 描述
## 依赖说明
- Shell 脚本:bash 环境,部分需 curl/wget
- Python 脚本:见 requirements.txt
- Ansible 脚本:Ansible 2.10+
README_EOF
# 第三步:生成.gitignore 文件(过滤无用文件)
green_echo "===== 3. 生成.gitignore 文件 ====="
cat > "${LOCAL_REPO_PATH}/.gitignore" << GITIGNORE_EOF
# 通用忽略文件
*.log
*.swp
*.tmp
.DS_Store
.idea/
.vscode/
__pycache__/
*.pyc
# 运维脚本忽略文件
*.iso
*.tar.gz
*.zip
password.txt
*.key
*.pem
GITIGNORE_EOF
# 第四步:初始化 Git 仓库并配置
green_echo "===== 4. 初始化 Git 仓库 ====="
cd "${LOCAL_REPO_PATH}"
if [ -d .git ]; then
    yellow_echo "当前目录已存在 Git 仓库,跳过初始化步骤!"
else
    git init
    green_echo "Git 仓库初始化完成!"
fi
git config user.name "${GIT_NAME}"
git config user.email "${GIT_EMAIL}"
green_echo "Git 用户信息配置完成:${GIT_NAME} <${GIT_EMAIL}>"
# 第五步:关联 Gitee 远程仓库(SSH 方式)
green_echo "===== 5. 关联 Gitee 远程仓库 ====="
GITEE_REPO_URL="[email protected]:${GITEE_USERNAME}/${REPO_NAME}.git"
if git remote | grep -q "origin"; then
    yellow_echo "已存在 origin 远程关联,先删除旧关联..."
    git remote remove origin
fi
git remote add origin "${GITEE_REPO_URL}"
green_echo "已关联远程仓库(SSH):${GITEE_REPO_URL}"
# 第六步:提交初始版本
green_echo "===== 6. 提交初始版本 ====="
git add .
if git rev-parse --verify HEAD &> /dev/null; then
    yellow_echo "已存在提交记录,跳过初始提交步骤!"
else
    git commit -m "feat: 初始化脚本仓库,创建标准化目录结构"
    green_echo "初始版本提交完成!"
fi
# 第七步:添加空目录占位文件(确保 Git 追踪目录)
green_echo "===== 7. 添加.gitkeep 占位文件 ====="
find . -type d -empty -exec touch {}/.gitkeep \;
git add .
git commit -m "feat: 添加.gitkeep 占位文件,确保空目录被 Git 追踪"
green_echo "占位文件添加完成!"
# 完成提示
green_echo "===== 本地仓库初始化完成!====="
green_echo "本地仓库路径:${LOCAL_REPO_PATH}"
green_echo "后续执行 git push -u origin master 即可推送到 Gitee"
EOF
3.2 执行初始化脚本
# 给脚本添加执行权限
chmod +x init_script_repo.sh
# 执行脚本
./init_script_repo.sh
3.3 查看生成的目录结构
tree /root/scripts
# 输出类似:
# /root/scripts
# ├── ansible
# │   └── ...
# ├── shell
# │   └── ...
# ├── python
# │   └── ...
# ├── archive
# │   └── ...
# ├── .gitignore
# ├── README.md
# └── ... (各目录下包含.gitkeep)
步骤 4:关联 Gitee 并推送本地仓库
4.1 推送初始版本到 Gitee
# 进入本地脚本仓库目录
cd /root/scripts
# 推送到 Gitee(首次推送需关联分支)
git push -u origin master
4.2 解决可能的冲突(若创建仓库时勾选了 README)

若推送时提示 (fetch first) 冲突,执行以下命令合并:

# 拉取远程内容并合并(允许无共同历史)
git pull origin master --allow-unrelated-histories
# 解决冲突(保留本地版本)
git checkout --ours README.md
git checkout --ours .gitignore
# 标记冲突已解决并提交
git add README.md .gitignore
git commit -m "merge: 解决 README 和.gitignore 冲突,保留本地标准化配置"
# 重新推送
git push -u origin master
步骤 5:跨主机迁移(更换主机时)

当更换新主机时,一键复刻仓库环境:

5.1 新主机环境准备
# 安装 Git
apt update -y && apt install git tree -y
# 配置 Git 全局信息(和原主机一致)
git config --global user.name "<your_name>"
git config --global user.email "<[email protected]>"
git config --global pull.rebase false
5.2 新主机配置 SSH 免密
# 生成 SSH 密钥
ssh-keygen -t ed25519 -C "<[email protected]>"
# 复制公钥并添加到 Gitee(步骤同原主机)
cat ~/.ssh/id_ed25519.pub
# 验证 SSH 连接
ssh -T [email protected]
5.3 克隆 Gitee 仓库到新主机
# 克隆仓库到新主机的~/scripts 目录
git clone [email protected]:<your_gitee_username>/script-repo-name.git ~/scripts
# 验证目录结构(和原主机一致)
cd ~/scripts
tree -L 2
5.4 (可选)同步脚本依赖环境
# 示例:安装 Ansible
apt install ansible -y
# 示例:安装 Python 依赖(若仓库有 requirements.txt)
pip3 install -r ~/scripts/requirements.txt
步骤 6:其他主机使用脚本仓库(完整/单个脚本)
6.1 方式 1:克隆完整仓库(持续使用/多脚本)

适用于需要长期使用多个脚本、同步更新的场景:

  1. 克隆仓库(SSH/HTTPS 方式):

执行脚本:

cd ~/scripts/shell/centos
bash nginx_install_centos.sh

同步最新脚本:

cd ~/scripts
git pull origin master

HTTPS 方式(需输 Gitee 账号和私人令牌):

git clone https://gitee.com/<your_gitee_username>/script-repo-name.git ~/scripts

SSH 方式(免密,需配置公钥):

git clone [email protected]:<your_gitee_username>/script-repo-name.git ~/scripts

目标主机准备 Git 环境:

apt update -y && apt install git -y
6.2 方式 2:仅下载单个脚本(临时使用/按需获取)

无需克隆完整仓库,仅获取目标脚本,节省空间:

6.2.1 网页端下载(可视化操作)
  1. 登录 Gitee → 进入仓库 → 找到目标脚本(如 shell/centos/nginx_install_centos.sh);
  2. 点击脚本 → 右上角「原始数据」→ 右键「另存为」保存到本地;

上传到目标主机:

scp 本地脚本路径 root@目标主机 IP:/root/
6.2.2 命令行直接下载(目标主机执行)
  1. 复制脚本原始链接(网页端「原始数据」页面的地址);

赋予权限并执行:

chmod +x /root/nginx_install_centos.sh
bash /root/nginx_install_centos.sh

目标主机执行下载命令:

# wget 方式
wget https://gitee.com/<your_gitee_username>/script-repo-name/raw/master/shell/centos/nginx_install_centos.sh -O /root/nginx_install_centos.sh
# curl 方式
curl -o /root/nginx_install_centos.sh https://gitee.com/<your_gitee_username>/script-repo-name/raw/master/shell/centos/nginx_install_centos.sh
6.2.3 稀疏克隆(指定目录/多个脚本)

需使用某目录下多个脚本,无需完整仓库:

关联仓库并拉取:

git remote add origin [email protected]:<your_gitee_username>/script-repo-name.git
git pull origin master

指定需拉取的目录:

echo "shell/centos/">> .git/info/sparse-checkout # 仅拉取 shell/centos 目录

目标主机初始化空仓库:

mkdir -p ~/scripts && cd ~/scripts
git init
git config core.sparseCheckout true # 开启稀疏克隆
6.3 团队协作权限配置

若其他主机是团队成员使用,需配置仓库权限:

  1. 登录 Gitee → 仓库 →「管理」→「仓库成员」;
  2. 点击「添加成员」,输入用户名并分配权限(「开发者」可推送,「只读」仅能拉取);
  3. 成员按上述方式克隆/下载脚本即可。

四、日常脚本管理规范

1. 脚本命名规范
  • 格式:功能_环境。后缀
  • 示例:nginx_install_centos.sh、vmware_create_vm.yml、log_analyzer_python.py
2. 自动插入脚本头部(无需 touch,任意方式创建即生效)

通过配置 PROMPT_COMMAND 钩子,实现任意方式创建.sh/.py/.yml 文件时,自动插入标准化头部,无需依赖 touch 命令,重启终端或系统后永久生效。

2.1 配置全局钩子(永久生效)

编辑 ~/.bashrc 文件(bash 环境):

vim ~/.bashrc

在文件末尾添加以下内容:

# ======================== 自动插入脚本头部配置 ========================
# 配置项(按需修改)
SCRIPT_AUTHOR="<your_name>"
SCRIPT_PERMISSION="root"
SCRIPT_VERSION="v1.0"

# 检测新创建的空脚本文件并插入头部
check_and_add_header(){
    # 处理.sh 文件
    for file in $(find . -maxdepth 50 -type f -name "*.sh" -size 0 2>/dev/null); do
        if ! grep -q "#!/bin/bash" "$file"; then
            cat > "$file" << EOF
#!/bin/bash
##############################################################################
# 脚本名称:$(basename "$file")
# 功能描述:[请填写脚本功能,如:自动化安装 Nginx 并配置开机自启]
# 适用环境:[请填写适用环境,如:CentOS 7.x/Ubuntu 20.04]
# 依赖组件:[请填写依赖组件,如:gcc pcre-devel openssl-devel]
# 执行权限:${SCRIPT_PERMISSION}
# 作 者:${SCRIPT_AUTHOR}
# 创建日期:$(date +%Y-%m-%d)
# 版本号:${SCRIPT_VERSION}
# 修订记录:
# ${SCRIPT_VERSION} - 初始版本,实现 [请简要描述核心功能]
##############################################################################
# ======================== 脚本核心逻辑开始 ========================
EOF
            chmod +x "$file"
            echo "✅ 已为新脚本自动添加头部:$file"
        fi
    done
    # 处理.py 文件
    for file in $(find . -maxdepth 50 -type f -name "*.py" -size 0 2>/dev/null); do
        if ! grep -q "#!/usr/bin/env python3" "$file"; then
            cat > "$file" << EOF
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
##############################################################################
# 脚本名称:$(basename "$file")
# 功能描述:[请填写脚本功能,如:分析 Nginx 异常访问日志]
# 适用环境:[请填写适用环境,如:通用 Linux 环境]
# 依赖组件:[请填写依赖组件,如:python3-pandas python3-numpy]
# 执行权限:${SCRIPT_PERMISSION}
# 作 者:${SCRIPT_AUTHOR}
# 创建日期:$(date +%Y-%m-%d)
# 版本号:${SCRIPT_VERSION}
# 修订记录:
# ${SCRIPT_VERSION} - 初始版本,实现 [请简要描述核心功能]
##############################################################################
# ======================== 脚本核心逻辑开始 ========================
EOF
            chmod +x "$file"
            echo "✅ 已为新脚本自动添加头部:$file"
        fi
    done
    # 处理.yml/.yaml 文件
    for file in $(find . -maxdepth 50 -type f \( -name "*.yml" -o -name "*.yaml" \) -size 0 2>/dev/null); do
        if ! grep -q "##############################################################################" "$file"; then
            cat > "$file" << EOF
##############################################################################
# 脚本名称:$(basename "$file")
# 功能描述:[请填写脚本功能,如:批量创建 VMware 虚拟机]
# 适用环境:[请填写适用环境,如:VMware ESXi 7.0]
# 依赖组件:[请填写依赖组件,如:ansible 2.10+ pyvmomi]
# 执行权限:${SCRIPT_PERMISSION}
# 作 者:${SCRIPT_AUTHOR}
# 创建日期:$(date +%Y-%m-%d)
# 版本号:${SCRIPT_VERSION}
# 修订记录:
# ${SCRIPT_VERSION} - 初始版本,实现 [请简要描述核心功能]
##############################################################################
# ======================== Playbook 核心逻辑开始 ========================
EOF
            echo "✅ 已为新脚本自动添加头部:$file"
        fi
    done
}
# 设置 PROMPT_COMMAND,每次命令行提示符出现时执行检测
PROMPT_COMMAND="check_and_add_header; $PROMPT_COMMAND"
# ==========================================================================
2.2 使配置生效(或重启系统永久生效)
source ~/.bashrc
# 若仍不生效,重启系统
reboot
2.3 验证效果(任意方式创建文件均生效)
验证 1:直接用 vim 创建.sh 文件
vim test1.sh

打开文件后自动显示标准化头部,无需手动操作。

验证 2:用 echo 命令创建.py 文件
echo "print('test')"> test2.py
cat test2.py

输出包含标准化头部 + 自定义内容。

验证 3:用 cat 命令创建.yml 文件
cat > test3.yml << EOF
- hosts: all
  tasks:
    - name: test
      debug:
        msg="hello"
EOF
cat test3.yml

输出包含标准化头部 + Playbook 内容。

2.4 核心特性说明
  1. 无需 touch:支持 vim/cat/echo 等任意方式创建脚本文件,头部自动插入;
  2. 多类型适配:同时支持 .sh/.py/.yml/.yaml 三种运维常用脚本类型;
  3. 避免重复写入:仅对空文件生效,已有内容的文件不会被修改;
  4. 自动加执行权限:.sh/.py 文件自动赋予 chmod +x 权限;
  5. 实时检测:每次命令行操作后自动触发检测,无需手动执行函数;
  6. 配置灵活:作者、版本等信息统一在 .bashrc 中管理,修改后 source 即可生效。
3. Git 提交规范

提交时按以下格式填写信息,便于追溯历史:

cd /root/scripts
# 新增脚本
git commit -m "feat(shell): 新增 CentOS 下 Nginx 安装脚本 v1.0"
# 修复脚本 bug
git commit -m "fix(ansible): 修复 vmware_create_vm.yml 磁盘参数错误"
# 更新脚本功能
git commit -m "update(python): 优化 log_analyzer.py 日志解析效率"
# 归档废弃脚本
git commit -m "archive(shell): 归档 old_backup.sh 到 archive 目录"
4. 常用 Git 命令
# 1. 新增/修改脚本后提交
git add .
# 添加所有修改文件
git commit -m "描述"
# 提交到本地仓库
# 2. 推送到 Gitee(后续无需加-u)
git push origin master
# 3. 从 Gitee 拉取最新版本(多设备同步)
git pull origin master
# 4. 查看提交历史
git log
# 或 git log --oneline(简洁格式)
# 5. 回滚到指定版本
git reset --hard 版本号(从 git log 获取)

五、常见问题排查

1. Git 推送提示认证失败
  • 原因:SSH 公钥未配置或配置错误
  • 解决:重新生成 SSH 公钥并添加到 Gitee,验证 ssh -T [email protected] 是否成功
2. 合并冲突提示 Automatic merge failed
  • 原因:本地与远程文件内容不一致
  • 解决:使用 git checkout --ours 文件名 保留本地版本,或手动编辑冲突文件
3. 克隆后目录结构缺失
  • 原因:新主机 Git 版本过低,或克隆时网络中断
  • 解决:删除不完整仓库后重新克隆
rm -rf ~/scripts
git clone [email protected]:<your_gitee_username>/script-repo-name.git ~/scripts
4. 新建脚本未自动插入头部
  • 原因:
    1. .bashrc 配置未生效,未重启终端/系统;
    2. find 命令的 maxdepth 限制过严;
    3. 使用 zsh 终端,配置未写入 ~/.zshrc。
  • 解决:
    1. 执行 source ~/.bashrc 或重启系统;
    2. 将 maxdepth 50 调大(如 100);
    3. zsh 用户将配置写入 ~/.zshrc 并执行 source ~/.zshrc。

六、总结

通过本文操作,你已搭建起一套标准化、可复用、可追溯、可跨主机迁移的脚本管理体系:

  1. 本地有规范化目录结构,脚本分类清晰,支持 Ansible/Shell/Python 多类型脚本;
  2. 云端有 Gitee 备份,通过 Git 实现版本控制,可回滚、可同步;
  3. 配置 PROMPT_COMMAND 钩子,无需 touch,任意方式创建脚本文件都自动插入标准化头部,并赋予执行权限;
  4. 支持完整仓库克隆或单个脚本下载,适配不同使用场景;
  5. 统一的命名、提交规范,降低团队协作成本。

目录

  1. 从零搭建 Gitee 标准化脚本仓库:自动化运维脚本管理方案
  2. 前言
  3. 一、环境准备
  4. 1. 本地环境
  5. 2. 云端环境
  6. 二、核心目标
  7. 三、完整操作步骤
  8. 步骤 1:安装 Git 并配置基础信息
  9. 1.1 安装 Git(Ubuntu 系统)
  10. 更新软件源
  11. 安装 Git
  12. 验证安装结果
  13. 输出类似:git version 2.43.0
  14. 1.2 配置 Git 全局信息(提交代码时显示的身份)
  15. 配置拉取时默认合并方式(避免后续冲突提示)
  16. 步骤 2:创建 Gitee 私有仓库
  17. 2.1 网页端创建仓库
  18. 2.2 配置 SSH 免密登录(可选但推荐)
  19. 生成 SSH 密钥(一路回车,无需设置密码)
  20. 查看公钥内容(全选复制)
  21. 输出类似:Hi <username>! You've successfully authenticated...
  22. 步骤 3:本地初始化标准化脚本仓库
  23. 3.1 下载自动化初始化脚本
  24. ======================== 配置项(请修改为你的信息)========================
  25. ==========================================================================
  26. 颜色输出函数
  27. 前置检查:检测 Git 是否安装
  28. 第一步:创建标准化目录结构
  29. 第二步:生成标准化 README.md
  30. ${REPO_NAME} 个人/团队自动化脚本管理仓库,包含 Ansible/Shell/Python 等运维脚本。
  31. 目录说明
  32. 脚本规范
  33. 依赖说明
  34. 第三步:生成.gitignore 文件(过滤无用文件)
  35. 通用忽略文件
  36. 运维脚本忽略文件
  37. 第四步:初始化 Git 仓库并配置
  38. 第五步:关联 Gitee 远程仓库(SSH 方式)
  39. 第六步:提交初始版本
  40. 第七步:添加空目录占位文件(确保 Git 追踪目录)
  41. 完成提示
  42. 3.2 执行初始化脚本
  43. 给脚本添加执行权限
  44. 执行脚本
  45. 3.3 查看生成的目录结构
  46. 输出类似:
  47. /root/scripts
  48. ├── ansible
  49. │ └── ...
  50. ├── shell
  51. │ └── ...
  52. ├── python
  53. │ └── ...
  54. ├── archive
  55. │ └── ...
  56. ├── .gitignore
  57. ├── README.md
  58. └── ... (各目录下包含.gitkeep)
  59. 步骤 4:关联 Gitee 并推送本地仓库
  60. 4.1 推送初始版本到 Gitee
  61. 进入本地脚本仓库目录
  62. 推送到 Gitee(首次推送需关联分支)
  63. 4.2 解决可能的冲突(若创建仓库时勾选了 README)
  64. 拉取远程内容并合并(允许无共同历史)
  65. 解决冲突(保留本地版本)
  66. 标记冲突已解决并提交
  67. 重新推送
  68. 步骤 5:跨主机迁移(更换主机时)
  69. 5.1 新主机环境准备
  70. 安装 Git
  71. 配置 Git 全局信息(和原主机一致)
  72. 5.2 新主机配置 SSH 免密
  73. 生成 SSH 密钥
  74. 复制公钥并添加到 Gitee(步骤同原主机)
  75. 验证 SSH 连接
  76. 5.3 克隆 Gitee 仓库到新主机
  77. 克隆仓库到新主机的~/scripts 目录
  78. 验证目录结构(和原主机一致)
  79. 5.4 (可选)同步脚本依赖环境
  80. 示例:安装 Ansible
  81. 示例:安装 Python 依赖(若仓库有 requirements.txt)
  82. 步骤 6:其他主机使用脚本仓库(完整/单个脚本)
  83. 6.1 方式 1:克隆完整仓库(持续使用/多脚本)
  84. 6.2 方式 2:仅下载单个脚本(临时使用/按需获取)
  85. 6.2.1 网页端下载(可视化操作)
  86. 6.2.2 命令行直接下载(目标主机执行)
  87. wget 方式
  88. curl 方式
  89. 6.2.3 稀疏克隆(指定目录/多个脚本)
  90. 6.3 团队协作权限配置
  91. 四、日常脚本管理规范
  92. 1. 脚本命名规范
  93. 2. 自动插入脚本头部(无需 touch,任意方式创建即生效)
  94. 2.1 配置全局钩子(永久生效)
  95. ======================== 自动插入脚本头部配置 ========================
  96. 配置项(按需修改)
  97. 检测新创建的空脚本文件并插入头部
  98. 脚本名称:$(basename "$file")
  99. 功能描述:[请填写脚本功能,如:自动化安装 Nginx 并配置开机自启]
  100. 适用环境:[请填写适用环境,如:CentOS 7.x/Ubuntu 20.04]
  101. 依赖组件:[请填写依赖组件,如:gcc pcre-devel openssl-devel]
  102. 执行权限:${SCRIPT_PERMISSION}
  103. 作 者:${SCRIPT_AUTHOR}
  104. 创建日期:$(date +%Y-%m-%d)
  105. 版本号:${SCRIPT_VERSION}
  106. 修订记录:
  107. ${SCRIPT_VERSION} - 初始版本,实现 [请简要描述核心功能]
  108. ======================== 脚本核心逻辑开始 ========================
  109. -- coding: utf-8 --
  110. 脚本名称:$(basename "$file")
  111. 功能描述:[请填写脚本功能,如:分析 Nginx 异常访问日志]
  112. 适用环境:[请填写适用环境,如:通用 Linux 环境]
  113. 依赖组件:[请填写依赖组件,如:python3-pandas python3-numpy]
  114. 执行权限:${SCRIPT_PERMISSION}
  115. 作 者:${SCRIPT_AUTHOR}
  116. 创建日期:$(date +%Y-%m-%d)
  117. 版本号:${SCRIPT_VERSION}
  118. 修订记录:
  119. ${SCRIPT_VERSION} - 初始版本,实现 [请简要描述核心功能]
  120. ======================== 脚本核心逻辑开始 ========================
  121. 脚本名称:$(basename "$file")
  122. 功能描述:[请填写脚本功能,如:批量创建 VMware 虚拟机]
  123. 适用环境:[请填写适用环境,如:VMware ESXi 7.0]
  124. 依赖组件:[请填写依赖组件,如:ansible 2.10+ pyvmomi]
  125. 执行权限:${SCRIPT_PERMISSION}
  126. 作 者:${SCRIPT_AUTHOR}
  127. 创建日期:$(date +%Y-%m-%d)
  128. 版本号:${SCRIPT_VERSION}
  129. 修订记录:
  130. ${SCRIPT_VERSION} - 初始版本,实现 [请简要描述核心功能]
  131. ======================== Playbook 核心逻辑开始 ========================
  132. 设置 PROMPT_COMMAND,每次命令行提示符出现时执行检测
  133. ==========================================================================
  134. 2.2 使配置生效(或重启系统永久生效)
  135. 若仍不生效,重启系统
  136. 2.3 验证效果(任意方式创建文件均生效)
  137. 验证 1:直接用 vim 创建.sh 文件
  138. 验证 2:用 echo 命令创建.py 文件
  139. 验证 3:用 cat 命令创建.yml 文件
  140. 2.4 核心特性说明
  141. 3. Git 提交规范
  142. 新增脚本
  143. 修复脚本 bug
  144. 更新脚本功能
  145. 归档废弃脚本
  146. 4. 常用 Git 命令
  147. 1. 新增/修改脚本后提交
  148. 添加所有修改文件
  149. 提交到本地仓库
  150. 2. 推送到 Gitee(后续无需加-u)
  151. 3. 从 Gitee 拉取最新版本(多设备同步)
  152. 4. 查看提交历史
  153. 或 git log --oneline(简洁格式)
  154. 5. 回滚到指定版本
  155. 五、常见问题排查
  156. 1. Git 推送提示认证失败
  157. 2. 合并冲突提示 Automatic merge failed
  158. 3. 克隆后目录结构缺失
  159. 4. 新建脚本未自动插入头部
  160. 六、总结

更多推荐文章

查看全部
  • 动态规划算法详解:原理、步骤与实例
  • 系统架构设计效率对比:AI 辅助与传统方法实践
  • AI Coding 核心原理与实战建议
  • 实现一行或多行文本溢出省略效果的常用方法
  • ES6 新特性详解:进制、Symbol 与 Class
  • Node.js 通过 WASI 运行 WebAssembly 应用实现性能提速
  • 宇树机器人 G1 二次开发:基于 FAST_LIO 的建图与 RViz 配置
  • 二分查找算法原理与 C++ 实现详解
  • Python 数据科学工具链入门:NumPy、Pandas、Matplotlib 快速上手
  • WebMCP:浏览器原生 AI 交互新范式
  • 企业级大模型构建:知识库核心与落地实践
  • 国内 AI 编程订阅套餐对比分析(2026 年 2 月)
  • Vivado 2019.2 开发环境搭建与配置指南
  • 基于 ECharts 与 Flask 的交互式数据可视化应用开发
  • C 语言程序调试常用方法与技巧
  • 安路 FPGA 下载器驱动安装与测试指南
  • Linux 简易版 SHELL 实现
  • UTF-8 表情符号及 Web 表情编码翻译表
  • 网络安全行业高含金量认证证书指南
  • Capacitor 全面适配鸿蒙:跨平台 Web 原生应用开发实践

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online