这是我的环境:
Solaris 版本 10;Sun OS 版本 5.10 Oracle 版本:11g Enterprise x64 版。
当我通过 putty 登录时,它给出了以下输出:
登录为:ora 使用键盘交互式身份验证。
密码:
上次登录:2014 年 11 月 2 日星期日 10:24:21 来自 abc
它没有显示“$”符号或任何东西。我无法在上面写字,但无法执行 linux 命令或从中获取任何输出。我甚至用 root 密码登录了,但情况仍然一样。有人能给我描述一下并指导一下吗?
我的基于 Oracle 的数据库正在其上运行,但我不想重新启动服务器。那么我该如何修复它并获取 $ 或 # 呢?
答案1
您几乎肯定会在登录过程中遇到失败。某些东西挂起并阻止您进入交互式 shell。
尝试以下技巧来重新进入:
- 以其他用户身份登录/在服务器上找到其他具有登录名的用户,然后
su <your username>
(请注意 su 中没有“-”,这会跳过目标用户的环境) - 以 root 身份登录或请求系统管理员以 root 身份编辑您的个人资料
ftp
通过或连接ftps
- 通过非交互式链接试试运气,例如
scp
、rsync -e ssh
或sftp
如果其中一种技巧能让你获得访问权限并获得一个交互式 shell,那么你应该把你的配置文件放在一边:
mkdir broken-profile-files ; mv .profile .bashrc .login .cshrc .bash_profile broken-profile-files
如果你有一个非交互式 shell,比如 ftp,使用ls
或ls -a
来识别任何配置文件,然后移动或删除它们(通常是rename
或delete
)
如果您可以通过 rsync 之类的方式进入,您可以先通过执行 rsync pull 来备份文件的当前版本,然后将空文件推回去覆盖它。
返回并使用空配置文件运行后,请执行以下操作进行调试:
- 打开一个新 shell,让它保持打开状态,不要碰它,不要关闭它。事实上,打开两个,为什么不呢?这将是你的“免费出狱”卡。
- 现在逐个复制你的配置文件,每次尝试通过新窗口登录,直到问题再次出现
- 要么在有问题的文件顶部添加 set -x,要么
echo "Here"
在其中添加几行来跟踪在文件冻结之前你执行了多少操作 - 识别问题并根据需要进行调试/修剪
可能造成挂起的原因:
- 尝试探索无效或陈旧的目录树(例如,在陈旧的 NFS 安装的 autohome 目录上 shell 扩展 *)
最后一个想法:也有可能您在某个全局配置文件中存在较大的错误,在这种情况下,我建议您进入单用户模式并通过这种方式进行修复。
答案2
我已经解决了这个问题。
由于硬件故障,服务器处于挂起状态。我让它保持登录状态超过 30 分钟,然后它就进入了终端。
但还是感谢您的建议,尤其是 Smiling Dragon!!