1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash ps -fea | grep -v grep | grep "vi prueba.sh" >/dev/null 2>&1 case "$?" in 0) echo "proceso esta en ejecucion" ;; 1) echo "proceso NO esta en ejecucion" ;; esac exit |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash ps -fea | grep -v grep | grep "vi prueba.sh" >/dev/null 2>&1 case "$?" in 0) echo "proceso esta en ejecucion" ;; 1) echo "proceso NO esta en ejecucion" ;; esac exit |
Script de bash, que nos permite añadir delante o al final de uno o varios archivos un texto que definamos.
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 |
#!/bin/sh # # script de bash para renombrar uno o varios archivos añadiendo al inicio o # final del archivo un prefijo. # sh script.sh f 2014 log* -> Añade a todos los archivos que empiezan por # log el prefijo 2014 delante, quedando los # archivos 2014log... # # reemplazando la f por b, lo añade al final de archivo # # Comprobamos que recibamos tres parametros if [ $# -lt 3 ] ; then echo "usar: $0 [f|b] prefijo archivos..." echo "f=>delante|b->detras" echo exit 0 fi if [ "$1" = "f" ];then # cogemos el prefijo que añadiremos a cada archivo suffix=$2 shift;shift # Bucle que pasa por todos los archivos y les añade el prefijo indicado for file in $* do echo "Reemplazando ${file} -> $suffix$file" mv ${file} $suffix$file done fi if [ "$1" = "b" ];then # cogemos el prefijo que añadiremos a cada archivo suffix=$2 shift;shift # Bucle que pasa por todos los archivos y les añade el prefijo indicado for file in $* do echo "Reemplazando ${file} -> $file$suffix" mv ${file} $file$suffix done fi exit 0 |
Script de bash que muestra como enviar un correo electrónico desde nuestro servidor utilizando el servidor SMTP de gmail con el comando mailx.
Es necesario disponer de una cuenta de gmail.
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 |
#!/bin/sh # servidor de salida FROM_EMAIL_ADDRESS="miCorreo@gmail.com" FRIENDLY_NAME="miNombre" EMAIL_ACCOUNT_PASSWORD="miContrasena" SERVER_SMTP="smtp://smtp.gmail.com:587" # destinatario del mensaje TO_EMAIL_ADDRESS="destinatario@correo.com" EMAIL_SUBJECT="prueba para envio de correo con mailx desde consola" # todo lo que pongamos en el echo, sera el contenido del correo echo "Aqui va el contenido del correo. Tal cual se escriba se recibirá, manteniendo los saltos de linea. Hay que tener instalada la aplicación mailx... Para Debian y derivados es: apt-get install heirloom-mailx Para mas información sobre el comando: man mailx Saludos...;) " | mailx -v -s "$EMAIL_SUBJECT" \ -S smtp-use-starttls \ -S ssl-verify=ignore \ -S smtp-auth=login \ -S smtp=$SERVER_SMTP \ -S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \ -S smtp-auth-user=$FROM_EMAIL_ADDRESS \ -S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \ $TO_EMAIL_ADDRESS |
Script de bash, que nos permite modificar los nombre de uno o varios archivos comprendidos en una carpeta.
Tiene que recibir la cadena a buscar, la cadena a ser reemplazada si se encuentra, y el archivo o archivos a reemplazar.
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 |
#!/bin/sh # # script de bash para reemplazar parte del nombre de uno o varios archivos. # sh script.sh 2013 2014 log* -> Reemplzara en todos los archivos que empiezan # log y que contengan el valor 2013 por el # valor 2014, quedando por ejemplo el archivo: # log_201301.log -> log_201401.log # # Comprobamos que recibamos tres parametros if [ $# -lt 3 ] ; then echo "usar: $0 [expresion] [reemplazar] archivos..." echo exit 0 fi # cogemos los valores recibidos expresion=$1 reemplazar=$2 shift;shift # Bucle que pasa por todos los archivos y reemplza utilizando el comando sed for file in $* do new=`echo ${file} | sed s/${expresion}/${reemplazar}/g` if [ "$new" != "$file" ];then mv ${file} $new echo "Reemplazando ${file} -> $new" fi done exit 0 |
Script para mostrar en forma de árbol los directorios contenidos en un directorio dado utilizando una función recursiva.-
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 |
#!/bin/bash # Script para mostrar en forma de arbol los directorios contenidos en un directorio # dado utilizando una funcion recursiva # # Script realizado por Stephane Chazelas # http://www.pluto.it/files/ildp/guide/abs/contributed-scripts.html # # Puede recibir como parametro la ruta donde empezar. Si no se especifica, empieza # desde la carpeta actual # Ejemplo: $ bash tree.sh /home/user/ ricerca () { for dir in `echo *` # `echo *` enumera todos los archivos en el directorio de trabajo actual # sin saltos de linea, algo similar a la instruccion: for dir in * do if [ -d "$dir" ] ; then # Si se trata de un directorio (-d) zz=0 # Variable temporal para registrar el nivel # del directorio. while [ $zz != $1 ] # Bucle para mostrar las barras verticales interiores do echo -n "| " # Muestra el simbolo del enlace vertical zz=`expr $zz + 1` done if [ -L "$dir" ] ; then # Si el directorio es un link simbolico (-L) # Mostramos el simbolo del enlace seguido del nombre del directorio # eliminando la parte de la fecha y hora echo "+---$dir" `ls -l $dir | sed 's/^.*'$dir' //'` else echo "+---$dir" # Muestra el simbolo del enlace numdir=`expr $numdir + 1` # Incrementa el contador del directorio if cd "$dir" ; then # Si se ha podido acceder al directorio... ricerca `expr $1 + 1` # llamada recursiva cd .. # volvemos al directorio anterior fi fi fi done } # Si recibimos algun valor, nos movemos al directorio indicado if [ $# != 0 ] ; then cd $1 fi echo "Directorio inicial = `pwd`" numdir=0 ricerca 0 echo "Total directorios = $numdir" exit 0 |