网淘吧来吧,欢迎您!

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或云服务商的快照

网络

  • localhost127.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 60 Systemd

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个核心满载

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第349300名访客 今日有175篇新文章/评论