linux限制文件夹大小

Loopback设备是linux中的一个可以用来像其他媒体设备一样的虚拟设备。媒体设备的例子像硬盘分区,例如/dev/had1,/dev/had2,dev/sda1,或者像/dev/fd0软盘分区一样的整个磁盘。这些设备全部都可以用来储存文件以及目录。它们可以被格式化成需要的文件格式(ext2fs, msdos, ntfs等)然后被mount。
Loopback文件系统就是把一个文件和另外的一个文件系统联系起来,就像一个完整文件系统一样。它可以被格式化和mount成以上所提到过的文件系统。这样,这些设备就被称为/dev/loop0或者/dev/loop1,然后和文件产生联系,然后这个虚拟设备被mount。

方法一
你可以用dd命令创建一个你需要限制的最大字节数的文件
然后用该文件创建loopback设备,然后将该设备挂接到你需要限制的目录就行了
#dd if=/dev/zero of=/mnt/point1/file.img bs=1k count=1000
#losetup /dev/loop1 /mnt/point1/file.img
#mkfs -t ext3 /dev/loop1 1000
#mkdir /mnt/point2
#mount -t ext3 /dev/loop1 /mnt/point2

方法二
定期执行限制文件夹容量的脚本
#!/bin/bash
ls -1 /data > /file
df=$(cat file)
for file in $df
do
size=$(/usr/bin/du -sk /data/$file |/bin/cut -f1)
while [ 1024 -lt $size ] do
   chmod -R 400 /data//data/$file
   exit
done
done

方法三
先使用quota限制某一使用者或群组最大磁盘配额然后以创建链接的方式限制文件夹的大小
1.开启磁盘的 quota 功能:编辑/etc/fstab ,使得准备要开放的 quota 磁盘可以支持 quota;
2.预扫瞄磁盘的使用情况:使用quotacheck 来扫瞄一下我们要使用的磁盘;
3.建立使用者的quota :使用edquota 来编辑每个使用者或群组的可使用空间;
4.启动quota:使用quotaon
5.依据不同的使用者与群组来设定quota然后创建链接
开启磁盘的quota功能:
#vi /etc/fstab
/dev/hda1       /               ext3            defaults        1       1
/dev/hda2       swap            swap            defaults        0       0
/dev/hdb1       /backup         ext3            defaults        1       1
/dev/hdb2       /home           ext3            defaults,usrquota,grpquota 1 1
(1)重新开机==>reboot;也可以选择
(2)重新 remount filesystem 来驱动设定值
# umount /dev/hdb2
# mount -a
或者
#mount -a -o remount <==这个指令可以重新将 /etc/fstab
扫瞄磁盘的使用者使用状况,并产生重要的aquota.group与aquota.user:
#quotacheck -avug
quotacheck: Scanning /dev/hdb2 [/home] done
quotacheck: Checked 10 directories and 22 files
Linux 版本中,我不能够以 aquota.user(group)来启动我的quota ,建立连接quota.user(group)
#ln -s aquota.group quota.group
#ln -s aquota.user quota.user
启动 quota 的限额:
#quotaon -av
编辑使用者的可使用空间:
#edquota –u test
Disk quotas for user test (uid 501):
Filesystem         blocks       soft       hard     inodes     soft     hard
/dev/hdb2              32     40000       50000          8        0        0
#edquota -p test test2 \\将这个设定同时复制给 test2
#edquota -t \\设定宽限时间
#quota –vu test test2 \\查询一下是否真的有设定进去
设定开机时启动:
#vi /etc/rc.d/rc.local
/sbin/quotaon -au
创建链接:
ln -s /home/test /var/www/

你可能感兴趣的:(linux,脚本,bash)