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: septiembre 2013
BASH – Script con archivo de bloqueo (trap).
Esto es útil cuando requiere que el script no se ejecute más de 1 vez. Una vez ejecutado el script, verifica que el archivo «bloqueo.txt» no exista, de ser asi lo crea y se ejecutan todas las labores que deba … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
BASH – Comprobar terminación de un comando ejecutado.
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash DIRECTORIO="/usr01/prueba" 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 – Conocer el último día del mes actual.
1 2 3 4 5 |
#!/bin/bash mes=`date +%m` ano=`date +%Y` ultimodia=`cal $MONTH $YEAR | grep -v '[A-Za-z]'|wc -w` echo "el ultimo dia del mes $mes es $ultimodia" |
Publicado en Unix - Linux
1 comentario
BASH – Script bash con comandos FTP.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/bash # # -- Declaracion de variables. FTP_SERVER=ip_servidor FTP_USER=nombre_usuario FTP_PASS=contraseña_usuario FTP_LOCAL_CD=/tmp BACKUP_NAME=backup_opt.tar.gz # -- Realizando backup de /opt. tar -czf $FTP_LOCAL_CD/$BACKUP_NAME /opt # -- Copiando archivo backup a servidor ftp. /usr/bin/ftp -n <<EOD open $FTP_SERVER USER $FTP_USER PASS $FTP_PASS binary prompt lcd $FTP_LOCAL_CD put $BACKUP_NAME bye EOD |
Publicado en Unix - Linux
Deja un comentario
BASH – Script para saber si servidor esta en funcionamiento.
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 <<COMMENT Script que realiza una conexion con un servidor, obtiene sus cabeceras y determina si hay o no conexion dependiendo del resultado. curl -s -I -L: -s => silent. No muestra ningun mensaje, error o barra de progreso -I => solo coje la cabecera -L => especificamos la url que tiene que ser del tipo http grep ^HTTP: cogemos unicamente la linea que empieza por HTTP awk '{print $2}': obtenemos el segundo valor de la linea COMMENT url="http://www.lawebdelprogramador.com"; result=$(curl -s -I -L $url | grep ^HTTP | awk '{print $2}'); if [ "$result" = "200" ] then echo "Hay conexion con el servidor" else echo "NO hay conexion con el servidor" fi |
Publicado en Unix - Linux
Deja un comentario
UNIX – Algunos ejemplos de uso del comando FIND.
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 |
find . -exec grep “www.athabasca” ‘{}’ \; -print Busca la cadena “www.athabasca” dentro del contenido de los archivos del directorio actual y los imprime find . -name "rc.conf" -exec chmod o+r '{}' \; Le cambia el modo a o+r a los archivos con nombre rc.conf en el directorio actual find . -perm -g+w,u+w ! -perm -o+w Busca los archivos que son escribibles por el propietario o su grupo, pero no el resto grep 'string' *.txt Busca la cadena "string" en todos los archivos .txt grep 'main(' *.c Busca la cadena "main(" enn todos los archivos .c grep -i 'ultra' *.conf Busca la cadena ultra (sin tener en cuenta mayusculas/minúsculas) en los ficheros .conf grep -iR 'ultra' *.conf Busca la cadena ultra (sin tener en cuenta mayusculas/minúsculas) en los ficheros .conf en el directorio actual y subdirectorios del mismo grep --color=auto -iR 'getChar();' *.c Resalta los resultados para ver mejor el texto grep --color=auto -iRnH 'getChar();' *.c Muestra el nombre de archivo y número de línea donde se encontró la cadena find . -name "*.c" -print | xargs grep "main(" Busca en tódos los ficheros .c la cadena "main)" Queremos encontrar todos los ficheros con extensión .conf dentro de /etc: find /etc -name '*.conf' Lo cierto es que este tipo de búsquedas pueden resultar demasiado grandes, y listar muchísimos resultados, para ello podemos añadir criterios y acotar los resultados. Si por ejemplo quisiéramos ver los logs ubicados dentro de /usr/local cuyo tamaño supere los 100Mb: find /usr/local/ -name '*log' -a -size +100M Y si quisiéramos saber que ficheros de el directorio /var/log/ cuya extensión sea .bak no han sido modificados en 15 días: find /var/log -name '*.bak' -mtime +15 Si no quisiéramos esos ficheros, solamente tenemos que borrarlos: find /var/log -name '*.bak' -mtime +15 -exec rm -f {} \; |
Publicado en Unix - Linux
Deja un comentario
KSH – Purga de archivos «*.log» mayores a 30 dias.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/ksh typeset -i días_borrar dias_borrar=30 ruta_purga=/usr01/log/artículos/ Log() { date “+%Y/%m/%d %H:%M:%S, $0, $1″ } echo Log “*** $0 Inicio ***” Log “Purgo logs ($dias_borrar dias)” find $ruta_purga \( -name “*.*~” -o -name “*.log” \) -ctime +$dias_borrar -exec “rm -v {}” Log “Fin de purga de archivos!” |
Publicado en Unix - Linux
Deja un comentario
UNIX – Codigos utiles para SOLARIS.
Para quienes parten con Solaris, algo siempre importante es ver que esta corriendo nuestra máquina, bueno, normalmente, en linux se usa mucho el comando top, que muestra una vista tabular y actualizada automáticamente del listado de procesos. En Solaris, esto … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
BASH – Extraer dos elementos desde la posicion 3 de un array.
1 2 3 4 5 6 7 8 9 |
$cat arraymanip.sh #!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); echo ${Unix[@]:3:2} $./arraymanip.sh Suse Fedora |
Publicado en Unix - Linux
Deja un comentario
BASH – Agregar un elemento a un array existente.
1 2 3 4 5 6 7 8 9 10 |
$cat arraymanip.sh #!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); Unix=("${Unix[@]}" "AIX" "HP-UX") echo ${Unix[7]} $./arraymanip.sh AIX |
Publicado en Unix - Linux
Deja un comentario
BASH – Remover elementos de un array utilizando patrones.
1 2 3 4 5 6 7 8 9 10 |
$ cat arraymanip.sh #!/bin/bash declare -a Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora'); declare -a patter=( ${Unix[@]/Red*/} ) echo ${patter[@]} $ ./arraymanip.sh Debian Ubuntu Suse Fedora |
Publicado en Unix - Linux
Deja un comentario
BASH – Copiando un Array.
1 2 3 4 |
#!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); Linux=("${Unix[@]}") echo ${Linux[@]} |
Publicado en Unix - Linux
Deja un comentario
BASH – Concatenar Arrays y luego borrarlo.
1 2 3 4 5 6 |
#!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); Shell=('bash' 'csh' 'jsh' 'rsh' 'ksh' 'rc' 'tcsh'); UnixShell=("${Unix[@]}" "${Shell[@]}") unset UnixShell echo ${#UnixShell[@]} |
Publicado en Unix - Linux
Deja un comentario
BASH – Cargar array y lectura del mismo.
En este ejemplo, se cargan los datos del archivo «ventas.txt» en un Array denominado «archivo» y luego lee y despliega por pantalla, todos sus elementos.
1 2 3 4 5 6 7 |
#!/bin/bash archivo=( `cat "ventas.txt" `) for t in "${archivo[@]}" do echo $t done echo "Archivo leído completamente!" |
Publicado en Unix - Linux
Deja un comentario
KSH – Manejo de Array en Korn Shell.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#!/usr/bin/ksh ##### Datos del array #### Nombre[1]="Juan" ; Tel[1]="999888111" Nombre[2]="Pepe" ; Tel[2]="999888222" Nombre[3]="Jose" ; Tel[3]="999888321" Nombre[4]="Adela" ; Tel[4]="999888444" # Buscando el Telefono de Jose buscar=Jose # buscar es la variable que me dice lo que busco # la variable ${#Nombre[@]} nos da el numero de # elementos en el array Nombre cnt=1 # inicializamos el contador # entramos en el buble while [ $cnt -le ${#Nombre[@]} ]; do if [ {${Nombre[$cnt]}} == {$buscar} ] then echo ${Nombre[$cnt]}" # "${Tel[$cnt]} ; fi cnt=$cnt+1; done |
Publicado en Unix - Linux
Deja un comentario
BASCH – Manejo de Arrays en bash.
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 |
#!/bin/bash <<INFO Ejemplo de utilización de arrays en bash ${valores[*]} # Muestra todos los valores de un array ${!valores[*]} # Muestra todos los indices de un array ${#valores[*]} # Devuelve el numero de valores en un array ${#valores[0]} # Devuelve la longitud del indice 0 INFO # definimos un array de valores valores=("primero" "segundo" "tercero") # añadimos un nuevo valor en la posicion 3 del array valores[3]="quarto" # añadimos un nuevo valor en la posicion 5 del array valores[5]="quinto" printf "\nCantidad de valores dentro del array\n" printf " %s\n" ${#valores[*]} printf "\nMostramos un valor dado\n" printf " %s\n" ${valores[2]} printf "\nMostramos la longitud del indice 2\n" printf " %s\n" ${#valores[2]} # recorremos todos los valores del array printf "\nmostramos todos los valores\n" for item in ${valores[*]} do printf " %s\n" $item done # recorremos todos los indices del array printf "\nMostramos todos los indices\n" for index in ${!valores[*]} do printf " %d\n" $index done # mostramos los indices y sus valores printf "\nMostramos todos los indices con sus valores\n" for index in ${!valores[*]} do printf "%4d: %s\n" $index ${valores[$index]} done |
Publicado en Unix - Linux
Deja un comentario
PHP – Lista desplegable de array en PHP.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php $meses = array('enero','febrero','marzo','abril','mayo','junio','julio', 'agosto','septiembre','octubre','noviembre','diciembre'); echo '<form name="form1" id="form1" method="post" action="">'; $nombre = 'meses'; $resultado = lista($nombre, $meses); echo $resultado; echo '</form>; function lista($nombre, $meses){ $array = $meses; $txt= "<select name='$nombre' id='$nombre'>"; for ($i=0; $i<sizeof($array); $i++){ $txt .= "<option value='$i'>". $array[$i] . '</option>'; } $txt .= '</select>'; return $txt; } ?> |
Publicado en PHP - MYSQL
Deja un comentario
BATCH – Manejo de datos desde Archivo de texto.
Para este ejemplo el archivo «equipos.txt», contiene 3 campos por registro. La dirección IP, el nombre del equipo y una descripción de su ubicación.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
@echo off for /f "tokens=*" %%p in (equipos.txt) do set registro=%%p&call :consulta %registro% :salida exit:eof :consulta echo. echo %registro% echo. SET ip=%registro:~,15% SET host=%registro:~16,25% SET ubicacion=%registro:~42,30% ECHO. ECHO MANEJO DE LAS LINEAS EN EL ARCHIVO "EQUIPOS.TXT" echo. echo Direccion IP : %ip% echo Nombres Hosts : %host% echo Ubicacion : %ubicacion% ping %ip% ECHO. ECHO pause |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Muestra la Dirección IP.
1 2 3 4 5 6 |
@echo off for /f "tokens=1,2* delims=:" %%i in (' ipconfig ^| find "IP" ') do set dirip=%%j set dirip=%dirip:~1% echo %dirip% pause exit |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Modifica IP en archivo HOSTS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
@echo off set IP-OLD=127.0.0.1 set IP-NEW=0.0.0.0 set file=%SystemRoot%\system32\drivers\etc\hosts for /f "tokens=*" %%a in (%file%) do call :wri %%a type "%file%.bak" > "%file%" del /f /q /a "%file%.bak" goto :eof :wri set lin=%* call set lin=%%lin:%IP-OLD%=%IP-NEW%%% echo %lin%>>"%file%.bak" goto :eof |
Publicado en BATCH - DOS
Deja un comentario