这篇记录一些奇奇怪怪的命令执行异常的情况,后续有新的发现也会补录进来
cd 按 tab 自动补充文件报错(普通用户)
bash: cannot create temp file for here-document: Permission denied
因为原先修改 /tmp 目录权限忘了改回来碰到的,把 /tmp 执行权限恢复以后,就正常了。
按照上述的情况,按 tab 是需要 /tmp 目录下创建临时文件的,但是我通过检测没看到有新增的文件出来,所以不是很清楚原因,按 tab 还不能通过 strace 追踪,就更迷糊了。
watch -d ls -al /tmp
bash-completion
的包提供Tab补全功能。安装此包后,可以通过.bashrc
或.bash_profile
文件配置补全行为。我检查了,8版本的系统上面,这两个包都存在。
# 这个目录里面定义了对应命令的填充脚本的方式
/usr/share/bash-completion/completions
# 支持自定义的补全脚本
~/.bash_completion
巡检脚本没有正常结束,复现发现是 df 命令无响应
df -Th # 无响应 打印文件系统类型
df -lh # 正常 只打印本地文件系统
1、按经验判断,这种就是 nfs 无法访问导致的,执行 mount 看看是否存在 nfs 挂载就行了
2、如果没碰到过,可以用 strace df -Th 去看看最终在哪卡住,再分析也能找到原因
3、处理办法就是先恢复 nfs ,然后卸载重新挂载即可(自行评估影响)
这个不同于上面 nfs 异常导致的 df 命令卡住,这个甚至都无法 kill 进程
1、登录服务器复现问题,发现df命令执行会卡住,且进程无法kill
2、strace df -Th 追踪执行情况,发现执行最终停止在 /proc/sys/fs/binfmt_misc
# strace df -Th
... ...
stat("/sys/kernel/config", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/proc/sys/fs/binfmt_misc",
^C
^C
Process 20192 detached
3、上网搜索这个问题,df 执行到 /proc/sys/fs/binfmt_misc 报错
Linux 使用命令df -h 卡住 解决方法-CSDN博客
df 被 hang 住,无法查看磁盘使用情况解决 - 简书
4、重启如下服务恢复,原因不明
systemctl restart proc-sys-fs-binfmt_misc.automount
这篇笔记里面好几处问题都没有找到原因,有了解的朋友可以评论讨论一下,谢谢!