linux操作系统服务器在出现死机或卡顿情况,可以参考以下项目进行整体排查:
a、检查服务器进程与服务否占用了太多的内存或是没有释放内存,当服务器内存用完后,然后就会很快宕机;
b、看看/var/spool/cron/crontabs里面是不是有cron(计划任务、自动任务)在对应时间段内执行;
c、检查web服务器的参数是否超过了服务器的性能,如允许最大连接数过高等;
d、进程数很高,服务瘫痪,机器假死(例如zombie进程是否过多,一直占用资源);
e、tail -n 5 /var/log/syslog查看系统日志是否有异常(最后5行)
f、检查磁盘是否有坏块。(可使用badblocks命令配合参数)
g、内核消耗过大,查看是否有瞬间资源占用过大的进程或服务;
h、ps -ef 查看进程异常否,是否存在攻击
使用top、ps aux 查看主机目前运行中的哪些程序占用CPU资源较大,可以进行下一步处理(例如停止、重启测试)。
启动机器,看能否登陆,如果能登陆,请检查:
a、是否是应用程序导致内存溢出或者泄露导致
b、是否是进程过多或者不断创建,耗尽资源导致
c、是否是数据库程序死锁,连接数过多导致
d、是否是应用程序异常导致
e、是否是流量负载过大导致
f、 是否是遭受黑客入侵攻击导致
g、是否是误操作导致
如果无法查看故障现场,则可以查询系统日志查看是否有异常记录。
同步时间
ps -ef|grep ntp 查看是否运行了ntp,没有 apt-get install ntp
修改 文件在 /etc/ntp.conf 中的 server
当然,也可以用下面的命令手动进行时间同步:
# ntpdate pool.ntp.org //(这里是同步的具体地址,比如 tp1.aliyun.com)等vsftp无法使用,尝试查看/etc/passwd下的目录发现用户使用的账号没有问题,但是尝试telnet 127.0.0.1 21 的时候主机报错“
500 OOPS: vsftpd: cannot locate user specified in ‘ftp_username‘:ftp ”。
处理办法:在/etc/vsftpd.conf 文件内加入ftp_username=nobody 保存,重启vsftp服务,该问题即可解决
linux 无法远程连接的检查方法
终端可以连接后的一般排查方法如下:
1、如果在本地都无法telnet到ssh 的远程端口,可以终端登陆服务器后可以先查看一下,服务器上ssh服务是否正常启动,使用netstat -natlp 可以查看一下相关的进程,如果有该sshd进程,并正常监听,说明可能是其他问题引起,如果没有使用service sshd start 的命令启动一下该服务在进行一下测试。如果启动失败,可以根据相关的提示的报错在逐一进行排查.
2、 查看一下服务器上是否有运行NetworkManeger 的服务,这个服务会影响到您的网络,可以使用service NetworkManager status ,查看一下服务状态,如果是开启的,请使用stop命令停止,(一般装完 就会关闭 我发现我没开启)
停止后还需要重启网卡服务,service networking restart ;如果没有开启继续排查其他问题;
3、查看一下防火墙是否有拦截,可以先关闭防火墙测试, 一般用ufw 这个工具 ufw status 查看
ufw disable
关闭 ufw enable 开启 ufw allow 22 开启 22 等等命令
4、 当查看sshd 服务正常启动。防火墙关闭或没有拦截,网络服务正常运行时,外部如果还telnet 不到您的默认的端口,此时需要查看一下服务器的默认端口是否有更改,打开ssh的配置文件,vi/etc/ssh/sshd_config 查看# port 后面监听的端口是否有更改,默认是22 。以及 listenaddress 后面默认是0.0.0.0 表示全部网卡都监听,如果这里是127.0.0.1 那么代表只能本机上 ssh 连接的。
5、如果此 时端口已经都正常,但无法连接到服务器上,请查看ssh配置文件中是否禁止了 root用户登录,vi/etc/ssh/sshd_config 中有相关的 参数 PermitRootLogin 看后面是否更改为了no .默认是yes ,即允许root登陆连接。
linux服务器内无法访问其他站点的检查处理方法
1.ifconfig检查网卡信息是否正常
ifconfig 命令会有3个网卡,分别是eth0-内网网卡,eth1-公网网卡,lo-回环网卡
2.路由表是否正常
3.能否正常ping内网网关
route -n 可以看到Gateway 网关。
4./etc/resolv.conf中是否指定nameserver
cat /etc/resolv.conf 查看是否指定了nameserver
5.nscd进程是否正常
ps aux |grep nscd 查看是否有/usr/sbin/nscd
6.防火墙是否限制对外网80、53端口的访问
ufw status
linux下空间满可能有两种情况
可以通过命令
df -h 查看磁盘空间占用,实际上是查看磁盘块占用的文件(block)
df -i 查看索引节点的占用(Inodes)
磁盘块和索引节点其中之一满,都会导致无法创建文件,提示磁盘空间已满。
所以请注意,查看磁盘还有空间,但是创建文件提示空间满,可能是inodes节点已满
通过命令:find / -size +100M |xargs ls -lh
列出系统内大于100M的文件
du -h --max-depth=1
查看当前目录内文件夹的大小
可以两种方式都测试下,有些时候,占用了大量空间的其实是系统日志或业务附件等小文件,
所以根据文件大小去查找不一定能查出正在占用硬盘空间的【目录】或文件,建议使用第二种
日志文件较大
web访问日志,建议做定时任务日志切割,以天为单位做压缩备份(可以通过脚本实现),保留一定时间以备查看,有需要可以做日志分析。
以 一键安装包的环境为例,/alidata/log/ 目录下是是日志文件,可以检查文件大小是否占满磁盘使用,通常,access目录下文件为访问日志,error为错误日志。如磁盘占慢,这些日志又不重 要,那么可以做清空处理,方法1,可以rm 删除掉,2 echo"" >access.log