对于 Linux 服务,想排错得心应手的话,先要养成良好的操作习惯。
(1)错误信息
一定要仔细查看接收到的错误信息。如果有错误提示的话,根据错误提示,去判断产生问题所在。
(2)配置文件
配置文件存放服务的设置信息, 用户可以修改配置文件, 以实现服务的特定功能。 但是,用户的配置失误, 会造成服务无法正常运行。 为了减少输入引起的错误, 很多服务的软件包,都自带配置文件检查工具,用户可以通过这些工具,对配置文件进行检查。
(3)日志文件
一旦服务出现问题,不要惊慌,用组合键 Ctrl+Alt+F1 到 F6 切换到另外一个文字终端,使用 tail 命令来动态监控日志文件。
[root@RHEL4 ~]# testparm -F /var/log/messages
当遇到问题时查看日志是比较效率的解决方法。在Linux系统中,有三个主要的日志子系统:
1、连接时间日志
2、进程统计
3、错误日志
常用的日志文件如下:
access-log 纪录HTTP/web的传输
acct/pacct 纪录用户命令
aculog 纪录MODEM的活动
btmp 纪录失败的纪录
lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录
messages 从syslog中记录信息(有的链接到syslog文件)
sudolog 纪录使用sudo发出的命令
sulog 纪录使用su命令的使用
syslog 从syslog中记录信息(通常链接到messages文件)
utmp 纪录当前登录的每个用户
wtmp 一个用户每次登录进入和退出时间的永久纪录
xferlog 纪录FTP会话
who:who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。
w:w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。
last:last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。
ac:ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间(小时),如果不使用标志,则报告总的时间。
ac -d(回车)显示每天的总的连结时间
ac -p (回车)显示每个用户的总的连接时间
lastlog:lastlog文件在每次有用户登录时被查询。
可以使用lastlog命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示”**Never logged**。注意需要以root运行该命令,
二、网络排错的基本思路
基本思路如下,这跟网上的大多数人写的应该是差不多的。
(1)检查物理链路是否有问题
(2)查看本机IP地址、路由、DNS的设置是否有问题
(3)测试网关或路由器的通畅情况。先测网关然后再测路由器,一级一级地测试
(4)测试ping公网ip的通畅情况(平时要记几个外部IP)
(5)测试DNS的通畅情况,可以直接ping网站地址
下面的第三部分,就针对上面的基本思路来进行详细的说明。