随笔分类 - Python踩坑之旅
摘要:这期案例讲的是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 分时使用, 无法并发使用
小明非常烦躁, 为了填上这个坑, 他调研了填坑解法.
阅读全文
摘要:进程篇其一中的场景还有个后续就是: 如果这个子进程还有孙子怎么办? 它还有孙子的孙子怎么办? 这个就是今天我们遇到的坑, 怎么处理孙子进程.
阅读全文
摘要:今天的坑不仅包括裸用os.system还包括裸用相关shell命令执行家族, os.popen、subprocess、getcommands. 此类函数家族直接裸用会导致非常严重的问题. 欢迎大家查看坑位以及如何解决.
阅读全文
摘要:本文讲解了python中子进程继承父进程资源信息导致父进程被 kill 后,子进程 shell 脚本 依然占用端口导致后续逻辑失败的故事. 当然还包括如何在 python 中解决这类事情.
阅读全文