最近发现一台装有Solaris的Sun服务器上的FTP服务突然不能使用了,我首先想到的是检查ftp服务有没有打开。svc –a | grep ftp,发现ftp服务处于online状态。svcadm restart ftp重启服务后,仍然不能正常访问,但是登录系统后直接输入ftp命令是没有问题的。接下来我考虑去/etc/ftpd目录下检查ftp的配置文件。
首先简单地介绍一下几个ftp的配置文件(详情见《系统管理指南:网络服务》):
ftpusers 列出被拒绝访问 FTP 服务器的用户。
ftphosts 用于允许或拒绝从各种主机登录到FTP 服务器的各种帐户。
ftpaccess 是主 FTP 配置文件。只有使用 -a 选项调用 /etc/ftpd/ftpaccess,FTP 服务器才会读取该文件。所有用户必须为允许访问 FTP 服务器的某类成员时才能使用 ftpaccess 文件。
本来打算编辑一下ftpusers文件,把文件的root用户删掉(即允许root用户使用ftp),但发现提示系统资源不足,不能编辑文件。这下可以肯定是根文件系统磁盘空间不足导致的问题了。使用df –k发现,根文件系统果然已经100%被占用了。
根目录下造成占用的情况主要有:
(详情见http://swachian.javaeye.com/blog/183749)
日志文件;
core文件;
系统崩溃转储文件。
1. 清除系统日志文件
日志文件主要存在于/usr及/var 两个目录下,包含了系统运行及用户访问系统的信息,系统在运行过程中,会不断地把新的信息添加到日志文件,因此日志文件会急剧增多
2. 删除core文件
当系统中一些进程由于收到一些信号而非正常结束时,系统便建立一个core文件,记录进程当时的一些信息,包括进 程状态、数据以及硬件寄存器的值等。在这些core文件没有用的时候,可以考虑删除它们。core文件的删除,应该首先确认要删除的core文件是否还有 使用价值,可通过file core命令查看是由哪些进程产生的,在确认对调试程序没用的时候再进行删除,也可以通过下面的命令来删除10天内未存取过的core文件:
find / -name core –atime +10 –exec rm {} \;
我使用df时发现根文件系统下最大的就是core文件,删除了发现可用空间并没有明显的变化,可能是由于有些内容保存在内存中,需要重启才能生效。
3. 删除崩溃转储文件
比较少见的情况,但不是完全没有
# cd /var/crash/system -- 崩溃转储目录
# rm
# ls -- 验证以删除
为了解决根文件系统空间不足的问题,我们也可以通过软链接的方式转移大目录或大文件至其它分区,具体操作如下:
1、找出根文件系统占用磁盘空间大且可以转移的目录或文件 。
2、找出有空闲空间的磁盘分区 。
3、 假设我们要把根文件系统下的a文件转移到/export/home文件系统下,
mv /a /a.bak
cp -r /a.bak /export/home/a
ln -s /export/home/a /a