Kissingwolf's Blog

Linux 系统使用规范

  1. 不要修改系统级配置文件,请添加自定义配置文件到系统级配置目录中。

    例如:一般在配置文件的同级目录下都会有一个配置文件名.d的配置目录,它们是为了防止多用户多服务环境配置冲突问题。

    ​ proc 内核参数配置,不要直接修改配置文件/etc/sysctl.conf,应该以业务或服务名命名配置文件(如 99-app-sysctl.conf),然后将其放入/etc/sysctl.d目录。

    ​ 同理配置ulimit也一样 , 请不要修改/etc/security/limits.conf 配置文件,而是应该以业务或服务名命名配置文件(如 99-app-limits.conf),然后将其放入/etc/security/limits.d/目录。

    ​ 同理配置全局Shell的环境变量,请不要修改/etc/profile或/etc/bashrc文件,而是应该以业务或单独命名配置文件(如eleme.sh),然后将其放置在/etc/profile.d目录。

  2. 最小范围定义环境变量 (Less better than more !)

    例如:程序启动需要的环境变量,写在程序启动脚本里。

    ​ 用户需要的环境变量,写在用户的~/.bashrc里。

    ​ 需要多个程序公用的环境变量,写在独立的文件中,然后使用source命令带入程序启动脚本里。

    ​ 如果变量不可变,请用readonly修饰它。

    ​ 如果变量需要子进程或子shell继承,请用export修饰它。

  3. cp 命令好过mv命令,mv命令好过rm命令。

    例如:如果需要把文件放在新的位置,请先确认是否需要删除原有文件,如果不需要删除,请使用cp命令。如果需要删除原有文件,将其使用mv改名为filename.bak-$(date %F-%T)。目前的系统磁盘远远大于我们需要的空间量,保存一个文件的原始位置备份,有助于我们快速恢复。

  4. 创建计划任务时(cron),请为你的计划任务设置优先级(nice)。

    例如:计划任务均为后台执行程序,运行过程中会与其他运行任务争抢资源,如果你不想由于执行计划任务导致此设备上的其他任务运行缓慢,请在命令前加上nice -n 10,没有其他任务运行时它运行飞快,有其他任务运行时它会让出资源。

  5. 创建计划任务时(cron),请注意命令路径问题,请使用全路径运行程序。

    例如:crontab -e -u USERNAME时,默认没有环境变量设置,请自定义PATH等变量​

  6. 当你程序打不开、写不了、无法创建文件和目录时,请检查其父目录权限。

    例如: /var/log目录权限root.root 755,你要想让你的程序写日志进去,请自行创建/var/log/程序名目录,保证运行程序的用户有写入的权限。

  7. 命令敲完回车前请确认输入是否正确,命令执行完请确认命令回显。

    例如:如果你的网络设置命令执行错误,直接会导致网络断开,你会被堡垒机踢出或冻结输入框。这时应该第一时间联系基础运维,他们还有IPMI控制卡连接方式帮你救回来。

  8. 文件名和目录区分大小写,请保持所有名称都是小写字母

  9. 清空日志文件的正确方法是>./logfile.log,而不是rm -rf ./logfile.log