1 2 3 4 5 6 7 8 9 |
#!/bin/bash directorio=/usr01/home/mio archivo=/usr01/home/texto.txt if [ ! -d $directorio ]; then echo "No existe DIRECTORIO $directorio" fi if [ ! -f $archivo ]; then echo "No existe ARCHIVO $archivo" fi |
1 2 3 4 5 6 7 8 9 |
#!/bin/bash directorio=/usr01/home/mio archivo=/usr01/home/texto.txt if [ ! -d $directorio ]; then echo "No existe DIRECTORIO $directorio" fi if [ ! -f $archivo ]; then echo "No existe ARCHIVO $archivo" fi |
Este script busca en 2 archivos .js el patron «suspension», si lo encuentra muestra en ROJO, indicando que el servidor tiene mensaje de suspensión. Si no lo encuentra muestra un mensaje en VERDE indicando que el servidor no tiene mensaje de suspensión.-
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
#!/bin/ksh # Chequeo servidores SULTAN con avisos de suspension publicados NONE='\033[00m' RED='\033[01;31m' GREEN='\033[01;32m' YELLOW='\033[01;33m' PURPLE='\033[01;35m' CYAN='\033[01;36m' WHITE='\033[01;37m' BOLD='\033[1m' UNDERLINE='\033[4m' fecha=`date +%d%m%Y` ruta=/usr03/pagina/js/presenta_bot.js ruta2=/usr03/js/presenta_barr.js sultan="/usr03/home/chequeo/lista_sultan.txt" msj1="Con avisos de suspension${NONE}" msj2="Sin avisos de suspension${NONE}" msj3="Archivo no existe en la ruta indicada${NONE}" until test $opcion = 99 do clear date '+%n Fecha : %d/%m/%Y Hora : %H:%M Hrs.' echo " +---------------------------------------------+ | CHEQUEO SERVIDORES SULTANxx | | AVISOS DE SUSPENSION PUBLICADOS | +---------------------------------------------+ 06-05-2016 V.1 sultan_suspension.sh ${RED}ROJO${NONE} CUANDO ARCHIVO NO EXISTE EN LA RUTA INDICADA ${RED}ROJO${NONE} CON AVISOS DE SUSPENSION ${GREEN}VERDE${NONE} SIN AVISOS DE SUSPENSION PUBLICADOS Confirme Ejecucion [Si] : \\c " read opcion echo "" echo "" echo "" echo "" if [ ! "$opcion" ] then break fi case $opcion in Si) echo "--------------------- VERIFICANDO SERVIDORES TITAN ----------------------" echo "" echo " ${BOLD}Archivo a verificar : $ruta${NONE}" for servi in $(cat $sultan); do # AQUI PRIMERO VERIFICA SI EL ARCHIVO BUSCADO EXISTE EN LA RUTA INDICADA # SI EXISTE CONSULTA SI SE ENCUENTRA EL PATRON BUSCADO "suspensión" # SI ENCUENTRA EL PATRON LO MUESTRA EN ROJO if `ssh $servi ls $ruta >/dev/null 2>&1`; then verifica=`ssh $servi cat $ruta | grep suspension | wc -l ` else echo "${RED}$servi ==>> $msj3" continue fi if [ "$verifica" -gt 0 ] ; then echo "${RED}$servi ==>> $msj1" else echo "${GREEN}$servi ==>> $msj2" fi done echo " " echo " ${BOLD}Archivo a verificar : $ruta2${NONE}" for servi in $(cat $sultan); do if `ssh $servi ls $ruta2 >/dev/null 2>&1`; then verifica=`ssh $servi cat $ruta2 | grep suspension | wc -l ` else echo "${RED}$servi ==>> $msj3" continue fi if [ "$verifica" -gt 0 ] ; then echo "${RED}$servi ==>> Con avisos de suspension${NONE}" else echo "${GREEN}$servi ==>> Sin avisos de suspension${NONE}" fi done echo "--------------------------- FIN CONSULTA -------------------------------" read pausa echo "";; *) echo "";; esac done |
1 2 3 4 5 6 7 |
#!/bin/bash ARCHIVO=$1 file -b "$1" | grep -i 'JPEG' || file -b "$1" | grep -i 'GIF' || file -b "$1" | grep -i 'PNG' || file -b "$1" | grep -i 'BITMAP' >/dev/null 2>&1 if [ $? -eq 0 ]; then echo "Es una imagen" else "No es una imágen" fi |
En este guión hemos supuesto que un archivo cualquiera se convierte en la variable $1 y queremos averiguar si el archivo es una imágen en alguno de los formatos mas comunes, primero acudimos a file para que «lea» el texto que contiene el archivo y lo entubamos a grep que buscará patrones de texto de lo que le entrega file. Como necesitamos averiguar si alguno de los patrones JPEG, GIF, PNG o BITMAP aparece dentro del archivo utilizamos varias instancias de file y grep separadas con OR (||), de esta forma le estamos diciendo en el comando «busca si aparece JPEG o GIF o PNG o BITMAP, si lo encuentras entonces imprime».
«Es una imagen» de cualquier otra forma imprime «No es una imagen»
Las tuberías se utilizan para enviar la salida de un comando o proceso a la entrada de otro, esto es con recuencia necesario para completar una acción iniciada con un comando que debe ser completada con otro. Es simple el modo de operar, solo se coloca el carácter | en la linea de comandos entre un programa y otro. Este carácter (|) se conoce como tubo (pipe).
1 2 3 4 5 6 7 8 9 |
#!/bin/bash file -b "$1" | grep -i "vorbis" >/dev/null 2>&1 if [ $? -eq 0 ]; then oggdec "$1" echo "Hecho" else echo "Archivo no soportado" exit fi |
Este guión convierte a wav cualquier archivo de audio ogg.
Primero se invoca a file para que analice el tipo de archivo correspondiente a la variable $1 que como ya se sabe es el primer argumento introducido en la linea de comandos (por ejemplo la ruta hasta un archivo). Luego la salida de file se entuba al programa grep que determina si dentro del archivo aparece la palabra vorbis (caso de los archivos de audio ogg).
El condiciomal if- then-fi chequea que sea cierto (es decir la palabra vorbis si existía, por lo que es un archivo ogg de audio), entonces se decodifica a wav con el comando oggdec, de lo contrario se imprime que es un archivo no soportado.
Tanto la salida estándar como la de errores se envía a /dev/null, un dispositivo que «desaparece» la información suprimiendo la salida por pantalla. Esto es conveniente y saludable en muchas lineas de comandos cuando la salida puede generar gran cantidad de información tanto de salida estándar como de errores y estos no nos interesan. Solo se escribe >/dev/null 2>&1
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash echo "Diga si o no:" read VAR if [ "$VAR" = si ]; then echo "Escribiste -si-" elif [ "$VAR" = no ]; then echo "Escribiste -no-" elif [ "$VAR" = "" ]; then echo "No puede dejarlo en blanco" else echo "Lo que escribió no se acepta" fi |