不能在Linux或者类UNIX系统的硬盘上写入数据?想解决服务器上磁盘损坏的问题吗?想知道你为什么总是在屏幕上看到“磁盘已满”的字眼吗?想学习处理这些问题的办法吗?试试一下这8个解决Linux及UNIX服务器硬盘问题的小贴士吧。
#1 - 错误: 设备上无剩余空间
当你的类UNIX系统磁盘写满了时你会在屏幕上看到这样的信息。本例中,我运行fallocate命令然后我的系统就会提示磁盘空间已经耗尽:
$ fallocate -l 1G test4.img
fallocate: test4.img: fallocate failed: No space left on device
第一步是运行df命令来查看一个有分区的文件系统的总磁盘空间和可用空间的信息:
$ df
或者试试可读性比较强的输出格式:
$ df -h
部分输出内容:
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 117G 54G 57G 49% /
udev 993M 4.0K 993M 1% /dev
tmpfs 201M 264K 200M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1002M 0 1002M 0% /run/shm
/dev/sda1 1.8G 115M 1.6G 7% /boot
/dev/sda7 4.7G 145M 4.4G 4% /tmp
/dev/sda9 9.4G 628M 8.3G 7% /var
/dev/sda8 94G 579M 89G 1% /ftpusers
/dev/sda10 4.0G 4.0G 0 100% /ftpusers/tmp
使用df命令输出可以清楚地发现,在 /dev/sda10 分区下总共4.0Gb的空间被全部写满了。
修复磁盘写满的问题
1.用gzip,bzip2或tar命令压缩未压缩的日志和其它文件:
gzip /ftpusers/tmp/*.log
bzip2 /ftpusers/tmp/large.file.name
2.在类UNIX系统中用rm命令删除不想要的文件:
rm -rf /ftpusers/tmp/*.bmp
3.用rsync命令移动文件至其它系统或外置硬盘:
rsync --remove-source-files -azv /ftpusers/tmp/*.mov /mnt/usbdisk/
rsync --remove-source-files -azv /ftpusers/tmp/*.mov server2:/path/to/dest/dir/
4.在类UNIX系统中找出最占磁盘空间的目录或文件:
du -a /ftpusers/tmp | sort -n -r | head -n 10
du -cks * | sort -rn | head
5.清空指定文件。这招对日志文件很有效:
truncate -s 0 /ftpusers/ftp.upload.log
### bash/sh等 ##
|