Ampliar Filesystem recurrentemente/automáticamente

    Vamos a crear un script sencillo para esos casos en que no podemos eliminar contenido de un directorio y que constantemente crecen.
    Lo ideal en estos casos es realizar una monitorización y controlar el crecimiento por lo que en este caso vamos a crear una tarea para que cada domingo haga una revisión del espacio y haga un incremento de espacio (+5GB)

    El script es el siguiente donde va a controlar los filesystems /app01, /app02 y /app03. En el caso de que alguno de ellos (por separado) esté por encima del 85%, entonces se aplicará una ampliación (hay que tener espacio en el Volume Group antes, claro)

    FILESYSTEMS=('/app01' '/app02' '/app03')
    WARN='85'
    
    for FILESYSTEM in "${FILESYSTEMS[@]}"; do
      if [[ -d "${FILESYSTEM}" ]]; then
        echo "${FILESYSTEM}"
        VG=$(df -H | grep -E ${FILESYSTEM}$ | awk '{print $1}' | awk -F'/' '{print $NF}' | awk -F '-' '{print $1}')
        LV=$(df -H | grep -E ${FILESYSTEM}$ | awk '{print $1}' | awk -F'/' '{print $NF}' | awk -F '-' '{print $2}')
        SZ=$(df -H | grep -E ${FILESYSTEM}$ | awk '{print $5}'  | cut -d'%' -f1)
        
        FORMAT=$(df -T | grep -E ${FILESYSTEM}$ | awk '{print $2}')
        FS=$FILESYSTEM
        echo "RESULT: ${SZ} | ${FS} | ${VG} | ${LV} | ${FORMAT}"
          
        if [ ${SZ} -ge ${WARN} ]; then
          echo "INCREASE: /${VG}/${LV} -> ${FS}"
    
          lvresize -L +5g /dev/${VG}/${LV}
          if [ ${FORMAT} = 'ext4' ]; then
                resize2fs /dev/${VG}/${LV}
          fi      
          if [ ${FORMAT} = 'xfs' ]; then
                xfs_growfs /dev/${VG}/${LV}
          fi      
    
          echo "------------------------"
        fi
    
      fi
    done
    

    y lo añadiremos en un crontab:

    0 0 * * SUN sh /scripts/filesystem_size_update.sh
    

    Leave a Reply

    Your email address will not be published. Required fields are marked *