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
- marzo 2024 (3)
- 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: octubre 2013
BATCH – Ejemplo de función en DOS BATCH con retorno de valores.
1 2 3 4 5 6 7 8 9 10 |
@echo off Setlocal enabledelayedexpansion Set/p "num=Digito a multiplicar por 2: " Call:multiplica resultado !num! echo.!resultado! pause>nul&exit :multiplica set/a "%1=%2*2" goto:EO |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Verificador de numeros primos.
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 |
ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION ECHO EJEMPLO: ECHO Entrada:1 2 3 4 5 6 7 8 9 10 11 12 13 ECHO Salida: 1 1 1 0 1 0 0 1 0 0 0 0 1 SET PROC=PROCESANDO SET /P N=INSERTE UNA CADENA DE NUMEROS A VERIFICAR SEPARADOS POR UN ESPACIO: :NEXTNUM IF "%FIN%"=="1" GOTO SHOWNUMS SET RN= :NEXTCHAR call set CHAR=%%N:~%NUM%,1%%% set /a NUM+=1 IF "%CHAR%" EQU " " (GOTO EMPIEZA) IF "%CHAR%" EQU "" SET FIN=1 IF "%CHAR%" EQU "" (GOTO EMPIEZA) SET RN=%RN%%CHAR% GOTO NEXTCHAR :EMPIEZA SET X=%RN% SET Y=%X% SET CT=0 SET /A Y=(5*%X%*%X%)+4 SET RETURN=POSITIVO GOTO CHECKROOT :POSITIVO IF "%EXACTO%"=="1" GOTO ISFIB SET RETURN=NEGATIVO SET /A Y=!Y!-8 GOTO CHECKROOT :NEGATIVO IF "%EXACTO%"=="1" GOTO ISFIB SET OUTP=%OUTP% 0 GOTO NEXTNUM :ISFIB SET OUTP=%OUTP% 1 GOTO NEXTNUM :SHOWNUMS CLS ECHO %OUTP% PAUSE EXIT :CHECKROOT CLS SET PROC=%PROC%. ECHO %PROC% SET /A DEND=!Y! SET EXACTO=0 FOR /L %%I IN (%DEND%, -1, 1) DO ( SET /A SQR=%%I*%%I IF !SQR!==%DEND% (SET EXACTO=1) ) GOTO %RETURN% |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Incrementar una variable en DOS BATCH.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
@ECHO OFF setlocal enabledelayedexpansion SET /a v=0 FOR %%a IN (*.*) do ( CALL:INCREMENT ECHO !v! ) GOTO DONE :INCREMENT SET /a v+=1 GOTO EOF :DONE PAUSE :EOF |
Publicado en BATCH - DOS
Deja un comentario
BATCH – monitoreo archivo de log.
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 |
@echo off mode con cols=85 mode con lines=5 set archivo=archivos.txt set depurado=depurado.txt set num=%1 set ruta1=/usr01/home/prod/EX_2009/sql/*.lst set ruta2=/APP01/home/prod/EX_2013/sql/*.lst set ruta3=/APP01/home/prod/EX_2013/sql/*.lst set ruta4=/APP01/home/prod/EX_2013/sql/*.lst set ruta5=/APP01/home/prod/EX_2013/sql/*.lst if %num%==1 set ruta=%ruta1% && set ano=2009 if %num%==2 set ruta=%ruta2% && set ano=2010 if %num%==3 set ruta=%ruta3% && set ano=2011 if %num%==4 set ruta=%ruta4% && set ano=2012 if %num%==5 set ruta=%ruta5% && set ano=2013 if %num%==6 exit :log tasklist /FI "WINDOWTITLE eq Vector" | findstr "cmd" || exit plink.exe -ssh -pw passwd usuario@servidor ls -ltr %ruta% > %archivo% type %archivo% | findstr ".lst" | findstr /v "app 0" | findstr /v "app 64" | findstr /v "cambia*" > %depurado% type %depurado% | findstr ".lst" && goto archivos sleep 60 goto log :archivos SET dia=%DATE:~,2% SET mes=%DATE:~3,2% SET ano=%DATE:~6,4% SET fecha=%dia%-%mes%-%ano% SET hor=%TIME:~,2% SET min=%TIME:~3,2% SET seg=%TIME:~6,2% SET hora=%hor%:%min% sendemail.exe -f desde@cor.cl -t para@cor.cl -u "Log %ano% con archivos encontrados %fecha% a las %hora% Hrs." -m "En el archivo adjunto puede ver los archivos detectados, debe reportarlo." -a %depurado% -s smtp.cor.cl sleep 40 goto log |
Publicado en BATCH - DOS
2 comentarios
BASH – Quitar espacios al principio y final de una variable.
#!/bin/bash#Quitar espacios delante y atras de una variableCADENA=» Esto es una cadena «echo » Variable completa => [$CADENA]» #Quita los espacios a la izquierda de la variableCADENA1=»${CADENA#»${CADENA%%[![:space:]]*}»}»echo » Quita Espacios izquierda => [$CADENA1]» #Quita los espacios a la derecha de … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
BASH – Comprobar finalización de un comando.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash # # Comprobando terminacion de un comando # DIRECTORIO="/tmp/test" COMANDO="/bin/mkdir $DIRECTORIO" if $COMANDO then echo "$DIRECTORIO ha sido creado" else echo "$DIRECTORIO no pudo ser creado" fi |
Publicado en Unix - Linux
Deja un comentario
BASH – Cambia las extensiones .txt por .lst en forma masiva.
1 2 3 4 5 6 |
#!/bin/bash for f in *.txt do nuevo=$(basename $f txt)lst mv $f $nuevo done |
Publicado en Unix - Linux
Deja un comentario
BASH – Manejo de parametros pasados a Script.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash # Muestra todos los parámetros, si encuentra una "f" # se lo salta y continúa el bucle while [ $# -gt 0 ] do if [ $1 = "f" ] then shift continue fi echo Parámetro: $1 shift done |
Publicado en Unix - Linux
Deja un comentario
BASH – Creación de menu.
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 |
#!/bin/bash #Inicio del script. while : do clear opcion=0 echo "-------------MENU PRINCIPAL--------------------" echo "-----------------------------------------------" echo "a. Visualizar atributos del directorio actual" echo "b. Visualizar directorio actual" echo "c. Mostrar el contenido de un fichero" echo "d. Salir" echo "-----------------------------------------------" echo echo -n "Elige una opcion: " read opcion case $opcion in a) clear echo "Mostrando los atributos del directorio actual" ls -l . read enterkey ;; b) clear echo "Mostrando el contenido del directorio actual" ls read enterkey ;; c) clear echo -n "Indica el nombre de un fichero: " read fichero if test -f $fichero; then cat $fichero fi read enterkey ;; d) exit ;; *) clear echo "La opcion $opcion no esta en la lista" read enterkey ;; esac done |
Publicado en Unix - Linux
Deja un comentario
LINUX – Algunos comandos para conocer el sistema.
En algunos comandos la información resultante excede la altura de la pantalla, así que para facilitar la lectura de dicha información se usa el paginador less y de esta manera es posible desplazarse hacia abajo y hacia arriba visualizando toda … Sigue leyendo
Publicado en Unix - Linux
1 comentario
BASH – Cantidad de formatos de compresión en una sola función.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) rar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "'$1' No se puede extraer con extract()" ;; esac else echo "'$1' No es un fichero valido" fi } |
Publicado en Unix - Linux
Deja un comentario
BASH – Renombrar archivos en forma masiva.
Para este ejemplo, busca todos los archivos que comienzan por el patrón «paso» y luego les agrega al principio la cadena «otro_», quedando todos los archivos como «otro_paso». El código presentado aquí sirve como base de ejemplo para otros usos … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
UNIX – Comando SED y algunos ejemplos de uso.
Cambia, en el fichero amigos, todas las apariciones de pepe y paco por Pepe y Paco, respectivamente: $ sed -e ‘s/pepe/Pepe/g’ -e ‘s/paco/Paco/g’ amigos (también sed ‘s/pepe/Pepe/g ; s/paco/Paco/g’ amigos) Cambia pepe por Pepe, pero sólo en las líneas que … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
UNIX – Ejemplos de comando FIND.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Listado de todos los fuentes .cpp y .h de un directorio hacia abajo. La opción -o hace de "OR" entre las expresiones -name *.h y -name *.cpp $ find . -name *.h -o -name *.cpp Listado de ficheros modificados en las últimas 24 horas $ find . -mtime 0 Listado de fichero modificados entre hace 24 y 48 horas $ find . -mtime 1 Listado de ficheros modificados en menos de 48 horas $ find . -mtime -1 Listado de ficheros modificados hace más de 48 horas $ find . -name +1 Otro uso habitual es con xargs para lanzar un comando sobre cada resultado. Ejemplo: compilar todos los .java en una carpeta $ find . -name *.java | xargs javac de modo que lanzaría un javac sobre cada línea que devuelva el find |
Publicado en Unix - Linux
Deja un comentario
BATCH – Monitoreo remoto desde WINDOWS a un server UNIX.
Este script en BATCH lo utilizo desde WINDOWS para monitorear LOGs de procesos corriendo en servidores UNIX, esto con el comando «TAIL -f». Para ejecutar comandos en forma remota en el servidor UNIX, utilizo el utilitario «plink.exe», desde aquí se … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
BASH – Construcción tipica de instrucción UNTIL.
1 2 3 4 5 6 7 |
#!/bin/bash CONTADOR=1 until [ $CONTADOR -eq 10 ] do echo "El contador vale ${CONTADOR} y es menor que 10." let CONTADOR++ done |
Publicado en Unix - Linux
Deja un comentario
BASH – FOR sobre las lineas de un archivo.
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash echo "Nombres y edades:" echo "-----------------" for LINEA in $(cat nombres-edades.txt) do NOMBRE=$(echo $LINEA|cut -f1 -d":") EDAD=$(echo $LINEA|cut -f2 -d":") echo "$NOMBRE tiene $EDAD a~nos." done echo echo "Programa finalizado." |
Publicado en Unix - Linux
Deja un comentario
BASH – Construcción tipica de instrucción FOR.
1 2 3 4 5 6 |
#!/bin/bash for VAR in $(seq 1 20) do echo "Estoy en la iteracion numero $VAR" done echo "Programa finalizado." |
Publicado en Unix - Linux
Deja un comentario
BASH . Bucle infinito con WHILE (solo finaliza l ingresar «no»).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/bash # La condicion [ 1 ] es siempre verdadera. while [ 1 ] do echo "Hay alguien ah?" read ENTRADA if [ "$ENTRADA" == "si" ] then echo "Hola, usuario." elif [ "$ENTRADA" == "no" ] then echo "Pues si no hay nadie me voy." break else echo "No entiendo." fi done echo "Fin de programa." |
Publicado en Unix - Linux
Deja un comentario
BASH – Construcción tipica de instrucción WHILE.
1 2 3 4 5 6 7 |
#!/bin/bash CONTADOR=1 while [ $CONTADOR -lt 10 ] do echo "El contador vale ${CONTADOR} y es menor que 10." let CONTADOR++ done |
Publicado en Unix - Linux
Deja un comentario