作为程序员一定要保持良好的睡眠,才能好编程

linux 出现问题如何排查

发布时间:2017-06-06


很奇葩,服务器出现了问题,真是头疼,搭建服务器还可以,但是一旦出现问题,就不知所云。


怎么办,使用万能的百度吧,一路百度一路百度,可想而知,这个效率啊 ,蜗牛一样的效率。


今天服务器被挖矿了,CPU占用较高,哦哦... wnTKYg 占用


另外说明一下  wnTKYg 这个问题,就是  因为:


这样的病毒是直接远程连接redis,一般redis都是root安装的,连接redis也就掌握了root权限,它可以往你的定时任务里写内容。

中这样的病毒大多都是因为redis没有设置密码,存在着很大的安全漏洞,所以大家要设置redis密码,并且更改redis的端口。安装时最好别用root安装。(后续会更新redis设置密码,和连接java)

因此以后安装好redis以后,需要把redis密码设置好,以防这样的攻击。




查找服务器异常,简要的一个思路:


top  看运行状态


ps -ef  看看进程


kill -9 杀死进程


开机是否自动运行木马    cat /etc/rc.d/rc.local


定时任务清查  crontab -e


last  显示所有登录过服务器的人







那么如何排查错误啊:


1、top  查看服务器的运行

    v1.jpg

    看看什么程序占用较高,然后着重找这个文件

    使用ctrl+c退出


    然后使用  ps -ef | grep 进程名字  找到进程号 

    

    使用  kill -9 进程号    杀死进程 



2、netstat 使用这个命令查看服务器对外的接口,正在运行的程序有哪些?

    

   netstat -ntl

   

   netstat -ntlp


   netstat -nto




3、查看开机运行的代码:

   vim  /etc/rc.d/rc.local

   v2.jpg


4、定时任务都在作甚么?

   crontab -l  查看定时任务都有哪些执行的命令


   crontab -e  这个是可以编辑定时任务这个文件,如果我们是排查错误,一定要把这里额外的任务删除。

    

   





5、开启防火墙 防护一些不必要的攻击,linux的防火墙这是一个很好的防护工具,请把一些不需要的端口关闭。

    

   如何查看防火墙是否开关? service iptables status


   chkconfig iptables on


   iptables -L 查看现在防火墙都配置了什么。

    


6、看看开机启动是否已经添加

   chkconfig --list   

    v3.jpg 


    可以看到所有的服务列表 


    chkconfig --list iptables 

    上述命令只显示 iptables这项服务。

        

    on 开启  off 关闭

    chkconfig iptables on 

    chkconfig iptables off 

    

    chkconfig --add name:增加一项新的服务。但默认所有级别都关闭状态

      chkconfig --add iptables

    

    

chkconfig [--level levels] name <on|off|reset>:设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在3,4,5运行级停止smb服务,则命令如下:

chkconfig --level 2345 iptables on 

表示 2,3,4,5 级别为启动

chkconfig --level 2345 iptables off  

表示2,3,4,5 级别为关闭

chkconfig --del name:删除服务

chkconfig --del iptables 

表示删除smb的服务,当然,肯定是关闭了

    

附加介绍一下Linux系统的运行级的概念:

Linux中有多种运行级,常见的就是多用户的2,3,4,5 ,很多人知道5是运行X-Windows的级别,而0就是关机了。

Linux 系统默认运行级别,命令方式通常是3,图形方式通常是5, /etc/inittab里的initdefault就知道了

v4.jpg 

  1. 0 为停机,机器关闭。(千万不要把initdefault设置为0 )  

  2. 1 为单用户模式,就像Win9x下的安全模式类似。  

  3. 2 为多用户模式,但是没有NFS支持。  

  4. 3 为完整的多用户模式,是标准的运行级。  

  5. 4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。  

  6. 5 就是X11,进到X Window系统了。  

  7. 6 为重启,运行init 6机器就会重启。(千万不要把initdefault设置为6 )  






df -m  查看磁盘的使用情况

netstat -ntlp

netstat -nt

ps -ef | grep mysql


tracert

tracert 主机:查看从你自己到目标逐机到底经过了那些路径。如: 

tracert www.baidu.com 然后等待。。。就会看到你经过的一个个路由节 

点,一般大一点的路由器,如电信的主干路由,除了ip以外,都有英文标示的。 



pathping 

pathping 主机:类似tracert,但可以显示一些tracert不能显示出来的信 

息。可以自己试试。 



开机都运行哪些文件呢,目录在什么位置:

如果我们有一个 比如说  mysqld   那么这个服务应该放在 /etc/init.d/  这个目录,并赋予可以执行的权限 

就可以使用 service mysqld restart 这样的命令完成


/etc/rc.local 

/etc/init.d

/etc/rc.sysinit 

/etc/inittab 

/etc/profile

    

/etc/rc.local
这是一个最简单的方法,编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可(要输入命令的全路径),类似于windows下的“启动”。