给目录增加容量

 

业务部门报磁盘满了,但又不能清理一些数据,需要给一个目录增加容量:

这个首先得有一个额外的新分区或新硬盘,并挂载起来才能解决!

 

这里我们假设新分区或新硬盘挂载在/disk

有两种方法:

  1. 直接挂载到目录下:

    1)把需要扩容的目录下的内容复制到新分区

    [root@jmtom home]# cp -ax /home/job/* /disk

    2)删除掉原目录下的内容

    [root@jmtom home]# rm -fr /home/job/*

    3)卸载/disk

    [root@jmtom home]# umount /disk

    4)把新分区挂载到/home/job/原目录下

    [root@jmtom home]# mount /dev/sdb1 /home/job/

    5)固定其挂载点:

    [root@jmtom home]# echo "/dev/sdb1  /home/job/  ext4  default  0  0" >> /etc/fstab

     

  2. 用的是链接方法:

    1)把内容复制

    [root@jmtom home]# cp -ax /home/job/  /disk

    2)创建链接

    [root@jmtom home]# mount --bind /disk/job  /home/job

    3)设置开机自动链接

    [root@jmtom home]# echo "mount --bind /disk/job  /home/job" >> /etc/rc.local

     

    常用的方法是方法1

     

    PS:小知识点

    #ln -s 是软链接

    #mount --bind  相当于给目录创建了硬链接

    但是 mount --bind 与目录硬链接还是有点区别的,mount --bind 只会造成有限次数的循环,而目录硬链接会造成无限循环,所以linux是不允许目录硬链接的,而mount --bind 只会报错“存在循环的目录结构”

     

    符号链接与硬链接的区别:

  •   符号链接,即软链接,相当于windows里的快捷方式。

  •   硬链接 就好像又复制了一份,并且是跟源进行同步的。

     

    例如,目前我们有一个aa的文件:

    #ln aa  bb  ---->硬链接,这样就生成了一个bb的文件,其内容与aa是一样的,在aabb文件上有修改的话,aabb之间都会同步修改内容。删除aa,其bb不会受到影响。

     

    #ln -s aa  cc --->软链接,这样cc相当于是aa的快捷方式,其修改会与aa同步,但如果aa被删除的话,cc也将不可用!