Buscar aquí

28 febrero 2012

Como revisar en un script si un archivo existe?

Muchas veces para realizar tareas simples, pero programadas necesitamos hacer que un script revise si existe un archivo determinado, esto es bastante simple, pero depende muchas veces del Sistema Operativo, en general, en bash en linux, se puede hacer con un:

if [ -e "rutadelarchivo" ]
then
     comandos
fi

Actualización 24-04.  Al usar el -e para algo como /home/katador/archivo*, es decir, me interesa saber si existen archivos que comiencen con la palabra archivo, al usar el -e sólo, no lo reconoce, entonces es factible usar el truco de:

if [ ls /home/katador/archivo* >/dev/null ]
then
      comandos

fi

Esto quiere decir que si ejecutamos un ls /home/katador/archivo* y existen archivos arrojará el listado de archivos, de lo contrario, arroja un error y utilizando esta misma salida del comando, se utiliza el If, pues sí existen archivos, sera TRUE, de lo contrario, al arrojar el error lo considera FALSE.

El >/dev/null, es la redirección del comando, para que no muestre nada por la salida estandar.
 

08 febrero 2012

Revisar disco utilizado por directorios en HP-UX

Para revisar el disco utilizado en las distintas carpetas, difiere un poco en HPUX de linux.  Por defecto du muestra todas las subcarpetas, tal como en Linux, pero para obtener los mismos resultados cambian los parametros:

- para obtener el tamaño de sólo una carpeta se puede utilizar:
                    du -ks /carpeta
   esto devuelve el numero de kilobytes y el nombre de la carpeta, el k es la opción para los kilobytes y s es para que imprima solo el gran total.
- ordenar la salida de du, por ejemplo de mayor a menor:
                     du -ks /carpeta | sort -nr
   con esto sale ordena de mayor a menor las opciones -n de sort, le indica un orden numérico y r que haga de mayor a menor (reverse).

 Además, si se tienen directorios montados en distintos disco, se hace más complicada la recopilación del espacio en disco, pues se debiera considerar sólo el espacio ocupado por cada device, para ello, se puede utilizar la opción -x que agrega la restricción, para contabilizar el espacio ocupado en el directorio solicitado y los siguientes que estén en el mismo disco, así, por ejemplo si se tiene un escenario donde:



Filesystem          kbytes    used   avail %used Mounted on
/dev/vg00/lvol3    4194304 3685800  504592   88% /
/dev/vg00/lvol1    2097152  183472 1899200    9% /stand
/dev/vg00/lvol8    15728640 12061944 3641728   77% /var
/dev/vg00/lvol6    10616832 4394432 6173848   42% /usr
/dev/vg00/lvol5    2097152 1536144  557096   73% /tmp
/dev/vg00/lvol4    8814592 5364512 3423184   61% /opt
/dev/vg00/lvol7    10485760 7725264 2739488   74% /home
/dev/vgtemipdb/lvol1
                   10485760   20063 9811597    0% /home/oracle/u01
/dev/vgtemipdb/lvol2
                   220200960 81325775 130199831   38% /home/oracle/data

entonces si interesa conocer de manera clara es espacio utilizado en el disco donde está el raíz, podemos utilizar:
                    du -ksx /* | sort -nr