Si es un lector habitual de este blog y le gusta su contenido quizá quiera contribuir a su mantenimiento. Cualquier cantidad por pequeña que sea será bien recibida.
Gracias por tu aporte.
Comentarios recientes
- Anónimo en UNIX – Pedir confirmación antes de ejecutar un script.-
- Rodrigo en LINUX – Parsear documento XML en script bash.
- Ricardo en LINUX – Parsear documento XML en script bash.
- Gonzalo Reiser A. en BASH – SCRIPT para monitoreo de archivo LOG.-
- Gonzalo Reiser A. en BASH – SCRIPT para monitoreo de archivo LOG.-
Archivos
- febrero 2024 (2)
- enero 2024 (11)
- diciembre 2023 (1)
- noviembre 2023 (10)
- septiembre 2023 (5)
- agosto 2023 (10)
- junio 2023 (3)
- mayo 2023 (4)
- abril 2023 (10)
- febrero 2023 (3)
- enero 2023 (1)
- diciembre 2022 (2)
- noviembre 2022 (1)
- agosto 2022 (4)
- julio 2022 (1)
- junio 2022 (4)
- febrero 2022 (9)
- abril 2021 (1)
- enero 2021 (3)
- diciembre 2020 (2)
- noviembre 2020 (2)
- octubre 2020 (1)
- septiembre 2020 (4)
- agosto 2020 (1)
- julio 2020 (1)
- junio 2020 (5)
- mayo 2020 (12)
- abril 2020 (1)
- enero 2020 (1)
- noviembre 2019 (5)
- octubre 2019 (4)
- septiembre 2019 (1)
- agosto 2019 (1)
- julio 2019 (11)
- junio 2019 (1)
- julio 2018 (3)
- octubre 2017 (1)
- septiembre 2017 (2)
- agosto 2017 (3)
- julio 2017 (11)
- mayo 2017 (6)
- abril 2017 (3)
- marzo 2017 (7)
- febrero 2017 (1)
- diciembre 2016 (3)
- octubre 2016 (4)
- septiembre 2016 (2)
- agosto 2016 (10)
- julio 2016 (9)
- junio 2016 (9)
- mayo 2016 (27)
- abril 2016 (10)
- marzo 2016 (15)
- enero 2016 (3)
- diciembre 2015 (7)
- octubre 2015 (2)
- septiembre 2015 (3)
- agosto 2015 (9)
- julio 2015 (11)
- junio 2015 (22)
- mayo 2015 (7)
- abril 2015 (22)
- marzo 2015 (5)
- febrero 2015 (2)
- enero 2015 (10)
- diciembre 2014 (7)
- noviembre 2014 (3)
- octubre 2014 (2)
- septiembre 2014 (4)
- agosto 2014 (22)
- julio 2014 (15)
- junio 2014 (8)
- mayo 2014 (6)
- abril 2014 (10)
- marzo 2014 (15)
- febrero 2014 (3)
- enero 2014 (15)
- diciembre 2013 (11)
- noviembre 2013 (25)
- octubre 2013 (46)
- septiembre 2013 (30)
Archivo mensual: mayo 2016
BASH – Script menu sencillo.-
Muy similar a la construcción ‘for’, sólo que en vez de iterar para cada ‘palabra’ en $OPCIONES, se lo pide al usuario.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash OPCIONES="Hola Salir" select opt in $OPCIONES; do if [ "$opt" = "Salir" ]; then echo done exit elif [ "$opt" = "Hola" ]; then echo Hola Mundo else clear echo opcion erronea fi done |
Publicado en Unix - Linux
Deja un comentario
BATCH – Código VBS para ejecutar SCRIPT BATCH oculto.-
Este es un código Visual Basic y se puede utilizar para ejecutar un SCRIPT BATCH en Windows y evitar la molesta ventana DOS al ejecuratse. Permite ejecutarlo en forma oculta.- Ideal para ejecución de tareas programadas en Windows en donde … Sigue leyendo
Publicado en BATCH - DOS
Deja un comentario
BASH – Scripts con tips de reemplazo variables.-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#!/bin/bash # El uso es ${variable/patron/reemplazo} # Cambia solo el patron a reemplazar tigres="Un tigre, dos tigres, tres tigres" echo "${tigres/tigre/gato}" #Cambia todas las ocurrencias del patron a reemplazar tigres="Un tigre, dos tigres, tres tigres" echo "${tigres//tigre/gato}" #Cambiar rango de patrones tigres="Un tigre, dos tigres, tres tigres" echo "${tigres//[a-z]/*}" #O tambien tigres="Un tigre, dos tigres, tres tigres" echo "${tigres//[aeiou]/*}" #Para extraer la ruta de un archivo myfile="/usr/share/icons/hicolor/64x64/mimetypes/application-wireshark-doc.png" echo "${myfile%/*}" #para extraer el archivo sin la ruta myfile="/usr/share/icons/hicolor/64x64/mimetypes/application-wireshark-doc.png" echo "${myfile##*/}" #Extrae el nombre del archivo sin la ruta y sin la extensisn myfile="/usr/share/icons/hicolor/64x64/mimetypes/application-wireshark-doc.png" filename="${myfile##*/}" echo ${filename%.*} |
Publicado en Unix - Linux
1 comentario
BASH – Script verifica conectividad de servidores.-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#!/bin/bash servidores=/ruta/servers.txt sinacceso=/ruta/sinacceso.txt mensaje=mensaje.txt if [ -f $sinacceso ]; then rm $sinacceso fi for servi in $(cat $servidores); do ping -c4 -w5 $servi > /dev/null 2> /dev/null || echo $servi >> $sinacceso done if [ -f $sinacceso ]; then echo "Posible desconexisn de los siguientes hosts:" > $mensaje echo "" >> $mensaje awk '{print "http://"$n}' $sinacceso >> $mensaje echo "" >> $mensaje echo "Los siguientes servidores no responden, VERIFICAR " >> $mensaje /usr/bin/mail -s "Aviso de desconexion servidores" correo@dominio.cl usuario@dominio.cl < $mensaje fi |
Publicado en Unix - Linux
Deja un comentario
BASH – Script ejemplo de ARRAY y diferentes expansiones.-
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 |
#!/bin/bash array=("Primer elemento" "Segundo Elemento" "Tercero" "Cuarto") echo "Numero de elementos del ARRAY : ${#array[*]}" for ix in ${!array[*]} do printf " %s\n" "${array[$ix]}" done echo arr=(${array[*]}) echo "Despues de la expansion sin comillas : ${#arr[*]}" for ix in ${!arr[*]} do printf " %s\n" "${arr[$ix]}" done echo arr=("${array[*]}") echo "Despues de la Expansion * : ${#arr[*]}" for ix in ${!arr[*]} do printf " %s\n" "${arr[$ix]}" done echo arr=("${array[@]}") echo "Despues de la expansion @ : ${#arr[*]}" for ix in ${!arr[*]} do printf " %s\n" "${arr[$ix]}" done |
Al ejecutar este SCRIPT, nos mostrara por pantalla lo siguiente :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Numero de elementos del ARRAY : 4 Primer elemento Segundo Elemento Tercero Cuarto Despues de la expansion sin comillas : 6 Primer elemento Segundo Elemento Tercero Cuarto Despues de la Expansion * : 1 Primer elemento Segundo Elemento Tercero Cuarto Despues de la expansion @ : 4 Primer elemento Segundo Elemento Tercero Cuarto |
Publicado en Unix - Linux
Deja un comentario
BASH – Script muestra indices y elementos de un ARRAY.-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/bash array=(pera manzana limon naranja melon sandia [7]=uva) echo "Numero de Elementos del ARRAY : ${#array[*]}" echo "Elementos de ARRAY :" for item in ${array[*]} do printf " %s\n" $item done echo "Indices del ARRAY :" for index in ${!array[*]} do printf " %d\n" $index done echo "Indices y Elementos del ARRAY :" for index in ${!array[*]} do printf "%4d: %s\n" $index ${array[$index]} done |
Al ejecutar este SCRIPT mostraría por pantalla lo siguiente :
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 |
Numero de Elementos del ARRAY : 7 Elementos de ARRAY : pera manzana limon naranja melon sandia uva Indices del ARRAY : 0 1 2 3 4 5 7 Indices y Elementos del ARRAY : 0: pera 1: manzana 2: limon 3: naranja 4: melon 5: sandia 7: uva |
Publicado en Unix - Linux
Deja un comentario
BASH – Script ejemplo de Array (Arreglo – Vector – Matriz).-
1 2 3 4 5 6 7 8 9 |
#!/bin/bash array=(rojo blanco verde azul amarillo rojo naranjo) size=${#array[*]} echo "El arreglo tiene $size elementos. Estos son : " i=0 while (( i < $size )); do echo "$i: ${array[$i]}" let i++ done |
Al ejecutar, mostraría en pantalla lo siguiente :
1 2 3 4 5 6 7 8 |
El arreglo tiene 7 elementos. Estos son : 0: rojo 1: blanco 2: verde 3: azul 4: amarillo 5: rojo 6: naranjo |
Publicado en Unix - Linux
Deja un comentario
BASH – Script basico loop rango con ciclo FOR.-
1 2 3 4 5 6 |
#!/bin/bash for value in {1..5} do echo $value done echo All done |
Publicado en Unix - Linux
Deja un comentario
BASH – Script loop basico con WHILE.-
1 2 3 4 5 6 7 8 |
#!/bin/bash counter=1 while [ $counter -le 10 ] do echo $counter ((counter++)) done echo All done |
Publicado en Unix - Linux
Deja un comentario
KSH – Korn Shell subir procesos en servidor mediante TELNET.-
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 |
#!/bin/ksh esp="\\n " opcion=0 FECHA=`date +%d/%m/%Y` trap "continue" 2 3 ruta=/usr0/home/operators/servers salida=/usr/home/solit/servers/salida until test $opcion = 99 do clear date '+%n Fecha : %d/%m/%Y Hora : %H:%M Hrs.' echo " +---------------------------------------------+ | M E N U S E R V I D O R | +---------------------------------------------+ | 11-05-2016 V.1 servidor.sh | | | | | | [ 1] ... Sube proceso CARVOL01 | | | | [ 2] ... Sube proceso SIMPAD55 | | | | [ 3] ... | | | | [ 4] ... | | | | | +---------------------------------------------+ | [ENTER] ... Abandona el programa | +---------------------------------------------+ Su opcion es .... : \\c " read opcion if [ ! "$opcion" ] then break fi SERVIDOR=servidor USUARIO=operator PASSWORD=147.operators case $opcion in 1) echo "----------- Subiendo Proceso CARVOL01 en servidor SERVIDOR ----------------" echo "" echo " <<< EN PROCESO >>> (6 segundos aprox.)" echo "" (sleep 1;echo $USUARIO; sleep 1; echo $PASSWORD; sleep 1; echo "/sist/shell/./sube_carvol01.sh"; sleep 2; echo "ps -fea | grep CARVOL01 | grep -v grep"; sleep 1; echo "exit"; sleep 1) | telnet $SERVIDOR > $salida 2>/dev/null cat $salida | sed -n '/^ps -fea/,/^servidor/p' echo "---------------------------- FIN SUBIDA --------------------------------" read pausa echo "";; 2) echo "----------- Subiendo Proceso SIMPAD55 en servidor SERVIDOR ----------------" echo "" echo " <<< EN PROCESO >>> (6 segundos aprox.)" echo "" (sleep 1;echo $USUARIO; sleep 1; echo $PASSWORD; sleep 1; echo "/usr22/home/SHELL/./start_SIMPAD55.sh"; sleep 2; echo "ps -fea | grep SETMAIL01 | grep -v grep"; sleep 1; echo "exit"; sleep 1) | telnet $SERVIDOR > $salida 2>/dev/null cat $salida | sed -n '/^ps -fea/,/^servidor/p' echo "---------------------------- FIN SUBIDA --------------------------------" read pausa echo "";; *) echo " Opcion Incorrecta !! ** INTENTE DE NUEVO ** " sleep 1;; esac done clear echo "" echo "" echo "" echo "$esp **** F I N D E L P R O G R A M A ****" echo "" echo "" echo "" |
Publicado en Unix - Linux
Deja un comentario
KSH – Korn Shell script consulta uso de memoria.-
Este script permite consultar los 10 procesos que mas memoria consumen en un servidor.
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 |
#!/bin/ksh opcion=0 servers="/sist_bin/servidores.txt" until test $opcion = 99 do clear date '+%n Fecha : %d/%m/%Y Hora : %H:%M Hrs.' echo " +---------------------------------------------+ | Consulta los 10 procesos que mas memoria | | utilizan en cada servidor | +---------------------------------------------+ 11-05-2016 V.1 memoria_server.sh " echo " Para Ejecutar digite tal como aparece Mayuscula y minuscula [Si] : \\c " read opcion echo "" if [ ! "$opcion" ] then break fi case $opcion in Si) for servi in $(cat $servers); do echo "---------------------------- $servi ----------------------------------------" rsh $servi ps -e -o vsz=Kbytes -o ruser -o pid,args=Command-Line | sort -rnk1 | head -n 10 done echo "--------------------------- FIN CONSULTA -------------------------------" read pausa echo "";; *) echo "";; esac done |
Publicado en Unix - Linux
Deja un comentario
BASH – Script Lectura de Archivo.-
Archivo «prueba.txt».-
1 2 3 4 5 6 |
solaris 10.23.132.123 unix unix 25.34.23.100 linux solaris 10.20.32.123 unix unix 27.34.23.100 linux solaris 16.20.32.123 unix unix 20.35.13.100 linux |
El siguiente SCRIPT lee el archivo «prueba.txt» y imprime en pantalla la dirección IP.
1 2 3 4 5 |
#!/bin/bash cat prueba.txt | while read IP do echo $IP | awk '{print $2}' done |
Al ejecutar el SCRIPT el resultado es el siguiente :
1 2 3 4 5 6 |
10.23.132.123 25.34.23.100 10.20.32.123 27.34.23.100 16.20.32.123 20.35.13.100 |
Publicado en Unix - Linux
Deja un comentario
BASH – SCRIPT para Iniciar-Detener o Reiniciar programa.-
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 programa="fortin" ruta=/usr/sbin/monitor start () { echo -n $"Starting $ruta: " echo start $programa RETVAL=$? return $RETVAL } stop () { echo -n $"Stopping $ruta: " echo stop $programa RETVAL=$? return $RETVAL } reload () { echo -n $"Reloading $ruta: " echo reload $programa RETVAL=$? return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 1 start ;; reload) reload ;; graceful) reload ;; esac exit $RETVAL; |
Publicado en Unix - Linux
Deja un comentario
BASH – Muestra los datos de un archivo.-
1 2 3 4 5 6 7 8 9 10 |
#!/bin/bash n=0 a=prueba.txt # Cambia todos los (.) que encuentra en el archivo por un espacio. for i in `cat ${a} | tr '.' ' '` ; do str=${str},${i} let n=$n+1 var=`echo "var${n}"` echo $var is ... ${i} done |
Publicado en Unix - Linux
Deja un comentario
BASH – Scrip iteración de elementos.
Este Script muestra los elementos de un directorio, indicando si es : Archivo, Directorio, Enlace simbolico o desconocido.-
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash for fn in *; do if [ -h "$fn" ]; then echo -n "Symlink: " elif [ -d "$fn" ]; then echo -n "Dir: " elif [ -f "$fn" ]; then echo -n "File: " else echo -n "Unknown: " fi echo "$fn" done |
Publicado en Unix - Linux
Deja un comentario
BASH – Iteración sobre archivos de directorio actual.-
1 2 3 4 5 6 7 |
#!/bin/bash oldIFS=$IFS # conserva el separador de campo IFS=$'\n' # nuevo separador de campo, el caracter fin de línea for f in $(ls); do echo $f done IFS=$old_IFS # restablece el separador de campo predeterminado |
Publicado en Unix - Linux
Deja un comentario
KSH – Script korn shell para reinicio de servicios.-
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 |
#!/bin/ksh esp="\\n " echo "\\n" opcion=0 fech=`date +%Y%m%d` fecha=`date +%d%m%Y` servers="/usr01/logs/servers.txt" logs="/usr01/logs/server$fecha.log" COMANDO="lanzador reinicia_servs" until test $opcion = 99 do clear date '+%n Fecha : %d/%m/%Y Hora : %H:%M Hrs.' echo " +---------------------------------------------+ | REINICIA SERVICIOS AUTOMATICAMENTE | +---------------------------------------------+ 23-03-2015 V.2 reiniserv.sh " read -p " Instancia : " mot if [ ! "$mot" ] then break fi echo "" motor="$mot;" read -p " Servicios (Separados por espacio) : " servi servicio=(`echo ${servi}`) conser=${#servicio[*]} servidor=(`cat $servers | grep $motor | tr ';' ' '`) conmot=${#servidor[*]} echo " " echo "Servicios del motor $mot se reiniciaran en los siguientes servidores" echo "-----------------------------------------------------------------------------" k=1 while [ $k -lt $conmot ] do if [ "${servidor[$k]}" -eq 0 ] then (( k=k+1 )) continue fi ser=urano${servidor[$k]} (( k=k+1 )) echo -en $ser; echo -en " "; done echo "" echo "-----------------------------------------------------------------------------" echo "" read -p " Para Ejecutar digite tal como aparece Mayuscula y minuscula [Si] : " opcion echo "" echo "-----------------------------------------------------------------------------" if [ ! "$opcion" ] then break fi case $opcion in Si) j=0 while [ $j -lt $conser ] do k=1 while [ $k -lt $conmot ] do if [ "${servidor[$k]}" -eq 0 ] then (( k=k+1 )) continue fi ser=urano${servidor[$k]} sse=${servicio[$j]} ejecuta="$COMANDO $ser $sse restart $mot" echo "Reiniciando ===>> $ejecuta" $ejecuta echo "5,$ser,$mot,$fech,`date +%H:%M:%S`,$sse,0" >> $logs (( k=k+1 )) done (( j=j+1 )) done echo "--------------------------- FIN REINICIO -------------------------------" read fin echo "";; *) echo "";; esac done |
Publicado en Unix - Linux
Deja un comentario
BASH – Manejo de argumentos ingresados por teclado en un arreglo
#!/bin/bash read motor read servidor read servicios mot=($motor) hos=($servidor) ser=($servicios) for arr1 in ${mot[@]} do for arr2 in ${hos[@]} do for arr3 in ${ser[@]} do echo «Array01=$arr1 Array02=$arr2 Array03=$arr3» done done done
Publicado en Unix - Linux
Deja un comentario
BASH – Ejecución de comandos remotos via SSH.-
Este SCRIPT permite lanzar la ejecución de comandos remotos basados en sistemas CENTOS y DEBIAN. Cabe recordar que para que se ejecute correctamente en cada servidor remoto. Se debe tener configurado el acceso SSH en forma correcta.-
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 CONF="actualizar_servidores.conf" CMD_DEBIAN="sudo apt-get update && sudo apt-get upgrade && sudo apt-get clean" CMD_CENTOS="sudo yum update && sudo yum clean all" # CONF - username:host:port:os for SERVER in $(cat $CONF) do # Parsear linea de configuración USER=$(echo $SERVER | cut -d ':' -f1) HOST=$(echo $SERVER | cut -d ':' -f2) PORT=$(echo $SERVER | cut -d ':' -f3) OS=$(echo $SERVER | cut -d ':' -f4) # Ofrecer actualizar el servidor actual echo -e "#\n##\n###\n####" read -p "¿Desea actualizar $HOST? (Si/No): " ANS if [[ $ANS =~ ^[SsYy]$ ]] then # Actualizar el servidor case $OS in "debian") ssh -p $PORT $USER@$HOST $CMD_DEBIAN;; "centos") ssh -t -p $PORT $USER@$HOST $CMD_CENTOS;; esac fi done |
Publicado en Unix - Linux
Deja un comentario
BASH – Script de ejemplo negación estructura IF (Consulta si no existe DIRECTORIO y ARCHIVO).-
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 |
Publicado en Unix - Linux
Deja un comentario