我们继承了一系列服务器,这些服务器上有许多系统,都运行着 CentOS。其中许多服务器未得到充分利用,可能只是处于闲置状态。尽管如此,有时仍有可能访问脚本或数据库。我想确切地了解这些服务器在做什么——正在运行哪些脚本、正在访问哪些数据库等。您将如何探索继承的系统以确切了解正在运行/访问的内容?
答案1
最划算的做法是考虑以下两件事:
- 提供什么服务?
- 哪些作业正在按计划运行?
Bring 提供哪些服务
你应该可以通过两种方式找到大多数内容
- 使用 来查看 init 启动了什么
chkconfig --list
。查找任何标记为“on”的内容,并将其添加到要分析的列表中。 - 使用“netstat -anut | grep 'LISTEN '”查看端口上实际监听的内容。这将为您提供处于监听状态的所有 TCP/UDP 端口的列表以及打开它们的二进制文件。将这些添加到要分析的列表中。
哪些计划任务正在运行 这将涉及查看各种各样 cron 作业,以查找任何非标准内容。这个可能需要更长的时间,因为要查看的位置更多。
- 查看“/etc/cron.(daily|weekly|hourly|monthly)”中的所有可执行文件。
- 查看所有文件(如果有)
/etc/cron.d
- 检查所有用户 crontab
/var/spool/cron
根据这两个发现,你可能需要开始进一步挖掘。例如,如果服务httpd
正在运行,你需要查看/var/www
并/etc/httpd
确切地找出什么正在提供服务。
这种发现可能需要一段时间,而且需要做很多工作。最终,这是一次很好的锻炼。您将获得一套经过良好锻炼的技能,并对环境有相当好的理解。
答案2
运行ps -ef
将显示当前进程。
您可以在几个终端中运行这些命令一段时间:top
,iftop
它们iotop
分别提供 CPU、网络和磁盘使用情况等。
检查 cron 文件和中提到的二进制文件/事件的调度/var/log/messages
,/var/log/secure
也/var/log/syslog
应该有帮助。