Linux
2026-03-30
新闻来源:网淘吧
围观:14
电脑广告
手机广告
Linux 常见陷阱
权限陷阱
chmod 777解决不了任何问题,反而会破坏一切 —— 应找到真正的所有者/组问题- 出于安全考虑,脚本上的 Setuid 被忽略 —— 仅对二进制文件有效
chown -R会跟随目标目录外的符号链接 —— 请使用--no-dereference- 默认的 umask 022 使文件全局可读 —— 对于敏感系统应设置为 077
- ACL 会静默覆盖传统权限 —— 使用
getfacl
检查
进程陷阱kill默认发送 SIGTERM,而非 SIGKILL —— 进程可以忽略它nohup对已运行的进程无效 —— 应改用disown- 使用
&置于后台的作业,若未使用disown或者nohup - 僵尸进程无法被杀死——父进程必须调用wait()或者被杀死
kill -9会跳过清理处理程序——可能导致数据丢失,请先使用SIGTERM
文件系统陷阱
- 删除已打开的文件不会释放空间,直到进程关闭它——请检查
lsof +L1 rm -rf /path /带有多余空格 = 灾难——请使用rm -rf /path/尾部斜杠- 磁盘显示有空间但inode耗尽——大量小文件问题
- 符号链接循环导致无限递归——
find -L会跟随它们 /tmp重启时会被清空——不要在那里存储持久性数据
磁盘空间之谜
- 被进程保持打开状态的已删除文件——
lsof +L1可以显示它们,重启进程以释放空间 - 保留块(默认5%)仅供root使用 —
tune2fs -m 1以减少 - 日志占用空间 —
journalctl --vacuum-size=500M - Docker overlay占用空间 —
docker system prune -a - 快照占用空间 — 检查LVM、ZFS或云服务商的快照
网络
localhost和127.0.0.1可能解析不同 — 检查/etc/hosts- 防火墙规则重启后失效除非保存 —
iptables-save或使用firewalld/ufw持久化 netstat已弃用 — 改用ss替代- 1024以下端口需要root权限 — 使用
setcap改为“能力” - TCP TIME_WAIT 在高负载下耗尽 —— 调优
net.ipv4.tcp_tw_reuse
SSH 陷阱
- ~/.ssh 目录权限错误导致静默认证失败 —— 目录需设为 700,密钥文件需设为 600
- 代理转发会将您的密钥暴露给远程管理员 —— 在不可信服务器上避免使用
- 服务器重建后已知主机哈希不匹配 —— 使用以下命令删除旧条目
ssh-keygen -R - SSH 配置中的 Host 区块:首次匹配生效 —— 将具体主机放在通配符之前
- 空闲时连接超时 —— 在配置中添加
ServerAliveInterval 60Systemd
systemctl enable
不会启动服务 —— 还需要startrestart与reload的区别:restart 会断开连接,reload 不会(如果支持的话)Journal 日志默认在重启后丢失 —— 设置- Journal logs lost on reboot by default — set
存储=持久化在 journald.conf 中 - 失败的服务默认不会重试——需要添加
Restart=on-failure到 unit 文件中 - 网络依赖:
After=network.target是不够的——请使用network-online.target
Cron 的常见陷阱
- Cron 的 PATH 环境变量非常有限——请使用绝对路径或在 crontab 中设置 PATH
- 默认情况下输出会发送到邮件——请重定向到文件或
/dev/null - Cron 使用系统时区,而非用户时区——如有需要请在 crontab 中设置 TZ
- 如果编辑不当,Crontab 可能会丢失——
编辑前请先执行 crontab -l > backup进行备份 - @reboot 不仅在系统重启时运行,在守护进程重启时也会运行
内存与 OOM
- OOM killer 会选择“最佳”牺牲者,通常并非真正的问题进程——请检查 dmesg 以确认被终止的进程
- 交换空间颠簸比 OOM 更糟糕——请使用
vmstat - 内存使用情况在
free命令中包含缓存——真正重要的是"available"(可用内存) - 进程内存信息在
/proc/[pid]/status文件中——VmRSS是实际使用量 - cgroups限制会在系统内存耗尽前生效——容器会先终止
具有误导性的命令
df显示的是文件系统容量,而非物理磁盘——需要检查底层设备du无法正确统计稀疏文件——文件显示大小会小于实际磁盘占用ps aux内存百分比可能超过100%(共享内存被重复计算)uptime平均负载包含不可中断的I/O等待——不只是CPU负载topCPU百分比是按核心计算的——400%表示4个核心满载
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~