跳转至

文件命名与路径规范 📂

版本:1.0
适用范围:LinuxDC 体系中所有服务器、脚本、配置文件、目录结构
目的:在“一切皆文件”的 Linux 哲学下,确保命名与路径高度标准化、可预测、可自动化,避免生产事故 🚨

1. 命名核心原则 (The Golden Rules) ✨

  • 全小写原则 🔤
    目录名、文件名一律使用小写字母(a-z)。
    禁止大写字母,避免因 Linux 大小写敏感导致的致命生产事故。

  • 语义化分割
    统一使用中划线 -(kebab-case)作为单词分隔符。
    严禁使用空格,不建议使用下划线 _(除非 Python 变量或特定系统要求)。

  • 见名知意 🧠
    禁止 test.shtemp.txtmyscript.sh
    必须使用明确描述性的名称,如 db-backup-cron.shnginx-access-log-rotate.sh

  • 版本占位备份 📅
    修改配置文件前,必须备份为:filename.conf.bak.YYYYMMDD
    示例:nginx.conf.bak.20260122

2. 目录结构规范 (Directory Hierarchy) 📁

为了超越常规运维,我们将非系统原生文件统一划分到以下标准路径:

路径 用途说明 推荐权限 备注
/opt/app/ 所有第三方业务应用安装目录 appuser:appgroup 推荐软链接到 /srv/app/
/opt/scripts/ 运维自定义脚本(备份、监控、巡检等) root:root 755 所有脚本统一存放,便于审计
/opt/data/ 业务数据持久化目录(建议独立挂载点) appuser:appgroup 重要数据目录,建议 RAID + 备份
/opt/logs/ 应用日志统一存放路径 root:root 755 建议软链接 /var/log/app/ 到此
/opt/conf/ 跨应用的全局配置或环境声明文件 root:root 644 存放非系统原生配置文件

推荐:所有自定义内容尽量不污染 /etc/,统一放在 /opt/ 下,便于迁移、备份、审计。

3. 运维脚本命名规范 (Scripting Standards) 🛠️

脚本命名格式:[功能所属]-[具体动作]-[对象].sh

  • 正例
  • sys-init-rhel10.sh
  • db-sync-mysql.sh
  • mon-check-disk.sh
  • backup-full-system.sh

  • 禁忌 🚫

  • 1.shmyscript.shbackup_all.sh
  • test.shtemp.sh

4. 配置文件备份规范 (Config Backup) 💾

修改 /etc 下任何配置文件前,严禁直接 vi,必须遵循以下流水线:

  1. 备份原文件

    cp nginx.conf nginx.conf.bak.$(date +%Y%m%d)
    

  2. 原子化编辑
    编辑后文件不带版本号,保持原名。

  3. 注释标准(文件头部添加修改记录)

    # Modified by: LinuxDC-Admin
    # Date: 2026-01-22
    # Purpose: Tuning worker_connections for high concurrency
    # Before: worker_connections 1024
    # After:  worker_connections 4096
    

5. 主机名命名规范 (Hostname Naming) 🖥️

主机名是数据中心资产管理的灵魂。推荐格式:[Env][Region]-[App]-[Index]

环境标识 (Env): - p → Production(生产) - s → Staging(预发布) - t → Test(测试) - d → Dev(开发)

示例: - psh-nginx-01 - thk-db-pg-02 - dkr-app-api-03

6. 日志文件命名规范 (Logging Standards) 📜

日志文件应具备可滚动性,命名包含日期戳:

  • 当前活动日志:access.log
  • 已归档日志:access.log-20260122.gz

推荐:使用 logrotate 自动轮转,并统一存放于 /opt/logs/

自动化警告

当你在编写 Ansible Playbook 或 Shell 脚本时,硬编码路径是导致失败的首要原因。
请始终在脚本开头定义路径变量:

BASE_DIR="/opt/app/nginx"
CONF_DIR="/opt/conf"
LOG_DIR="/opt/logs/nginx"

所有新文件、目录、脚本必须严格遵守以上规范。
如有疑问,请在项目内部讨论后统一更新本规范文档。