Appearance
autossh 命名规范建议
这份文档用于统一 autossh 相关文件、服务名、日志名和函数名,尤其适合后面扩展到多实例时使用。
1. 为什么要统一命名
如果只有一个实例,命名随意一点问题不大。
但只要后面开始出现下面这些情况,统一命名就会很重要:
- 多台远端机器
- 多个本地代理端口
- 多个
plist - 多套日志文件
- 多组 shell 函数
统一命名的好处:
- 一眼能看出用途
- 更不容易弄错实例
- 故障排查更方便
- 后续维护成本更低
2. Label 命名建议
推荐格式:
text
com.autossh.server-name.socksport示例:
com.autossh.main.socks1080com.autossh.hk.socks1081com.autossh.work.socks7890
如果只有一个实例,也可以保留简单形式:
com.autossh.socks1080
3. plist 文件名建议
建议和 Label 尽量保持一致:
text
~/Library/LaunchAgents/com.autossh.main.socks1080.plist
~/Library/LaunchAgents/com.autossh.hk.socks1081.plist这样看到文件名就知道它对应哪个实例。
4. 日志文件命名建议
推荐格式:
text
/tmp/autossh-server-name-socksport.out
/tmp/autossh-server-name-socksport.err示例:
/tmp/autossh-main-socks1080.out/tmp/autossh-main-socks1080.err/tmp/autossh-hk-socks1081.out/tmp/autossh-hk-socks1081.err
如果只有一个实例,也可以继续用:
/tmp/autossh-socks1080.out/tmp/autossh-socks1080.err
5. shell 函数命名建议
单实例时可以简单一点:
bash
autossh-start
autossh-stop
autossh-reload
autossh-status
autossh-log多实例时建议加前缀或实例名:
bash
autossh-main-start
autossh-main-stop
autossh-hk-start
autossh-hk-stop或者:
bash
autossh-1080-start
autossh-1081-start通常推荐“实例名 + 端口”比“只写端口”更清楚。
6. 示例命名方案
方案 A:单实例
Label:com.autossh.socks1080plist:com.autossh.socks1080.plistout:/tmp/autossh-socks1080.outerr:/tmp/autossh-socks1080.err
方案 B:按机器名区分
Label:com.autossh.hk.socks1080plist:com.autossh.hk.socks1080.plistout:/tmp/autossh-hk-socks1080.outerr:/tmp/autossh-hk-socks1080.err
方案 C:按用途区分
Label:com.autossh.work.socks7890plist:com.autossh.work.socks7890.plistout:/tmp/autossh-work-socks7890.outerr:/tmp/autossh-work-socks7890.err
7. 最容易踩坑的命名问题
常见坑包括:
plist文件名改了,但内部Label没改- 本地端口改了,但日志文件名还写旧端口
- 多个实例共用一个日志文件
- 多个实例函数名差不多,自己记混
8. 推荐实践
如果你打算长期维护,建议从一开始就遵守这几个规则:
Label带端口- 日志文件名带端口
- 多实例时
Label带实例名 plist文件名和Label尽量一致- shell 函数名尽量能体现实例含义
9. 当前配置的评价
你当前这套:
com.autossh.socks1080/tmp/autossh-socks1080.out/tmp/autossh-socks1080.err
对于单实例场景已经足够清晰。
只有在你后面要扩展多个实例时,才建议切换到更细的命名方案。