方法:运维过程中的实际问题解决方法

  系统管理员的责任是保持系统安全和顺利运行。当用户遇到问题时,通常会找管理员帮助其回到正轨。本节建议的方法可以保持用户满意度和系统佳性能。

  “十步法”为用户解决无法登录问题

  当用户无法在系统上登录时,根源可能是用户错误或系统的软硬件故障。下面的十个步骤可以帮助确定问题所在。

  第一步:检查 /var/log 中的日志文件。/var/log/messages 文件收集系统错误、来自守护进程的消息以及其它重要信息。它可能会表明问题的原因或更多症状。另外,检查系统控制台。有时系统问题相关的消息不写入 /var/log/messages 中(例如一个完整的磁盘),而是显示在系统控制台上。

  第二步:确定是否只有一个用户或一个用户的终端 / 工作站有问题或者是否问题更广。

  第三步:确定该用户没有打开其 CAPS LOCK 键。

  第四步:确保该用户的主目录存在,并且在 /etc/passwd 文件中有对应于该用户的条目。验证该用户拥有其主目录和启动文件,并且它们是可读的(而且该用户对其主目录有可执行权限的情况下)。确认在 /etc/passwd 中的该用户登录 shell 条目是准确的,并且存在指定的 shell.

  第五步:如果用户忘记了自己的密码,则更改该用户的密码。

  第六步:检查该用户的启动文件(。profile、。login、。bashrc 等)。该用户可能已对这些文件之一进行了编辑,并引入了禁止登录的语法错误。

  第七步:检查终端或终端与计算机之间的数据线。尝试关闭终端或显示器,然后再重新打开。

  第八步:当问题似乎比较广时,检查能否从系统控制台登录。确保系统未在单用户模式。如果无法登录,系统可能已崩溃,需要重新启动它,并执行任何必要的恢复步骤。

  第九步:使用 df 来检查整个文件系统。如果 /tmp 文件系统或该用户的主目录已满,登录有时会以意想不到的方式失败。在某些情况下,可能能够登录到文本环境,但不能登录到图形环境。用户登录时启动的应用程序无法创建临时文件,或无法更新用户主目录中的文件时,登录过程本身可能会终止。

  第十步:如果用户通过网络连接登录,需要重新启动该用户尝试使用的服务(例如 ssh)。并请确保两个系统上的时钟是同步的。当使用 HTTPS、ssh、LDAP 尤其是 kerberos 等加密登录方法时,时钟设置的时间不同可能会导致登录失败。还要请确保 DNS 正常工作。一些网络服务与名称解析的相关性比较强,包括反向查找(即名称解析问题会导致拖慢通过 ssh 的连接)。

  加快系统运行速度

  当系统由于不明原因运行缓慢时,也许是用户注销时没有关闭进程。此问题的表现包括很长的响应时间和很大的系统负荷,如使用 w 或 uptime 所示的数据大于 1.0.好运行 top 以迅速找到流氓进程。使用 ps – ef 可列出所有进程。在 ps – ef 输出中要找的内容是大量的 TIME 列。例如,如果 Firefox 进程的 TIME 字段超过 100.0,这一进程有可能运行不正常。然而,如果该用户正在执行大量的 Java 工作,并且已经登录很长时间,这个值可能是正常的。检查 STIME 字段以查看该进程启动的时间。如果该进程的运行时间比用户登录在线的时间还长,好终止它。

  当用户遇到问题,并在没有通知任何人的情况下离开无人值守的终端时,好终止该用户拥有的所有进程。如果用户在控制台上运行 GUI,终止启动桌面环境的进程或窗口管理器本身。还要继续查找包括 gnome-session、startkde 或其它以 wm 结尾的进程名。通常窗口管理器既是第一个也是后一个要运行的进程,并在用户注销时退出。如果终止窗口管理器不起作用,可尝试终止 X 服务器进程,这个进程通常列为 /usr/bin/Xorg.如果上述操作失败,当以该用户身份登录时,通过执行 kill – 15 – 1 命令或等效的 kill – TERM – 1 命令,可以终止用户拥有的所有进程。使用– 1 替换进程 ID 以告诉 kill 来给该用户拥有的所有进程发送信号。例如,作为 root 可以输入以下命令:

  # su zach -c 'kill -TERM -1'

  如果不能终止所有进程(有时 TERM 无法终止进程),可以使用 KILL 信号(– 9)。下面这行一定会终止 Zach 拥有的所有进程,但不太友好:

  # su zach -c 'kill -KILL -1'

  如果不包含 su zach – c,这个命令将关闭系统。