Cambiar fecha de Creación o Modificación de un archivo – Change File Timestamp


Supongamos que tenemos este archivo:

[root@galileo db]# ls -l arba*
-rwxr–r–. 1 user sistemas 14125053 Mar 17 09:42 arba_db_20110217050004.rar

Con touch -t cambiamos el timestamp del archivo
pasandole al parámetro -t la fecha con el siguiente formato: YYMMDDhhmm.ss

[root@galileo db]# touch -t 201102170500.04 arba_db_20110217050004.rar

Quedando así:
[root@galileo db]# ls  -l arba*
-rwxr–r–. 1 user sistemas 14125053 Feb 17 05:00 arba_db_20110217050004.rar

Podemos usar touch con la opción -m para modificar solamente el timestamp de modificación o -a para modificar solo el timestamp de acceso

Creando RAID 1 por software


En un par de discos nuevos en un servidor vamos a crear un
RAID 1 (espejo) para tener algo de tolerancia a fallos:

Identificamos los discos/dispositivos a utilizar:
/dev/sdc
/dev/hdc

En uno de los discos debemos crear la particion:

Creamos partición de tipo raid en la totalidad del disco:
#fdisk /dev/sdc
new partition: n
primary partition: p
particion number: 1
First cylinder: 1
Last cylinder: (last)

Change partition type: t
Hex code: fd (Linux raid autodetect)

grabamos cambios y salimos: w

Creamos el dispositivo RAID:
# mdadm –create –level=1 –raid-devices=2 /dev/md1 /dev/sdc /dev/hdc

Podemos monitorear el proceso de espejado de los discos con:
# cat /proc/mdstat

o

# mdadm –detail /dev/md1

Formateamos file system ext3:
#mkfs.ext3 /dev/md1

Armamos el montaje del raid:
Creamos el directorio de montaje:
# mkdir /data

Editamos el /etc/fstab y agregamos el punto de montaje:
/dev/md1                /data                   ext3    defaults        1 1

Releemos el fstab para verificar y montar de acuerdo a la nueva entrada:
# mount -a

Creamos la entrada en el /etc/mdadm.conf para definir el nuevo raid:
# mdadm –examine –scan  >> /etc/mdadm.conf

Script de notificación de uso de quota de disco / Disk Quota Notification Script


Estuve un rato buscando si alguien se había tomado el trabajito de armar un script para enviar un mail a los usuarios cuando estos estuvieran superando la quota de disco (al menos la SOFT quota) pero no econtré nada similar, así que no me quedó otra que hacerlo… Aquí dejo mi aporte para los que lo necesiten:

Lo que hace es recorrer los usuarios existentes en el /etc/passwd con UID >= 500. Esto es para Linux CentOS, Fedora, Redhat, pero pueden modificarlo para otros linuxes.
Para cada uno de ellos utiliza el comando repquota y compara los campos soft y hard para calcular el espacio utilizado.
En base a esto envía un mail de notificación al usuario y otro a sistemas para que nos enteremos que determinado usuario tiene problemas de quota.

#!/bin/sh
#hvivani. 20101217
#verifica quotas de usuario en filesystem y envía mail notificando exceso de soft quota.

for name in $(awk -F: ‘($3>=500) && ($3!=65534) {print $1}’ /etc/passwd)
do
      limiteSoft=`/usr/sbin/repquota /  |grep “$name ” |awk ‘($3>$4) && ($4!=0) {print $4}’`
      usado=`/usr/sbin/repquota /  |grep “$name ” |awk ‘($3>$4) && ($4!=0) {print $3}’`
      limiteHard=`/usr/sbin/repquota /  |grep “$name ” |awk ‘($3>$4) && ($4!=0) {print $5}’`

      ### si el limite soft no es nulo
      if [ -n “$limiteSoft” ]
      then
         ### si el limite soft supera el espacio utilizado
         if [ “$usado” -ge “$limiteSoft” ]
         then
            nota=”Usuario: $name, Ud. esta excediendo su espacio en disco: Limite: $limiteSoft Bytes. Utilizado: $usado Bytes. Por favor, libere espacio en su carpeta personal o sistema de correo.”
            echo $nota | mail -s “ATENCION: Uso de Disco !!” $name@dominio.com.ar
            echo “El usuario $name ha superado SOFT quota. Limite: $limiteSoft Bytes. Utilizado: $usado Bytes.” | mail -s “ATENCION: Uso de Disco $name !!” sistemas@dominio.com.ar
         fi
         ### si el limite hard supera el espacio utilizado
         if [ “$usado” -ge “$limiteHard” ]
         then
            nota=”Usuario $name, Ud, esta excediendo su espacio en disco: Limite: $limiteHard Bytes. Utilizado: $usado Bytes. No podrá escribir en su sistema hasta que libere espacio en su carpeta personal o sistema de correo.”
            echo $nota | mail -s “Uso de Disco !!” $name@dominio.com.ar
            echo “El usuario $name ha superado HARD quota. Limite: $limiteSoft Bytes. Utilizado: $usado Bytes.” | mail -s “ATENCION: Uso de Disco $name !!” sistemas@dominio.com.ar
         fi
      fi

done

Configurando Quotas de disco


Para poder establecer quotas de disco en una determinada partición debemos indicar un parametro adicional en el momento del montaje de la partición.
Esto lo hacemos agregando el parametro “usrquota” (para usuarios) o el parametro “grpquota” (para grupos) en el /etc/fstab.
Por ejemplo, para establecer las quotas de usuario y grupo en el punto de montaje “home”:
/dev/hda2 /home ext3 defaults, usrquota 1 1

Remontamos la partición para que tengan efectos los cambios que hicimos en el fstab:
# mount -o remount /home

Creamos la base de datos de quotas en el filesystem:
# quotacheck -vcugm /home

Iniciamos las quotas:
# quotaon -a /home

Para establecer las quotas:
# edquota usuario

Disk quotas for user usuario (uid 500):
  Filesystem                                               blocks       soft       hard     inodes     soft     hard
  /dev/mapper/VolGroup00-LogVol00    2044          0          0           315         0         0

Significado de cada campo:
Blocks: Son bloques utilizados. 1k blocks.
soft: Limite Soft, a partir de donde avisa.
hard: Limite Hard, a partir de donde niega la escritura.
Inodes: Limite de inodos utilizados.
soft: Limite Soft, a partir de donde avisa.
hard: Limite Hard, a partir de donde niega la escritura.

O podemos hacer directamente 
# setquota usuario 4096 5120 40 50 /home

Para consultar las quotas podemos usar los comandos quota o repquota entre otros.

Buscar y eliminar archivos por antiguedad


Esto siempre resulta útil para realizar taréas de mantenimiento del filesystem:
Buscar y eliminar archivos con mas de 3 días de antiguedad:

# find /home/ -mtime +3 -exec rm -rf {} \;

Si queremos que sean los que tienen menos de 3 días de antiguedad, reemplazamos el +3 por -3.
Si queremos que sean los que tienen exactamente 3 días de antiguedad, reemplazamos el +3 por 3.