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: enero 2014
BASH – Script con manejo de parametros de entrada.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/bash case "$1" in start) echo "Iniciando ntpd" /usr/local/bin/ntpd -A stop) echo "Terminando ntpd..." killall ntpd ;; *) echo "Uso: $0 {start|stop}" exit 1 ;; esac |
Publicado en Unix - Linux
Deja un comentario
BASH – Script comprobación espacio libre en disco.
Al sobrepasar el limite, envía un mail.
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash df -hx tmpfs|grep dev > archivo.log limite=90; for i in $(df |awk '{print $(5)}'); do i=`echo $i | cut -f 1 -d "%"` if (("$i" '>=' "$limite")); then cat dfd | mail -s "Discos Llenandose" tu@mail.com break; fi done |
Publicado en Unix - Linux
Deja un comentario
BASH – Script para subir archivos a un sitio FTP.-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash servidor="urlServidor" usuario="usuario password" nombreFichero="$USERNAME-cs-$( date +%Y%m%d%k%M%S).tar" echo "Comprimiendo directorio …" tar -zcvf "/home/nacho/Scripts/tars/comprimido/$nombreFichero" /home/nacho/Scripts/tars/comprimir/* echo "Subiendo fichero $nombreFichero por ftp" ftp -n << EOF passive open $servidor user $usuario put "/home/nacho/Scripts/tars/comprimido/$nombreFichero" /public_html/ups/$nombreFichero quit EOF echo "Fichero $nombreFichero subido correctamente" |
Publicado en Unix - Linux
Deja un comentario
BASH – Script lectura de archivos de gran tamaño.-
A menudo necesitamos leer archivos en medio de nuestros scripts Bash, para procesar su contenido. Muchas veces nos basta con usar las comillas francesas y el comando cat dentro de un bucle, algo similar a: for VBLE in cat ARCHIVO … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
BASH – Script para ejecutar comando en forma periodica.
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 # ######################################################### ######################################################### # # # Script que guarda la temperatura cada 10 segundos # # # ######################################################### # # #@Creador= Rubisf # # # ######################################################### tiempo="10s" comando="sensors" fich_salida="temperatura.txt" while [ true ]; do sleep $tiempo echo ///////////////////////// >> $fich_salida echo ///////////////////////// >> $fich_salida date >> $fich_salida echo ///////////////////////// >> $fich_salida $comando >> $fich_salida echo ///////////////////////// >> $fich_salida done |
Publicado en Unix - Linux
Deja un comentario
BASH – Script para sincronizar cambios entre repositorios SVN.-
Poner especial atención en el uso de funciones, las cuales se pueden a adaptar a otras soluciones de scripting :
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 |
#! /bin/bash # # Merges the changes from a SVN repository into another. # # Useful when you have two branches or versions of the same project, # and need to bring changes from one into the other. # # Usage: # 1. > merge.sh <src_dir> <dest_dir> # 2. > merve.sh <src_dir> <dest_dir> <revision_number> # # In the first case, it runs a 'svn status' command in the source directory # to find the modified files # # In the second case, it runs a 'svn diff -r rev:HEAD' to find the modified files # # Note: tested on Mac OS X 10.7, with Xcode 4.5 # function pathForName { if [ "$1" = "proj1" ]; then dir="$HOME/Documents/Projects/Project1/"; elif [ "$1" = "proj2" ]; then dir="$HOME/Documents/Projects/Project2/"; elif [ "$1" = "proj3" ]; then dir="$HOME/Documents/Projects/Project3/"; elif [ "$1" = "proj4" ]; then dir="$HOME/Documents/Projects/Project4/"; fi } function doMerge { if [ "$stat" = "" ]; then stat=$1; else f=${1#$SRC} if [ "$stat" = "A" ]; then ask "Copy $f? " "cp ${SRC}${f} ${DST}${f}"; elif [ "$stat" = "M" ]; then ask "Merge $f? " "opendiff ${SRC}${f} ${DST}${f} -merge ${DST}${f}"; elif [ "$stat" = "D" ]; then ask "Delete $f? " "rm ${DEST}${f}" elif [ "$stat" = "?" ]; then echo "Ignoring: $f => status = ${stat}"; else echo "Status unknown ($stat) for file $f"; fi stat=""; fi } function ask { while true; do read -p "$1" yn case $yn in [Yy]* ) $2; break;; [Nn]* ) break;; * ) echo "Please answer yes or no.";; esac done } # Main pathForName $1 SRC=$dir echo "Source => $SRC" pathForName $2 DST=$dir echo "Destination => $DST" stat="" if [ "$3" = "" ]; then for f in $(svn status $SRC); do doMerge "$f"; done else for f in $(svn diff -r $3:HEAD --summarize); do doMerge "$f"; done fi |
Publicado en Unix - Linux
Deja un comentario
BATCH – Script para contar lineas a archivo.
1 2 3 4 5 6 7 8 |
@echo off :contador set /p archivo=Ingrese nombre Archivo = set cuenta=0 for /f %%x in (%archivo%) do set /a cuenta=1+cuenta set funcion=%cuenta% echo %funcion% pause>nul |
Publicado en BATCH - DOS
2 comentarios
BASH – Script consulta replicas componentes.
Este script de ejemplo sirve para verificar si un componente (programa-script-cgi-etc..) fue replicado (copiado) en forma correcta. El listado de servidores, se encuentra en un archivo de texto, el cual es leído línea a línea y por cada uno realiza … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
BASH – Script ejemplo de ruptura de bucles ( BREAK – CONTINUE ).
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 |
# Muestra todos los parámetros, # si encuentra una "f" finaliza while [ $# -gt 0 ] do if [ $1 = "f" ] then break fi echo Parámetro: $1 shift done # 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 – Script linux para manejo de datos (AGENDA).
A este Script le llamaremos «agenda» el uso es simple, sirve para registrar información en forma rápida. Del mismo modo que uno utiliza una agenda. Después se puede realizar búsqueda y si encuentra coincidencias mostrara los registros correspondientes. Poner especial … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
BASH – Script Linux para manejo de Fechas.
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 |
#!/bin/bash fecha_inicio=20131225 fecha_final=20140106 HOY=$(date) echo "La fecha de hoy es $HOY" HOY_FORMATO_1=$(date +%Y-%m-%d) echo "Fecha hoy en formato ano-mes-dia : $HOY_FORMATO_1" HOY_FORMATO_2=$(date +%d-%m-%Y) echo "Fecha hoy en formato dia-mes-ano : $HOY_FORMATO_2" DIFERENCIA=$(( ($(date --date "$fecha_final" +%s) - $(date --date "$fecha_inicio" +%s) )/(60*60*24) )) echo "Diferencia $fecha_inicio y $fecha_final : $DIFERENCIA dias" PRIMER_DIA_DEL_MES=$(date --date "-$(($(date +%d) -1)) days" +%Y%m%d) echo "Fecha 1er. dia del mes : $PRIMER_DIA_DEL_MES" ULTIMO_DIA_DEL_MES=$(date --date "-$(($(date +%d) -1)) days + 1 month -1 days" +%Y%m%d) echo "Fecha ultimo dia del mes : $ULTIMO_DIA_DEL_MES" DOMINGO=$(date --date "-$(date +%u) days" +%Y%m%d) echo "Fecha dia Domingo Anterior : $DOMINGO" LUNES=$(date --date "-$(( $(date +%u) + 6 )) days" +%Y%m%d) echo "Fecha dia Lunes Anterior : $LUNES" HACE_TRES_DIAS=$(date --date "-3 days" +%Y%m%d) echo "Hace tres dias : $HACE_TRES_DIAS" MAS_TRES_DIAS=$(date --date "+3 days" +%Y%m%d) echo "En tres dias mas : $MAS_TRES_DIAS" HACE_UN_MES=$(date --date "-1 month" +%Y%m%d) echo "Hace un mes : $HACE_UN_MES" exit |
Ejecución del Script : La fecha de hoy es Mon Jan 6 14:49:08 CLST 2014 Fecha hoy en formato ano-mes-dia : 2014-01-06 Fecha hoy en formato dia-mes-ano : 06-01-2014 Diferencia 20131225 y 20140106 : 12 dias Fecha 1er. dia … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
BASH – Script para adaptar archivo UNIX para manejo en Windows.
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 |
#!/bin/sh temp="$HOME/borrar" echo "" if [ -z "$1" ]; then echo "No hay fichero que adaptar." echo "Uso: `basename $0` fichero_original" echo "" exit fi # Pasar de iso-8859-15 a utf8 en formato UNIX # Se eliminan las líneas vacías y los múltiples espacios en blanco echo -n "Dando formato correcto al fichero... " cat $1 | iconv -f iso-8859-15 -t utf-8 | dos2unix | sed '/^$/d' | sed 's/ \+/ /g' | sed 's/ "/"/g' > $temp echo "OK" # Para las líneas que tengan 5 campos separados por ";",dibujo 2;3;5;4 echo -n "Poniendo los campos en el orden adecuado... " awk -F ";" '{ if(NF == 5)print($2";"$3";"$5";"$4);}' $temp > export_`date +%d%m%Y`.csv echo "OK" # Se borran los ficheros temporales echo -n "Borrando ficheros temporales... " if [ -a "$temp" ]; then rm -f $temp fi echo "OK" |
Publicado en Unix - Linux
Deja un comentario
BASH – Script para redimensionar imagenes.
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 |
#!/bin/bash echo "" echo "** Redimensionador de fotos v0.01 **" if [ -z "$1" ]; then echo "No has indicado dónde están las fotos." echo "Uso: $0 path [resolution]" echo "" exit else TEMP=`echo "$1" | cut -b1` if [ "$TEMP" != "\\" ]; then RUTA="$PWD/$1" else RUTA=$1 fi fi counter=1 resolution=1152x864 if [ -z "$2" ]; then echo "INFO: Se utiliza la resolución por defecto: 1152x864" else resolution=$2 fi echo "Lugar: $RUTA | Resolución: $resolution" if [ -d "$RUTA/resize_$resolution" ]; then echo "WARNING: El directorio destino YA existe" else mkdir $RUTA/resize_$resolution fi for i in `ls $RUTA/ | grep -i jpg`; do echo "Now working on $i - Resizing to $resolution" convert -resize $resolution $RUTA/$i "$RUTA/resize_$resolution/$i" counter=`expr $counter + 1` done exit |
Publicado en Unix - Linux
Deja un comentario
BASH – Script consulta calculo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#! /bin/bash clear read -p "Cuanto es 9 * 9 " res mult=$(echo "9*9" | bc -l) if [ $res == $mult ] then echo "El resultado es correcto" elif [ $res == 80 ] || [ $res == 82 ] then echo "Estuviste cerca pero no" else echo "Te has equivocado, el resultado es $mult" fi |
Publicado en Unix - Linux
Deja un comentario
BASH – Script para validación de Direcciones IP.
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 |
#!/bin/bash function valid_ip() { local ip=$1 local stat=1 if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then OIFS=$IFS IFS='.' ip=($ip) IFS=$OIFS [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] stat=$? fi return $stat } if [[ "$(basename $0 .sh)" == 'valida_ip' ]]; then ips=' 4.2.2.2 a.b.c.d 192.168.1.1 0.0.0.0 255.255.255.255 125.e.12.45 255.255.255.256 192.168.0.1 192.168.0 1234.123.123.123 ' for ip in $ips do if valid_ip $ip; then stat='correcto'; else stat='malo'; fi printf "%-20s: %s\n" "$ip" "$stat" done fi |
Publicado en Unix - Linux
Deja un comentario