Muestra los directorios existentes en el directorio actual.-
|
1 2 3 4 5 6 |
#!/bin/bash for i in `ls`; do if [ -d $i ]; then echo $i fi done |
Muestra los directorios existentes en el directorio actual.-
|
1 2 3 4 5 6 |
#!/bin/bash for i in `ls`; do if [ -d $i ]; then echo $i fi done |
set es una orden que permite fijar muchas características relacionadas con la ejecución de los shell-scripts, por ejemplo set -v hace que el shell imprima las líneas conforme las va leyendo, y set -x hace que imprima las órdenes y sus argumentos conforme se van ejecutando, con set +v y set +x se desactiva.
Pero set sin opciones que empiecen por – o +, tiene otra funcionalidad que en muchas ocasiones resulta muy útil: set lista_de_palabras asigna la primera palabra a $1, la segunda a $2 y así sucesivamente, lo cual resulta muy práctico para descomponer una frase en palabras.
|
1 2 3 4 5 6 |
#!/bin/bash set a `ls -1 | grep patron` for i in $* do echo $i done |
Este script esta pensado para ser utilizado en la consola NAGIOS (Salidas EXIT x). Verifica un proceso corriendo y calcula la memoria RAM que esta siendo utilizada. Si la memoría sobrepasa el umbral critico (15.000 Kb.), el proceso es bajado (kill -9) y ejecutado nuevamente. Tambien se va controlando la cantidad de veces que se ejecuta este procedimiento. Si es ejecutado tres veces y no logra solucionar el problema, no continua tratando de reiniciar el proceso, informado que debe reportarse. Se puede adaptar a cualquier monitoreo que se requiera realizar.-
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
#!/bin/bash critico=15000 warning=10000 proceso=loop.sh status=0 suma=0 num=0 control=estado.txt # Si el proceso no corre arroja status 3 verifica=`ps -e -o vsz=Kbytes -o ruser -o pid,args=Command-Line | grep -v grep | grep $proceso | wc -l` if [ $verifica -lt 1 ]; then echo $suma KBytes UNKNOWN No esta corriendo Proceso=$proceso exit 3 fi while read linea do memoria=`echo $linea | cut -d " " -f 1` suma=`expr $suma + $memoria` done <<< "$(ps -e -o vsz=Kbytes -o ruser -o pid,args=Command-Line | grep -v grep | grep $proceso)" if [ "$suma" -gt "$critico" ]; then if [ -f $control ]; then num=`cat $control` else echo 0 > $control fi if [ "$num" = "3" ]; then echo $suma KBytes critico=$critico Proceso=$proceso $num Intento **REPORTARLO** exit 2 fi kill -9 `ps -fea | grep $proceso | grep -v grep | awk '{print $2}'` > /dev/null 2>&1 bash $proceso & num=`expr $num + 1` echo $num > $control echo $suma KBytes Critico=$critico Proceso=$proceso $num Intento exit 2 fi if [ "$suma" -gt "$warning" ]; then echo $suma KBytes Warning=$warning Proceso=$proceso exit 1 fi echo $suma KBytes Normal Proceso=$proceso if [ -f $control ]; then rm -f "$control" fi exit 0 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#!/bin/bash # Script BASH de Ejemplo de MENU clear echo "----------MENU DE OPCIONES----------" echo "" PS3='Ingrese su opcion a ejecutar : ' options=("Opcion Nro. 1" "Opcion Nro. 2" "Opcion Nro. 3" "Salir") select opt in "${options[@]}" do case $opt in "Opcion Nro. 1") echo "A elegido la opcion 1" ;; "Opcion Nro. 2") echo "A elegido la opcion 2" ;; "Opcion Nro. 3") echo "A elegido la opcion 3" ;; "Salir") break ;; *) echo invalid option;; esac done |
Este es un Script realizado en BASH para correrlo en maquinas UNIX SOLARIS, el cual suma la catidad de memoria ram que esta utilizando un proceso. Muy util cuando se desea monitorizar un proceso que no libera automaticamente la memoria y llegando a un Umbral determinado, es necesario reiniciarlo para que no degrade el funcionamiento del servidor.- Para este ejemplo puse un umbral de 150.000 Kbytes; si sobrepasa este valor pondra un STATUS 1 y si esta correcta un STATUS 0.- Solo queda a la imaginación para sacarle el mejor provecho.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/bash umbral=150000 proceso=sshd status=0 suma=0 while read linea do memoria=`echo $linea | cut -d " " -f 1` suma=`expr $suma + $memoria` done <<< "$(ps -e -o vsz=Kbytes -o ruser -o pid,args=Command-Line | grep -v grep | grep $proceso)" if [ "$suma" -gt "$umbral" ]; then status=1 fi echo "STATUS = $status ==>> Memoria total utilizada por proceso $proceso es $suma Kbytes" |