Linux - 文章列表
共 3 页
-
Linux下git合并冲突与子模块报错的排查方法(CONFLICT冲突标记、reference is not a tree与detached HEAD定位)
按CONFLICT冲突标记、Your local changes会被覆盖、fatal: reference is not a tree、MERGE_HEAD exists四类报错串分开处理:git status里both modified与deleted by us的读法、diff3与zdiff3冲突视图怎么开(zdiff3需Git 2.35.0以上,Ubuntu 22.04源里的2.34.1不支持)、rebase下--ours与--theirs语义反转、冲突标记漏删的git grep拦截、子模块update与sync、detached HEAD成因、删除子模块的完整四步。
-
Linux下Docker磁盘写满与overlay2目录暴涨的排查方法(docker system df定位、容器json日志限制与no space left on device解决)
Docker把磁盘写满时,容器退出、拉镜像报no space left on device。本篇按docker system df、df -i、du定位空间去向,讲清overlay2层结构与容器json-file日志撑爆盘的处理:truncate截断、daemon.json设max-size与max-file、prune从保守到激进的顺序,以及inode耗尽、句柄未释放和data-root迁移几种情况的处置办法。
-
Linux报错Too many open files的排查与解决方法(ulimit文件描述符上限、systemd LimitNOFILE与nginx worker_connections)
进程fd打到软限制1024时的完整排查路径:区分EMFILE与ENFILE、从/proc/PID/limits读真实上限、systemd服务加LimitNOFILE而不是改limits.conf、容器ulimit、nginx的worker_rlimit_nofile与worker_connections配套调整,以及用fd数量趋势判断是配置小还是代码在泄漏。
-
Linux服务器端口访问不通的排查方法(Connection refused、Connection timed out与No route to host的区分定位)
同样是连不上,Connection refused秒回、Connection timed out等满超时、No route to host又是另一层。按三种报错串分诊,给出ss、nc、curl、nft、tcpdump、ping -M do与iperf3的定位命令,覆盖监听地址、安全组、rp_filter与MTU几类常见原因。
-
Kubernetes Pod一直CrashLoopBackOff与ImagePullBackOff的排查方法(kubectl describe定位、探针配置与镜像拉取修复)
Pod卡在CrashLoopBackOff或ImagePullBackOff时的排查路径:kubectl describe看Events与Last State退出码,137、139、143、127各自代表什么,livenessProbe把慢启动应用杀掉时容忍时间怎么算,私有仓库的imagePullSecrets挂到ServiceAccount,节点上用crictl验证拉取,以及arm64节点拉amd64镜像导致的exec format error。
-
git clone报错Failed to connect to github.com port 443与SSL certificate problem的排查方法(代理配置、http.version与CA证书修复)
git clone拉不下来时,报错串可以分成两类:带port 443或Couldn't connect to server的查网络、代理与HTTP/2协议版本;带SSL certificate problem的查CA证书与系统时间。文中给出curl探测、git config --list --show-origin定位配置来源、http.version改HTTP/1.1、sslCAInfo指定证书、sslVerify临时绕过的完整命令。
-
Nginx报错502 Bad Gateway的排查方法(connect() failed与upstream prematurely closed connection定位、proxy_read_timeout与keepalive配置)
502 Bad Gateway基本都出在nginx与后端之间这一段。按error.log里的报错串分成四种情况定位:connect refused、upstream prematurely closed、upstream timed out、no live upstreams,再配keepalive与三个proxy超时参数,附上ss、curl与文件描述符的检查命令。
-
SSH登录报错Permission denied (publickey)的排查与解决方法(ssh -vvv定位、密钥权限修复与OpenSSH 8.8算法变更)
公钥登录报Permission denied (publickey)时按7个检查点排查:ssh -vvv看卡在哪一步、sshd -T确认实际生效配置、.ssh与authorized_keys的权限属主、OpenSSH 8.8禁用ssh-rsa的算法变更、用户名与端口、服务端日志定位,文中命令可直接复制执行。
-
Docker容器退出码137与OOMKilled的排查方法(docker inspect定位、内存限额调整与JVM容器感知)
容器跑着跑着自己就没了,docker ps -a里显示Exited (137),应用日志毫无异常。137等于128加9,是进程被SIGKILL杀掉的信号。本文讲如何用docker inspect确认OOMKilled、翻dmesg内核记录、读cgroup v2的memory.events拿到真实用量,以及不同退出码139、143的区别。
-
Linux下crontab定时任务不执行的排查与解决方法(PATH环境变量、百分号转义与日志定位)
脚本手动跑正常、放进crontab就不执行的排查记录:cron与crond服务状态、journal与/var/log/cron日志、PATH只有/usr/bin:/bin、百分号必须转义、5段与6段用户字段、/etc/cron.d属主与权限、CRLF行尾、时区与容器UTC,附一套env -i空环境复现命令。