摘要:
这期案例讲的是Unix-Like系统中, 常听到的一句话: 目录也是个文件 或者 everything is a file.
刚接触 Linux 文件系统的同学有时候听到这个很懵, 目录怎么是个文件呢?目录不应该是内部包含文件的载体么?
分析
分析主要从2个方面展开:
- `ls` 实际是使用大量文件系统标准接口实现的结果, 是处理过后的用户**程序**
- 从文件系统的组织结构来看穿数据存储和读写方式
---
如果大家已习惯了 Linux 系统中 `ls` 命令 (有时候由于`alias` 存在, 实际是`ls --color`), 容易产生一种错觉:`文件夹和文件这不是天然的被区分为不同的类别了吗?`
- 比如蓝色的文件夹?
- 黑色的文件?`
实际不是这样子的, `ls` `mkdir` `touch` 一类的文件系统操作命令其实是通过调用文件系统接口实现的用户态程序, 你自己利用python也可以实现一个一摸一样的. 阅读全文
摘要:
长期运行的daemon进程或者socket测试类进程, 经常遇到的坑是:
`IOError: [Errno 24] Too many open files`
即进程遇到 IO 错误, 无法打开更多的文件.
一般从两个方面入手. 阅读全文
摘要:
小明是个服务器管理员, 他从老管理员手里接手了一个非常繁琐的运维工作: 短暂授权root 账号给不同的 team 接口人运行备份任务
该运维任务有几个特点:
1. 任务需且仅需运行在 root 下
- root 账号只能短暂授权给各个小组
- 通过账号管理平台, 提前申请一段时间的临时密码
- 将临时密码提供给小组接口人
- 时间超时后密码自动变更
2. 不同 team 分时使用, 无法并发使用
小明非常烦躁, 为了填上这个坑, 他调研了填坑解法. 阅读全文
摘要:
小明是个服务器管理员, 他从老管理员手里接手了一个非常繁琐的运维工作: 短暂授权root 账号给不同的 team 接口人运行备份任务
该运维任务有几个特点:
1. 任务需且仅需运行在 root 下
- root 账号只能短暂授权给各个小组
- 通过账号管理平台, 提前申请一段时间的临时密码
- 将临时密码提供给小组接口人
- 时间超时后密码自动变更
2. 不同 team 分时使用, 无法并发使用
小明非常烦躁, 为了填上这个坑, 他调研了填坑解法. 阅读全文
摘要:
软件测试中可测性一般是指对系统的可控性、可观测性进行的评估,借以反映系统设计、实现对测试的友好程度和相应的测试成本。可测性在测试阶段会对系统的测试成本及关联产品代码的Patch次数产生重大影响。如何提高可测性成为软件生命周期特别是前期(设计阶段、coding阶段)重要的一环。 本文带领大家探索在实际项目中可测性相关的实战经验和对应的改进措施。 阅读全文
摘要:
由于分布式存储系统的复杂性和篇幅所限,本文仅选择有限个典型场景进行了分析和讨论, 真实的分布式存储系统远比这数个案例复杂的多、细节的多。如何平衡集群异常自动化处理和引入的复杂度,如何较好的实现流控和避免影响低延迟用户的响应时间,如何引导集群进行负载均衡和避免因负载均衡带来的过量集群资源开销,这类问题在真实的分布式存储系统设计中层出不穷。如果设计者是你,你会如何取舍呢? 阅读全文
摘要:
进程篇其一中的场景还有个后续就是: 如果这个子进程还有孙子怎么办? 它还有孙子的孙子怎么办? 这个就是今天我们遇到的坑, 怎么处理孙子进程. 阅读全文
摘要:
今天的坑不仅包括裸用os.system还包括裸用相关shell命令执行家族, os.popen、subprocess、getcommands. 此类函数家族直接裸用会导致非常严重的问题. 欢迎大家查看坑位以及如何解决. 阅读全文
摘要:
本文讲解了python中子进程继承父进程资源信息导致父进程被 kill 后,子进程 shell 脚本 依然占用端口导致后续逻辑失败的故事. 当然还包括如何在 python 中解决这类事情. 阅读全文