前言:对于linux系统,可能会遇到某个分区(挂载点)比如/目录或者/home目录的磁盘空间即将用完的情况,造成这种现象的原因有很多种,比如这个分区可能存在较大的文件,其中最麻烦的一种情况是最初安装系统时给这个分区分的磁盘不够大,导致后面不够用,显然这个时候重装一次系统是比较麻烦也是不太可取的(万不得以才重装系统),可以通过建立软链接的方式来解决这个问题。


1.查看磁盘各分区占用大小

命令端输入:df -m
通过软链接解决磁盘分区空间不足 - 图1

2.查看文件夹和文件大小

du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh
du常用的选项:

  1. -h:以人类可读的方式显示
  2. -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
  3. -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
  4. -c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
  5. --apparent-size:显示目录或文件自身的大小
  6. -l :统计硬链接占用磁盘空间的大小
  7. -L:统计符号链接所指向的文件占用的磁盘空间大小
  8. du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量
  9. du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。
  10. du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序
  11. du -sk filename 查看指定文件大小

通过这种方法,可以找到占用磁盘最大的文件夹或者文件。

3.移动文件夹或文件到其他空间大的分区或目录

比如,在/var/log下有一个非常大的文件syslog.1(系统重要的日志文件,不能删除,会不断增大)我们假设它大约100G这个日志文件导致/目录提示磁盘空间不足,我们可以先将这个syslog.1文件移动到其他分区,假设我们在/home下建了一个var目录(假设home目录磁盘空间充足),那么可以将syslog.1移动到/home/var下.
移动命令如下:

# mv /var/log/syslog.1 /home/var

(注意使用管理员身份运行)

4.建立软链接

具体用法是:ln -s 源文件 目标文件
注:源文件和目标文件既可以是文件,也可以是文件夹。
针对上面我们的示例,代码这么写:

# ln -s /home/var/syslog.1 /var/log/syslog.1

这个代码的本质是,在/var/log目录下建立了一个/home/var/syslog.1的快捷方式,这个快捷方式的名称
也是syslog.1。这样当系统往/var/log目录下的syslog.1里储存或读取日志时,实际上数据是对/home/var/目
录下的syslog.1进行操作,而我们都知道,软连接(快捷方式)占用的空间是非常小的,所以这就解决了/目录磁盘空间不足的问题。 之后可以进入/var/log目录下进行查看生成的软链接:通过软链接解决磁盘分区空间不足 - 图2 可以发现,软链接的颜色和其他文件是不太一样的。