Instalar y configurar un sistema de cuotas(quota) en ubuntu 12.04 server
Continuando con el anterior post donde se monto un sistema RAID 1, por software, ahora vamos a ponerle cuotas de espacio a los usuarios que van a utilizar el sistema RAID(ejemplo aplicable a un servidor de correo o cualquier otro recurso compartido que requiera de almacenamiento físico):sudo su
apt-get install quota
- Editamos el archivo /etc/fstab y modificamos solo la linea que nos dice de que forma se va a montar nuestro dispositivo RAID y en los permisos le diremos que vamos a utilizar cuotas para el usuario y grupo:
nano /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda1 during installation
UUID=7848f226-f5f1-4cee-ba55-37bb978930e1 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=1df5c0e7-32ce-4fd9-ba3a-9420acf1b2e3 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
/dev/md127 /datos ext2 defaults,usrquota,grpquota 0 0
root@ubuntu:/# reboot
-Tras reiniciar, en el punto de montaje del dispositivo RAID nos debe aparecer dos nuevos ficheros
root@ubuntu:/# ls /datos/
aquota.group aquota.user lost+found
- Para hacer un test y comprobar que todo ha ido bien, ejecutar:
Si todo ha ido bien, ya tenemos el sistema de cuotas montado y solo faltaría definir las cuotas.
- Las cuotas se pueden definir a nivel de usuario, argumento -u, o a nivel de grupo con el argumento -g:
root@ubuntu:/# groupadd contabilidad
root@ubuntu:/# useradd -g contabilidad -s/bin/bash -p user1 -d /home/user1 -m user1
root@ubuntu:/# useradd -g contabilidad -s/bin/bash -p user2 -d /home/user2 -m user2
root@ubuntu:/# quota -g contabilidad
Disk quotas for group contabilidad (gid 1003): none
- Definimos la cuota para el grupo contabilidad, con edcuota:
root@ubuntu:/# edquota -g contabilidad
Disk quotas for group contabilidad (gid 1003):
Filesystem blocks soft hard inodes soft hard
/dev/md127 0 0 0 0 2 4
* En este caso la cuota de se ha limitado por nº de entradas, 4 máximo o duro y 2 de gracia o blando, en el punto montaje, pero personalmente considero que es más efectivo limitar por tamaño, por lo que hay va un ejemplo:
/dev/md0 0 3072 6144 10 0 0
* Se limita al grupo a utilizar un máximo de 6 Mb y una cuota de gracia de 3Mb.
La cuota de gracia significa: una vez superada esta cuota se avisa al usuario dejándole escribir hasta el limite máximo o duro, mientras que no expire el periodo de gracia, una vez agotado dicho periodo el sistema no dejara al usuario o grupo escribir.- Para establecer el periodo de gracia basta con ejecutar:
root@ubuntu:/# edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/md0 7days 7days
- Damos los permisos que estimemos al punto montaje, en este ejemplo “cafe para todos”:
root@ubuntu:/# chmod 777 /datos/
-Para comprobar que todo a ido bien, nos logueamos como un usuario del grupo contabilidad y en el punto montaje creamos un fichero y a continuación vemos el estado de la cuota del grupo:
root@ubuntu:/# su user1
user1@ubuntu:/$ cd /datos/
user1@ubuntu:/datos$ touch prueba1 prueba2 prueba3 prueba4
user1@ubuntu:/datos$ quota -g contabilidad
Disk quotas for group contabilidad (gid 1003):
Filesystem blocks quota limit grace files quota limit grace
/dev/md0 0 0 0 4* 2 4 7days
- En este momento nos logearemos con otro usuario del grupo e intentaremos crear otro fichero:
root@ubuntu:/datos# su user2
user2@ubuntu:/datos$ cd /datos/
user2@ubuntu:/datos$ ls
aquota.group aquota.user lost+found prueba1 prueba2 prueba3 prueba4
user2@ubuntu:/datos$ touch prueba5
touch: cannot touch `prueba5': Disk quota exceeded
- Para desactivar las cuotas, ejecutar como root:
root@ubuntu:/datos# quotaoff -aug
- Comprobamos que efectivamente las cuotas se han sido desactivadas:
root@ubuntu:/datos# su user1
user1@ubuntu:/$ cd datos
user1@ubuntu:/datos$ touch prueba5
user1@ubuntu:/datos$ ls
aquota.group aquota.user lost+found prueba1 prueba2 prueba3 prueba4 prueba5
- Para volver a activarlas, como root:
root@ubuntu:/datos# quotaon -aug
- Ahora vamos ha ver unos comandos que nos facilitaran la administración del sistema de cuotas:
- Estado actual de nuestro sistema de cuotas, comando repquota:root@ubuntu:/home/antonio# repquota /datos/*** Report for user quotas on device /dev/md0
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 2 0 0 0 2 0 0
user1 -+ 0 0 0 4 2 4 7days
* Aunque se le definan una cuota al root, estas no se le aplicaran.Para ver un reporte de todos los dispositivos RAID, repquota -a. - Para añadir repquota al cron, para que nos haga un reporte diario:
- Editamos fichero /etc/cron.daily e insertamos:
repquota /datos › reporte
* En esta parte, imaginación al poder, ya podemos hacer un script.
- Quota nos da la posibilidad de que cuando un usuario halla rebasado su cuota de gracia se le envíe un correo, esto se configura editando el archivo /etc/warnquota.conf:
; ; and # type comments are allowed
# and even blank lines
# values can be quoted:
MAIL_CMD = "/usr/sbin/sendmail -t"
FROM = "ro
ot@localhost"
ot@localhost"
# but they don't have to be:
SUBJECT = cuota disco rebasada
CC_TO = "xxxxxx@gmail.com"
# Acordaos que en el anterior post ya configuramos postfix para que utilizara gmail
SUPPORT = "root@localhost"
PHONE = "xxx xxx xxx"
#
CHARSET = UTF-8
#
MESSAGE = Hola %i, tu cuota de disco en %h.%d esta a punto de llegar al límite, por favor borre archivos innecesarios, gracias.
No hay comentarios:
Publicar un comentario