Mostrando entradas con la etiqueta script. Mostrar todas las entradas
Mostrando entradas con la etiqueta script. Mostrar todas las entradas

13 enero, 2011

Musictrl: Controla el reproductor activo y obtén información de este

Siempre has querido usar las teclas multimedia con varios reproductores y no solo con uno predeterminado?
Has querido saber la información de lo que se reproduce sin importar el reproductor?
Y si también fuera posible poner la canción y artista en el msn?
Pues entonces probablemente musictrl es para ti...

musictrl usado en conky

Musictrl es un script con el que puedes controlar diversos reproductores, así como obtener información de reproduccion y usarla en el emesene como estado.
Musictrl te permite controlar el reproductor activo, puedes escuchar la cancion siguiente, anterior, pausar el reproductor, ó detenerlo. Puedes usarlo para obtener la información del reproductor activo y usarlo con el conky

Puedes:
- Controlar varios reproductores
- Usarlo con las teclas multimedia (ayudado de otros programas)
- Obtener la información de reproducción
- Usar esta información para ponerla como estado en el emesene

Soporta los reproductores: rhythmbox, mocp, exaile, muine, sonata, vlc y mplayer
Funciona con la siguiente sintaxis:

musictrl [opciones]


OPCIONES:
-pausa -anterior -siguiente -detener -info-en-archivo -emesene -eliminar


OPCIONES CORTAS:
-p -a -s -d -i -arch -msn -eli



OPCIONES:
-pausa | -p
pausa el reproductor activo
-anterior | -a
reproduce el medio anterior en el reproductor activo
-siguiente | -s
reproduce el siguiente medio en el reproductor activo
-detener | -d
detiene la reproduccion en el reproductor activo
-info | -i
muestra la informacion de la reproduccion anctual
en el reproductor activo
-en-archivo | -arch
envia la direccion de la reproduccion actual en el
reproductor activo, estas información se colocará
en la ruta: ~/.musictrl/estatus y contendra la sig
información en los siguientes archivos:
-eliminar | -eli
   elimina la canción que se escucha en el momento
   Actualmente solo están soportados:
   mocp, rhythmbox y deadbeef


album: album de reproduccion en reproductor activo
artista: artista de reproduccion en reproductor activo
artistalbum: artista - album de reproduccion en
reproductor activo
cancion: cancion de reproducción en el reproductor activo
cancionartista: cancion - artista en reproductor activo
edorep: estado del reproductor en reproductor activo
reproductoredo: reproductor y estado del reproductor activo
-emesene | -msn
envia la información de reproduccion en reproductor activo
al programa emesene (necesita previa configuracion del emesene)
Envia la información del la cancion y el artista para ser exactos
la información es reflejada en el estado
Para poder usar esta opción necesitas especificar en el archivo
de configuración ~/.musictrl/config el correo a usar
Necesitas activar la opción 'D-Bus' en Opciones || Complementos


REPRODUCTORES SOPORTADOS:
mocp, rhythmbox, exaile, muine, sonata, deadbeef, mplayer y vlc

ERRORES:
-Puede tardar unos segundos con algunos reproductores ó si se encuentran varios abiertos
-No esta diseñado para abrir múltiples instancias de varios reproductores
los errores son desconocidos
-Se trata de una version de prueba, asi que sugiero pasciencia y reportar los fallos


Ejemplos de uso:

Si usas el comando
$ musictrl -info -siguiente -msn


El orden de ejecución de los parametros va de izquierda a derecha, por lo tanto, primero desplegara la información, después dara siguiente al reproductor activo y seguido aplicara el status al emesene

Musictrl, aplicacion del uso en obtención de información de reproduccion en archivo


Inicialmente prepare el script para usarlo con el conky, así que sin duda sigue siendo una aplicación de este script



puedes obtener la información del reproductor activo desde terminal ó en archivos para usarlo por ejemplo con el conky.
La información esta contenida en: "~/.musictrl/estatus" El script genera 6 archivos, uno de ellos no lo debes de tomar en cuenta los 5 restantes corresponden a:

cancion                nombre de la canción que esta sonando
artista                  nombre del artista que esta sonando
artistalbum          nombre del artista y nombre del álbum
album                   nombre del álbum

cancionartista     nombre de la canción así como del artista
reproductoredo    nombre del reproductor en curso y estado de este

ahora nos toca poner lo necesario en el conky para que se muestren estos datos

yo uso mousepad, así que pongan en su lugar su editor preferido

$ mousepad ~/.conkyrc

nos ponemos en la sección después de:
TEXT

y  agregamos las siguientes lineas en el lugar donde nos sea mas conveniente (dentro del archivo ~/.conkyrc)

primero que nada agregamos las lineas para ejecutar el script
${execp ~/.cual-escuchas/cual-escucha.sh}


ahora:
si queremos mostrar el nombre del artista y nombre del album:
${exec cat ~/.cual-escuchas/artistalbum}

si queremos mostrar el nombre de la canción:
${exec cat ~/.cual-escuchas/cancion}


si quieres mostrar el nombre de la canción y el artista
${exec cat ~/.cual-escuchas/cancionartista}


si quieres mostrar el nombre del reproductor en curso y el estado de este (play/pause)
${exec cat ~/.cual-escuchas/reproductoredo}


Repito, estas ultimas expresiones no son en terminal, las pondrás en el conky para mostrar la información deseada

Musictrl en el estado del msn usando emesene


Para poder usar esta opción necesitas especificar en el archivo de configuración ~/.musictrl/config el correo a usar, para editar:

$mousepad ~/.musictrl/config

todos los parámetros van despues de 2 lineas //  como ejemplo:
mail//gorylong@gmail.com

Aconsejo no dejar espacios vacíos despues de las opciones

Necesitas activar en el emesene la opción 'D-Bus' en >> Opciones >> Complementos >>




Musictrl y las teclas multimedia (xbindkeys)

Siempre he creído que las teclas multimedia nos hacen cómoda la existencia, así que porque no usarlas?
Musictrl posee opciones para las teclas multimedia básicas: anterior, siguiente play/pausa, stop

A continuación detallo una opción para las teclas multimedia usando el programa xbindkeys, si usas gnome ó kde también puedes ajustar los atajos del teclado para usar con musictrl

Primero instalamos xbindkeys
$ sudo apt-get install xbindkeys

Identificamos las teclas multimedia con xbindkeys
$ xbindkeys -k

Aparecerá un cuadro y entonces darem0s click a la tecla multimedia que deseemos usar

Por ejemplo play/pausa, a continuación nos saldra una leyenda que es la que usaremos:


    m:0x0 + c:172
    XF86AudioPlay

ésta es la leyenda que usaremos (solo una línea) para configurar la acción a realizar


Editamos el archivo de configuración:
$ mousepad ~/.xbindkeys

y pondremos de la siguiente manera:


#play-pause musica
"~/.musictrl/musictrl.sh -pausa"
XF86AudioPlay


Primero ponemos la tecla y abajo la acción entre comillas
Podemos usar tanto " m:0x0 + c:172" como "XF86AudioPlay", pero sólo una de estas

Continuamos así con el resto de las acciones para las teclas multimedia:

#stop musica
"~/.musictrl/musictrl.sh -detener"
XF86AudioStop

#anterior-pista musica
"~/.musictrl/musictrl.sh -anterior"
XF86AudioPrev

#siguiente-pista musica
"~/.musictrl/musictrl.sh -siguiente"
XF86AudioNext


Después de terminar de configurar las teclas y acciones solo nos resta ejecutar xbindkeys
$ xbindkeys

Les recomiendo anexarlo al inicio de cesión


Instalación de musictrl


Links de descarga

version 0.0.05-10 Alfa (DEB): http://www.mediafire.com/?m8xowhudwfvz2jp

versión 0.004-10 Alfa: http://www.mediafire.com/?3cpalt43d05kv6m

versión 0.003-9 Alfa: http://www.mediafire.com/?8ikob31pm4rb8z9

versión 0.002-9 Alfa: http://www.mediafire.com/download.php?ufkht6b1kc4hpsa

versión 0.001 Alfa: http://www.mediafire.com/?c4d2vn6x4ijn7p4

versión 0.001-1 Alfa  : http://www.mediafire.com/?krmzfm1t43ev4cp
 

Despues de descargar entras en la carpeta y das permisos de ejecución al script de instalacion
$ chmod +x instalador.sh

Se usará la direccion ~/.musictrl/ para instalar el script

recomiedo despues de instalar ver la ayuda ejecutando este comando:

$ musictrl --help




Notas:

- Cuenta con soporte para xscreensavers (cuando usas mplayer)
- Si deseas soporte para algun otro reproductor con gusto lo anexare
- Cualquier falla, comentario ó mejora agradecere su reporte

 Versión: 0.001 Alfa
 Fecha de creación: 02/enero/2011
Esta es una versión actualizada del script cual-escuchas

==== ACTUALIZACIONES =========

VERSION: 0.001-1 Alfa

- Se añade el reproductor deadbeef
- Activada la opción para eliminar la canción que escuchas para los reproductores mocp, rhythmbox y deadbeef
- Se corrigieron errores en rhythmbox y mocp
- Se cambiaron ligeras opciones para la opción-emesene

======================================

VERSION: 0.002-9 Alfa

- Se añade el reproductor mplayer2
- Se añade error al pasar dias con un mismo reproductor

======================================

VERSION: 0.003-9 Alfa

- Se mejora el tiempo de respuesta para el estado en mplayer y mplayer2

======================================

VERSION: 0.004-10 Alfa

se mejoro soporte para deadbeef
- rapidez para obtener de información necesaria
- se eliminó información extra de salida en el reproductor

se añadió soporte para amarok
- en su versión 2.4.0

se mejoro
- ayuda del script
- código del script
- rapidez y fluidez al manejar los reproductores

======================================

VERSIÓN:  0.0.05-10 Alfa

- se añadio soporte a amarok 2.4.3



Licencia Creative Commons
musictrl por gory gorylong se encuentra bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 3.0 Unported.
Basada en una obra en zer0-azucar.blogspot.com.
Permisos que vayan más allá de lo cubierto por esta licencia pueden encontrarse en http://zer0-azucar.blogspot.com.

25 agosto, 2010

Twidge, peke tutorial de como usar y script para facil manejo

cuando empecé a usar twidge no tenia tantas opciones (ok, ok  tal ves no las recuerdo, ya perdí la noción de eso) pero aun así espero le sirva este tuto


Twidge es un cliente de twitter ligero que se usa desde terminal, muy practico y funcional para mi gusto

Lo podemos encontrar en los repositorios tanto de ubuntu como debian (las demás distros me imagino q tmb)
Cabe destacar que algo que me gusto fue que en algunos clientes solo puedes twitear y nadamas!! se actualizan solos, si, pero no puedo ejecutar otro comando!! con twidge tu actualizas cuando quieres, así no te pierdes de nada o tienes que regresar a ver si te perdiste de algo

La primera ves que usemos twidge tenemos que configurar este con twitter, así que correremos el siguiente comando:
$twidge setup

Nos abrirá una pagina en el explorador, con la cual sincronizaremos twidge con twitter

Después de sincronizado el twidge esta listo para usarse!!
La lista de comandos la obtenemos del siguiente modo:

$ twigde lscommands

de los cuales:

dmsend               Manda un mensaje directo
block                bloquea a un follower
follow               empezar a seguir a alguien
lsarchive            Lista los twits mas recientes que has hecho
lscommands           muestra la lista de comandos
lsdm                 muestra los mensajes directos que te han llegado
lsdmarchive          muestra los mensajes directos que has mandado
lsblocking           lista de personas que estas bloqueando
lsfollowers          lista de personas que te siguen
lsfollowing          lista de personas que sigues
lsrecent             lista de twits recientes de tus amigos
lsreplies            lista de replies recibidos
lsrt                 lista de retweets de tus amigos
lsrtarchive          lista de retweets que tu as hecho
lsrtreplies          List others' retweets of your statuses
setup                configuración interactiva de twidge en tu primera ves
unblock              dejar de bloquear a un amigo
unfollow             dejar de seguir a alguien
update               actualizar tu estado


El comando "twidge lsrecent" por lo regular pone entre 20 ó 100 resultados por pagina. Si vemos en manual del twidge encontraremos unas opciones interesantes, por ejemplo

-a          muestra todas las entradas
-s          guarda la id de los mas recientes mensajes
-u          muestra solo los mensajes desde la ultima ves que se salvo
-l           muestra la info en forma extendida
-exec     ejecuta un comando


Por ejemplo, podríamos usar

$ twidge lsrecent -a -s -u

y aunque tardemos en entrar al twiter, veríamos todos los twits desde la ultima ves que entramos sin perder ningún twit, asi mismo con los replies

$ twidge lsreplies -a -s -u

y con los mensajes directos

$ twidge lsdm -a -s -u


Pero esta de weva estar poniendo a cada rato los comandos, por eso he creado un pequeñísimo script que lo puedes descargar de aquí:
http://www.mediafire.com/?2qbdcdwd3u2x016

no olviden darle permisos de ejecución

chmod + x twitter.sh

con este script podremos ver con un solo comando los twits replies y mensajes directos

también podemos crear unos comandos extras para hacer mas fácil seguir a un amigo, dejar de seguirlo, mandar un mensaje privado, para eso editamos el archivo ~/bashrc con su editor favorito

$ mousepad ~/.bashrc


y le agregamos las siguientes lineas:

alias twu='twidge update'
alias twt='~/gory-scripts/./twitter.sh'
alias twd='twidge dmsend'
alias twf='twidge follow'
alias twuf='twidge unfollow'



Entonces quedaría de la siguiente manera los comandos:

twt          para ver los twits, replies y mensajes directos
twu         para actualizar nuestro estado
twd         para mandar un mensaje directo
twf          para seguir a un twitero
twuf        para dejar de seguir a alguien


ejemplo:
$ twd usuario 'mensaje directo
$ twu 'mensaje de actualización de estado'

Si después de editar el .bshrc no pueden ejecutar aun los atajos no se desesperen, es normal, necesitan hacer desde terminal lo siguiente:

$ alias twu='twidge update'


$ alias twt='~/gory-scripts/./twitter.sh'

$ alias twd='twidge dmsend'

$ alias twf='twidge follow'

$ alias twuf='twidge unfollow'


No olviden cambiar "~/gory-scripts/./twitter.sh" por la ruta donde pusieron el script

Twidge tiene muchas mas opciones por ser explotadas. Espero este pequeño tuto les ayude en gran manera

Así es como se vería al final



saludos!!!

01 marzo, 2010

script - Wallpaper random con recorte y ajuste de imagen y sombras en fluxbox

Este script escrito en bash permite poner de manera aleatoria el fondo de escritorio(obvio especificando una o varias carpetas), ademas de ajustar (identificar la posición de la imagen) y recortar  según el tamaño del monitor, puedes ponerle sombras por medio de una plantilla (que debes crear también). Este es una "edición especial" ya que en un post anterior he ido publicando los avances con el script para poner de manera aleatoria fondos de escritorio en fluxbox, los últimos aveces que le hice a este fueron el ponerle un filtro de imágenes (sin importar si tuviera extensión o no)

lo puedes descargar de aquí:

15/enero/2010
nueva version con opcion de archivo de configuracion y soporte para gnome:
http://www.mediafire.com/?eoaqy4r86v8lklj


Este script ademas de incluir lo del original, añade la opción de poder ponerle sombras, esto con el fin de poderlo usar con el conky (o el uso que tu le encuentres), obtendrías algo asi:


necesitas tener una plantilla como esta:



al final, el script genera una imagen como esta:

Esta el la imagen que se usara para poner de fondo de pantalla.

Para hacer una plantilla, te sugiero hacer una toma de pantalla (screeshot, pantallazo, o como quieras llamarlo) , abre el pantallazo con gimp, te vas a la ventana de "Capas, canales" das click derecho en la imagen del screenshot (normalmente toma el nombre de "Fondo") y das click en la opción "Capa nueva"

Le das click en el ojito en la capa de la toma de pantalla que hicistes y empiezas a crear todas las sombras que le quieras poner, te guias con la capa que tiene la captura para que quede exactamente donde quieres
 
 Ahora solo resta guardar la plantilla de las sombras, click en Archivo, guardar como, lo guardas como "sombras.png" te dirá que la imagen debería exportarse, seleccionas combinar las capas, después exportar


 al final te saldrá un cuadro donde te preguntara que debe de guardar, solo deja el nivel de compresión en cero y dale guardar



Con esto habremos obtenido una plantilla que nos servirá para colocársela encima a todos los wallpapers de ahora en adelante, claro, sin modificar el original


El script también recorta y redimensiona el wallpaper de acuerdo al tamaño del monitor (no es necesario estipular el tamaño de este, la detección es automática) para evitar deformaciones.
Por ejemplo cuando existen círculos, si solo ponemos la opción de expandir podríamos conseguir un ovalo en lugar de un circulo. Sin embargo no esta probado con mas de un monitor, así que puede haber problemas
para mejor comprensión:

Si tenemos este wallpaper de las dimensiones: 2560x1600



y nuestro monitor es de las dimensiones: 2560x1080
el script lo recortara para las medidas de nuestro monitor:




El método de instalación es simple, después de descargar y descomprimir, te colocas en la carpeta
$ cd walrand-ajus-recor-somb-flux-blog

añades permisos de ejecución
$ chmod +x instalar.sh

y ejecutamos el script:
$ bash instalar.sh



Configuración
El script crea una carpeta llamada ".wallpaper-flux"
para especificar las carpetas donde se encuentran las carpetas de las imágenes, es necesario editar el archivo  de configuración "config" que se encuentra en la carpeta "~/.wallpaper-flux", mi editor es mousepad (cambiarlo por el que usen)
$ mousepad ~/.wallpaper-flux/config


Toma en cuenta que todas las variables van despues de dos diagonales //


Configuración del tiempo
La especificas con la variable "tiempo", el tiempo esta dado en segundos, ejemplo:

tiempo//1800


Configuración de cesión
Especificas si el script trabajara en gnome ó en fluxbox, ejemplo para fluxbox:

win_man_uso//fluxbox

ejemplo para usarse con gnome:

win_man_uso//gnome



Configuración de directorios

Son los directorio donde se encuentran las imagenes
No debe existir ni un solo espacio en blanco despues del directorio o eso ocasionaria error

Toma en cuenta que necesitas poner la direccion completa tal cual, no es valido poner "~" en lugar de "/home/usuario"
El script NO lee subcarpetas asi que es importante que las especifiques

Solo pueden usar hasta diez rutas, no incluyan mas, por ejemplo: "dir11//" porque no tiene caso, no estan soportados mas, tendrian que cambiar parte del codigo (bajo su propio riesgo; (bueno de porsi este script es bajo su propio riesgo)


Ejemplo:


#dir1//~/Imagenes #linea comentada, no tendra valides
dir2///home/gory/Imagenes/wallpapers
dir3///home/gory/Imagenes/wallpapers/anime
dir4///home/gory/Imagenes/wallpapers/meteorix
dir5///home/gory/Imagenes/wallpapers/ubuntu_wallpapers
dir6///home/gory/Imagenes/wallpapers/wallpaper_mac
# dir7///home/gory/Imagenes/wallpapers/Wallpapers_de_Marcas_Tecnologicas
dir8///home/gory/Imagenes/wallpapers/wallspapers_2008
dir9///home/gory/Imagenes/wallpapers/walls-gory
dir10///home/gory/Imagenes


Es muy importante que no dejes espacios en blanco al final de las líneas o tendras problemas

Para ejecutarlo desde el inicio de cesion de flux revisar otros post en el blog  >>  http://zer0-azucar.blogspot.com/2009/01/scrip-para-cambair-de-wallpaper-en.html

Actualmente cuenta con soporte para gnome de manera sumamente experimental



NOTAS:
- Recuerden que no he hecho pruebas con 2 monitores conectados, no se que consecuencias tenga
- El script esta hecho para usarse con fluxbox/gnome si no es la cesion, no se ejecutara (otros cambios para otras cesiones, solicitarlo o hacerlo bajo propio riesgo (que no es muy complicado por si quieren experimentar))
-dudas comentarios, son bienvenidos

=== ACTUALISACIÓN ===
======= sabado 25/enero/2010 ===============
- Ya cuenta con soporte para Gnome
- Cuenta con archivo de configuración

06 octubre, 2009

Script para mostrar en pantalla cancion de reproductor en curso

He actualizado este script añadiendole un reproductor mas y anadiendo opcion para controlar tambien el reproductor, para obtener info, vea este link:
http://zer0-azucar.blogspot.com/2011/01/musictrl-controla-el-reproductor-activo.html

Este script solo arroja en un archivo datos como: canción, artista, album, reproductor y estado del reproductor (play/pause), es practico para usar con el conky (lo hice pensando en este) y el conky mostrara estos datos en pantalla

unos ejemplos de su aplicación:

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

funciona: arrojando en archivos separados los datos del ultimo reproductor que no se encuentre en pausa, si todos se encuentran en pausa, colocara los datos del ultimo abierto

Por el momento solo soporta 3 6 reproductores: moc, mplayer (no smplayer ni gmplayer ya que los marca como mplayer), rhythmbox, exaile, muine y vlc pero si alguien lo necesita para otro reproductor con gusto lo añadiré en la lista

No soporta multiples instancias, si abres varios archivos con el mplayer solo se mostraran los datos del ultimo abierto sin importar si esta en pausa o no

lo descargas de aquí:
http://www.mediafire.com/?zmw43wkzkdm
descomprimes con tu método favorito y ejecutas desde una terminal el script, antes le das permisos de ejecución:
$ chmod +x instalador.sh

Despues ejecutamos el instalacor
$ bash instalador.sh

El script quedara instalado en la carpeta "~/.cual-escuchas"
el script genera 6 archivos, uno de ellos no lo debes de tomar en cuenta
los 5 restantes corresponden a:

cancion               ----->> nombre de la canción que esta sonando
artista                 ----->> nombre del artista que esta sonando
artistalbum        ----->>  nombre del artista y nombre del álbum
album                  ----->>  nombre del álbum  

cancionartista    ----->> nombre de la canción así como del artista
reproductoredo  ---->> nombre del reproductor en curso y estado de este

ahora nos toca poner lo necesario en el conky para que se muestren estos datos

yo uso mousepad, así que pongan en su lugar su editor preferido

$ mousepad ~/.conkyrc

nos ponemos en la sección después de:
TEXT
y  agregamos las siguientes lineas en el lugar donde nos sea mas conveniente (dentro del archivo ~/.conkyrc)

primero que nada agregamos las lineas para ejecutar el script
${execp ~/.cual-escuchas/cual-escucha.sh}

ahora:
si queremos mostrar el nombre del artista y nombre del album:
 ${exec cat ~/.cual-escuchas/artistalbum}

si queremos mostrar el nombre de la canción:
 ${exec cat ~/.cual-escuchas/cancion}

si quieres mostrar el nombre de la canción y el artista
 ${exec cat ~/.cual-escuchas/cancionartista}

si quieres mostrar el nombre del reproductor en curso y el estado de este (play/pause)
 ${exec cat ~/.cual-escuchas/reproductoredo}

Repito, estas ultimas expresiones no son en terminal, las pondrás en el conky para mostrar la información deseada


Anexé una extención para el emesene con el cual podras poner como mensaje personal la cancion que escuchas, pero advierto que manda muchos mensajes de error todavia, en el archivo "~/.cual-escuchas/cualescucha.sh"  busca la seccion que diga: "mail" y cambias el correo que tiene por el tuyo
Tambien necesitas habilitar la opcion "dbus" en el emesene.
Lo deje habilitado (una disculpa) pero si quieres desabilitar la opcion solo comenta desde la linea 256 hasta la 270, desde:
"######### para el emesene"
hasta
"######################## termina emesene"

para serles sincero no comprobé el script de instalación, ni la versión para el blog (solo una ligera modificación en la variable del directorio)

Si existe algún inconveniente o si desean que anexe el soporte para algún reproductor de su agrado, solo haganmelo saber y con gusto añadiré lo necesario



NOTA:

He actualizado este script añadiendole un reproductor mas y anadiendo opcion para controlar tambien el reproductor, para obtener info, vea este link:



Creative Commons License
Script para mostrar en pantalla cancion de reproductor en curso by gory gorylong is licensed under a Creative Commons Atribución-No comercial-Licenciamiento Recíproco 2.5 México License.

03 septiembre, 2009

Script para apagar cuando la bateria este baja

Este script lo hice pensado en los usuarios de fluxbox (si, yo uso flusbox) ya que no me apetecía estar en fluxbox y usar el gnome-power-manager o como se llame, al final el principio básico es apagar el equipo cuando la carga sea baja

Se usa el comando acpi; he encontrado algunas variaciones dependiendo de la versión, asi que puede o no necesitar ligeras correcciones

primero que nada, necesitas permisos para poder apagar, hibernar o suspender tu equipo como usuario normal, seria algo asi como:


Apagar el sistema Linux sin ser root
recuerden que los comandos que lleven # deven ejecutarse como root y los que lleven $ como usuario normal

agregamos el grupo:
# addgroup apagar

cambiamos el grupo:
# chgrp apagar /sbin/shutdown /sbin/reboot /sbin/halt

otorgamos permisos:
# chmod u+s,o-rwx /sbin/shutdown /sbin/reboot /sbin/halt

hacemos links
# ln -s /sbin/shutdown /usr/bin/shutdown
# ln -s /sbin/reboot /usr/bin/reboot


agregamos usuario al nuevo grupo
# gpasswd -a usuario apagar

Con esto ya podemos apagar y reiniciar sin ser root


Descargas el script de este sitio:
http://www.mediafire.com/?tbuzavvgmtn

lo descomprimes con clik derecho o como te gustes y entramos en la carpeta
$ cd instalador-y-paq-para-blog

le damos permisos de ejecucion al script de isntalacion
$chmod +x instalar.sh

con esto tenemos instalado el script

necesitamos instalar algo mas, esto es para poder ver los diálogos de alerta cuando ya no tengamos batería o este casi agotada

$ sudo apt-get install zenity

Ahora solo resta agregarlo al inicio de fluxbox
otra ves suponiendo que usas mousepad
$ mousepad ~/.fluxbox/startup

agregamos:
~/.carga-bateria/apcarga.sh &

antes de esta linea:
exec fluxbox


he añadido un scrip extra para usarlo con el conky, este te permite

visualizar el estado de la batería dependiendo del estado de la carga

ese script indica si estas conectado a tomacorriente o no y cambia de color segun la carga de la bateria

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

solo tienes que indicar la ejecucion de este script en el conky de la siguiente forma:

en el archivo de cofiguracion de conky, despues de las letras:

TEXT

pones lo siguiente, dependiendo el lugar que mas te agrade:
${execp sh ~/.carga-bateria/conky-bateria.sh}

con eso sera suficiente.....

Creative Commons License
apagar por carga by gory gorylong is licensed under a Creative Commons Atribución-No comercial-Licenciamiento Recíproco 2.5 México License.

29 agosto, 2009

Pantallazos

No soy muy fanático de postear cosas así, pero la verdad es que ya casi cumplo un año con debian y si que ha cambiado mi escritorio, no he probado seriamente muchos escritorios ni distribuciones pero he tratado de hacerlo con calidad


cuando me cambie a debian así lucia:




cuando empece a usar fluxbox



y hoy en dia:







en los cuales:

S.O.: Debian [Testing/Stable]
W.M.: Fluxbox
F.M.: Thunar

Aplicaciones: wbar, conky, guake, mocp, wicd-client, osd_cat, xbindkeys

Tipografia: Sans 10, Liberation Mono Bold, DIST Yolks Emoticons, Arista 2.0 Alternate, OpenLogos

Iconos: black-white_2-Stile_big

Theme gtk 2.0: DebianRed

scripts :

cambiar el fondo de pantalla
refrescar la wbar cada que cambie el fondo de pantalla
cambiar el color del estado de la batería
avisar cuando la batería este baja y apagar el equipo
mostrar por medio del conky las redes inalambricas disponibles


por cierto, acepte una buena sugerencia de usar guake (salio en un comentario de un post)
bueno, saludos!!

28 agosto, 2009

girar imagenes desde thunar

Este tema ya lo había puesto antes, pero lo modifique ligeramente, de todas formas, va de nuevo

Se trata simplemente de añadir una acción personalizada al manejador de archivos "thunar", con esto seremos capaces de girar imágenes o fotografías en un angulo de 90º en dirección de reloj y contra reloj.

abrimos thunar y le damos click en "editar" y después en "configurar acciones personalizadas"


Image Hosted by ImageShack.us


le damos click en el signo de mas "añadir una accion perzonalizada"

Image Hosted by ImageShack.us

y rellenamos los campos que vienen a continuación, primero aremos el giro a la derecha

Nombre:girar derecha

Descripción:rotar una imagen 90º en sentido del reloj


Comando:for v in %N; do convert -rotate 90 "$v" $v.rotada ; mv *.rotada "$v" ; done

Icono: aquí solamente elegimos una bonita imagen

En "condiciones de apariencia" le damos click en archivos de imagen, damos click en Aceptar y listo

de nuevo le damos click en el signo de mas "añadir una acción personalizada"
y rellenamos los campos que vienen a continuación, ahora aremos el giro a la izquierda


Nombre:girar izquierda
Descripción:rota una imagen 90º en sentido contrario del reloj

Comando:for v in %N; do convert -rotate 270 "$v" $v.rotada ; mv *.rotada "$v" ; done
Icono: de nuevo elegimos una imagen propia de la acción


Espero les sirva, saludos!!

======= EDITADO============>>

Ya puedes girar imagenes con espacios en los nombres

También puedes seleccionar varias imágenes y rotaras en un mismo sentido

tengan cuidado con las comillas, si no funciona, es quisas por eso

necesitas tener isntalado el paquete imagemagick

31 marzo, 2009

manuales de oracle 9i

bueno pues ahora vamos a poner unos manuales algo sencillos pero precisos para el uso de oracle 9i... como tengo un examen especial mañana me puse a buscar algo como esto para tener algo que me respalde en el examen y pues me encontre con esta paginita que la verdad me ayudo mucho
http://www.taringa.net/posts/downloads/1335149/Manuales-de-Oracle-9i.html
pero ps de todos modos les dejo los links y una breve descripcion de cada uno

Sistema de Gestion de Base de Datos, Jorge Sánchez

Spanish | PDF | Creative Commons | 2 MB | Jorge Sánchez | 121 Páginas

[quote]En el mundo actual existe una cada vez mayor demanda de datos. Esta demanda siempre ha sido patente en empresas y sociedades, pero en estos años la demanda todavía de ha disparado más debido al acceso multitudinario a las redes integradas en Internet y a la aparición de pequeños dispositivos (móviles y PDA) que también requieren esa información.
En informática se conoce como dato a cualquier elemento informativo que tenga relevancia para un usuario. Desde su nacimiento, la informática se ha encargado de proporcionar herramientas que faciliten la gestión de los datos.
Antes de la aparición de las aplicaciones informáticas, las empresas tenían como únicas herramientas de gestión de datos a los cajones, carpetas y fichas en las que se almacenaban los datos. En este proceso manual, el tipo requerido para manipular estos datos era enorme. Sin embargo el proceso de aprendizaje era relativamente sencillo ya que se usaban elementos que el usuario reconocía perfectamente. Por esa razón, la informática ha adaptado sus herramientas para que los elementos que el usuario maneja en el ordenador se parezcan a los que utilizaba manualmente. Por eso en informática se sigue hablado de ficheros, formularios, carpetas, directorios,....

Contenido:
Unidad 1: Gestión de Datos
Unidad 2: Sistemas Gestores de Bases de Datos
Unidad 3: Bases de Datos Relacionales
Unidad 4: Diseño de Bases de Datos Relacionales
Unidad 5: El Lenguaje SQL (y Oracle SQL)[/quote]

BAJAR




Principios sobre Bases de Datos Relacionales, Jorge Sánchez

Spanish | PDF | 1.6 MB | Jorge Sánchez | Creative Commons | 32 Páginas

[QUOTE]Conceptos básicos sobre bases de datos relacionales, diseño de bases de datos relacionales a partir del modelo entidad/relación y normalización de tablas (formas normales).

Contenido:

* Modelos Lógicos de datos
* Modelo Relacional
* Paso del esquema ER al modelo relacional
* Normalización del esquema relacional
* Apéndice[/QUOTE]

BAJAR




Manual de SQL para Oracle 9i, Jorge Sánchez

Spanish | PDF | 1.4 MB | 83 Páginas | Jorge Sánchez | Creative Commons

[QUOTE]En este manual en muchos apartados se indica sintaxis de comandos. Esta sintaxis sirve para aprender a utilizar el comando, e indica la forma de escribir dicho comando en el programa utilizado para escribir SQL.

Contenido:

* Índice
* Notas Previas
* Introducción
* Tablas
* Consultas SELECT
* Comandos Internos en SQL e iSQL*Plus
* DML
* Objetos de la Base de Datos
* COnsultas Avanzadas[/QUOTE]

BAJAR




Guía de instalación de Oracle 9i, Jorge Sánchez

Spanish | PDF | Creative Commons | 1.8 MB | Jorge Sánchez | 18 Páginas

[QUOTE]Esta guía no pretende ser una guía completa de instalación de Oracle. Por lo tanto la pretensión no es cubrir todas las posibilidades. Fundamentalmente está pensada para usuarios particulares que deseen comenzar a practicar con el sistema gestor de bases de datos (SGBD) Oracle en su versión 9i.
La instalación comentada es la versión Oracle 9i para Windows. Por lo que se da por hecho que ese es el sistema operativo instalado.[/QUOTE]

BAJAR




Diseño conceptual de Bases de Datos, Jorge Sánchez

Spanish | PDF | Jorge Sánchez | 1.6 MB | Creative Commons | 25 Páginas

[QUOTE]Guía de aprendizaje de diseño de bases de datos, dedicando un recorrido completo al modelo entidad relación (MER) extendido y a los conceptos fundamentales sobre bases de datos. Manual realizado para el curso de programador de bases de datos relacionales[/QUOTE]

BAJAR




Arquitectura del DBMS Oracle, Jorge Sánchez

Spanish | PDF | 1.2 MB | Jorge Sánchez | 23 Páginas | Creative Commons

[QUOTE]ntroducción a la arquitectura de Oracle. Paso previo para conocer de forma avanzada la administración de bases de datos Oracle. Manual realizado para el curso de programador de bases de datos relacionales.

Contenido:

* Introducción
* Diccionario de datos
* Conexión a un sistema gestor de bases de datos
* Herramientas que proporcionan los RDBMS
* Términos relacionados con los sistemas gestores de bases de datos
* Aproximación a Oracle
* Base de Datos objeto-relacional
* Breve historia de Oracle
* Otros servidores
* Estrategia de Oracle
* Servidor Oracle
* Elementos del servidor Oracle
* Conexiones
* Estructura de las bases de datos Oracle
* Instancia de la base de datos
* Procesamiento de instrucciones SQL
* Conceptos del sistema Oracle
* Almacenamiento
* Transacciones
* Usuarios
* Pérdidas de información
* Bases de datos distribuidas
* Herramientas de Oracle [/QUOTE]

BAJAR

Ahora ya no podemos decir " es q no se usarlo" solo es cuestion de leer un poco y poner en practica todo


saludos al webory... marien.. aver si ya publicas algo eh!!!


bless

---------Editado---------------------------------------

Anexo (sin consultarte antes Bicho) otro link de descarga, este contiene todas las obras antes mencionadas en un solo archivo

http://www.mediafire.com/?ml0imxtdoh0

Saludos!!!

08 marzo, 2009

Mostrar redes inalambricas en conky (modo 2)
















===== EDITADO =============
Supongamos que para esto ya tienes tu conky instalado y funcionando

Hemos creado un script para eliminar la flojera de la instalación (gracias mayku!!)

Descargarlo de aquí
En formato rar:
http://www.mediafire.com/?izbx2memmmf
en formato tar.gz
http://www.mediafire.com/?3qoyxakm1rl

y si quieres solo el script:
http://www.mediafire.com/?njdtzll9emt

Solo tienes que descomprimir ejecutar el script IMPORTANTISIMO QUE EJECUTES DESDE TERMINAL!!!
$tar xvzf listredes.tar.gz && cd listredes
$sh instalacion.sh
Si bajastes el rar
$rar -r listredes.rar && cd listredes
$sh instalacion.sh
Solo sigue las instrucciones en el script, son fáciles...........................


De todas formas, por si no te funciona el script, o si lo quieres hacer a la mano, te dejo la forma de hacerlo ( o mas bien lo que hace el script)

1.-
$sudo addgroup listredes

2.-
$sudo chgrp listredes /sbin/iwlist

3.-
$sudo chmod u+s,o-rwx /sbin/iwlist

4.-
$sudo ln -s /sbin/iwlist /usr/bin/iwlist

5.-
$sudo gpasswd -a $USER listredes


6.-crear directorio del script
$mkdir /home/$USER/.listredes/


7.-
$cp alineaderecha /home/$USER/.listredes/alineaderecha


8.-
$cp list-wireles.sh /home/$USER/.listredes/list-wireles.sh &


1.- Añadimos un grupo llamado "listredes"
2.- Cambiamos al grupo "listredes" al comando iwlinst
3.- Otorgamos permisos al comando iwlist para que puedan ejecutalo los usuarios de ese grupo
4.- Hacemos un link simbolico para que podamos usar el comando como usuarios normales
5.- agregamos tu usuario al grupo "listredes"


Ahora solo nos resta añadir un par de lineas al conky para que puedas ver el resultado, asi que habrimos el conky para editarlo
$mousepad ~/.conkyrc


y añadimos las siguientes lineas (de preferencia al final):

Wireles: % ${execi 10 ~/.listredes/list-wireles.sh}
${execpi 5 cat ~/.listredes/redes_disponibles}


en la primera linea:
10 es el intervalo de tiempo(en segundos) que tardara en cada escaneo
en la segunda linea:
5 es el intervalo de tiempo que tardara en leer el archivo para mostrarlo

Recomendación:
* El escaneo no es instantáneo, así que tardara unos segundos así ten en cuenta esto para el tiempo que tardara en leer el archivo
* El intervalo tanto de ejecución como el intervalo de lectura no podrán ser menores al tiempo de actualización del conky, puedes cambiar el intervalo de ejecución en la opción:
update_interval
podrías ponerle como mínimo 4.5 segundos, de lo contrario tendrías que ajustar los valores de actualización para ejecución del script y lectura del archivo

Cualquier nota, comentario o sugerencia para mejorar este script es bienvenida, ya que solo lo he probado en teoría jeje, cualquier voluntario de conejillo de indias sera bienvenido

Saludos!!

----------------Editado----------------
Gracias mayku!!!! sino fuera por tu experiencia, todavia tubiera un chingo de errores

05 febrero, 2009

Instalar LAMP en Ubuntu 8.04

Ahora llevo una materia llamada programacion web y pues la materia la tengo en repite y necesito un extra para poder impresionar a la profesora. asi que decidi usar php + mysql + apache + linux; y pues empece a leer un poco la verdad no se me da eso del diseño bonito de la pagina pero pues vamos a ir poco a poco. asi que estuve leyendo esta pagina:

http://lobotuerto.com/blog/2008/04/30/como-instalar-lamp-en-ubuntu-804/
y me encontre con un pequeño tutorial para hacerlo (el cual pues lo tuve que probar primero antes de postearlo aca). Este tutorial dice asi:

Instalar LAMP (Linux Apache MySQL PHP) en tu máquina con Ubuntu no podría ser más fácil.

Con esta guía aprenderás cómo hacerlo en unos cuantos minutos. El procedimiento se divide en tres partes: Instalar y probar Apache, después PHP y finalmente MySQL.

Comencemos con Apache

En tu terminal (Aplicaciones → Accesorios → Terminal) teclea:

sudo apt-get install apache2

Listo, ya tienes instalado Apache 2 en tu máquina.

Por lo regular después de la instalación el servidor web será iniciado automáticamente, pero si necesitas iniciarlo de manera manual teclea esto en tu terminal:

sudo /etc/init.d/apache2 start
Si por alguna razón necesitas detener el servicio, escribe en tu terminal:

sudo /etc/init.d/apache2 stop

El directorio donde se almacenan tus documentos web es: /var/www

Si todo resultó bien, debes ver una página web ordinaria al escribir http://localhost en la barra de direcciones de tu navegador.

Hemos terminado con Apache, ahora a la conquista de PHP

Escribe en tu terminal:

sudo apt-get install php5 libapache2-mod-php5

Reinicia Apache con:

sudo /etc/init.d/apache2 restart

Terminamos con PHP. :D

Para probar que se haya instalado correctamente vamos a crear un pequeño script en PHP. Escribe en tu terminal:

sudo gedit /var/www/test.php

Ponle este contenido y guárdalo:

  1. phpinfo();
  2. ?>

Para ejecutar el script ve a esta dirección: http://localhost/test.php — debes ver una página con información sobre tu instalación de PHP.

66% concluido, continuemos con MySQL

De nuevo, escribe en tu terminal:

sudo apt-get install mysql-server

Probemos si todo funciona correctamente:

mysql -uroot -pxxx

Donde xxx es la contraseña que ingresaste durante la instalación de MySQL.

Si deseas cambiar la contraseña de la cuenta root, ejecuta el siguiente comando después de ingresar a MySQL:

SET PASSWORD FOR ‘root’@'localhost’ = PASSWORD(’yyy’);

Sustituye yyy por tu nueva contraseña.

Esto es opcional

Si quieres acceder a MySQL por medio de scripts remotos (es decir, no albergados en tu propio servidor) debes editar el bind-address en /etc/mysql/my.cnf y reemplazar el valor que trae por defecto (127.0.0.1) por tu dirección IP.

Si hiciste algún cambio en my.cnf reinicia MySQL con:

sudo /etc/init.d/mysql restart

Felicidades, tu sistema LAMP está instalado y listo para utilizarse. :)

Xtras

phpMyAdmin

phpMyAdmin es un administrador gráfico para MySQL, yo lo uso con frecuencia. Para instalarlo teclea en tu terminal:

sudo apt-get install phpmyadmin

Para acceder a él visita: http://localhost/phpmyadmin

No olvides presionar la barra espaciadora en la pantalla de configuración para seleccionar a Apache2 como el servidor web que deseamos configurar automáticamente.

gd library

Si deseas soporte para generación y manipulación de gráficos en PHP, escribe en tu terminal:

sudo apt-get install php5-gd

SSL en Apache 2

Para activar el módulo SSL (Secure Socket Layer) en Apache 2, ingresa en tu terminal:

sudo a2enmod ssl

Reinicia Apache con:

sudo /etc/init.d/apache2 restart

Nota:

Esta pagina hace referencia a la instalacion oficial proporcionada por LAMP
Installing LAMP on Ubuntu 7.10 (Linux,Apache,MySQL,PHP)



31 enero, 2009

Script para respaldos incrementales tipo instantáneas (snapshots) inspirados en backintime.

Hice un script para respaldar la información que tengo en mi computadora, lo que hace es lo siguiente:

1. Hace respaldos incrementales de los directorios que se le indican.
2. Los respaldos son del tipo instantáneas (snapshots).
3. Muy sencillo de respaldar y recuperar directorios.

Los respaldos de tipo instantáneas son muy útiles, ya que puedo ver todos los archivos de un directorio y decidir los que me hacen falta, pudiendo navegar por ellos dependiendo de la periodicidad del respaldo.

El que sean incrementales es útil ya que se ahorra espacio solo copiando aquellos archivos nuevos o que tuvieron cambios.

Ahora bien, no importa que un archivo no haya tenido cambios, este aparecerá en cada instantánea que se haya tomado del directorio donde se encontraba, pero solo ocupara espacio como un archivo, esto se logra creando vínculos fuertes o duros al archivo, es decir se encuentra en todas las instantáneas pero solo ocupa un espacio.

Esto da la facilidad que se pueden hacer respaldos cada hora si se desea, si solo se modificó un archivo de 100Kb solo se ocupará el espacio de 100kb, pero para nosotros será como si tuviéramos un nuevo respaldo con todos nuestros archivos.

Si hasta aquí estás convencido, entonces te puedo contar porque hice este script.

Desde hace algún tiempo hago respaldos de los directorios más importantes de mi equipo a otro disco duro de mi mismo equipo, y tiene algún tiempo que lo hago a un NAS que configuré, el problema que me encontré con mi tipo de respaldos es que si solo necesito un archivo, tengo que obtener todo el respaldo, y una vez que lo obtengo saco el archivo, otro problema es que como no son respaldos incrementales, ocupo mucho espacio en cada respaldo y no puedo tener muchos.

Cuando leí de unos nuevos programas para respaldar como son backintime, flyback o timevault; los cuales se encuentran inspirados en el sistema de respaldos de MAC OS X llamado Time Machine. Pensé que podía ser una buena oportunidad para cambiar mi sistema de respaldos.

Probé con el que sonaba que tenía más movimiento, en este caso el backintime, pero lo que no me gustó fue que al menos el que yo probé, si yo hacía un pequeño cambio en un archivo volvía a sacar un respaldo completo de todo mi directorio o directorios que estaba respaldando. En un principio pensé que a lo mejor algo estaba haciendo mal, pero buscando un poco en los foros del programa leí algo como lo siguiente: "si solo modifico un mb de información, ¿porqué se tiene que respaldar todo el directorio de nuevo?". Según comentaban este era un comportamiento similar en Time Machine.

Por esta razón busqué alguna herramienta que hiciera algo similar a lo que necesitaba, en mi búsqueda encontré un programa muy sencillo llamado rdiff-backup, este hace un respaldo del directorio que se le indica y va haciendo respaldos incrementales del mismo con la periodicidad que se necesite, pero tiene un gram problema, recuperar o inclusive revisar si un archivo de una determinada fecha tiene una modificación se vuelve bastante engorroso, uno tiene que navegar mediante la línea de comandos, e inclusive ir sacando del respaldo archivo por archivo lo que uno va necesitando, sin saber a ciencia cierta si el archivo es o no es lo que uno necesita.

Sistemas como rdiff-backup se basan en el hecho de que si yo hago un respaldo de un directorio, lo más seguro es que si recupero voy a saber de que día necesito recuperar el archivo, y de que muy seguramente voy a necesitar el respaldo completo. Este principio era muy válido en tiempos anteriores donde uno corría procesos diarios semanales y quincenales, y sabía la fecha del último proceso válido, pero en las épocas actuales uno no sabe en que fecha modificó un archivo y si en realidad es el que necesita, además de que a lo mejor solo se necesita un archivo de un respaldo de varios gigabytes de información.

La idea de tomar instantáneas me había agradado y me parecía la mejor forma de resolver mi problema, por lo que investigando un poco más, ubiqué una serie de páginas que me indicaban como hacer respaldos incrementales rotativos "Mejorando mi estrategia de copias de seguridad" y "Easy automated snapshot-style backups"; los que me dieron las bases para completar un script que cumpliera lo que necesitaba para mis respaldos.

Que es lo que hace el script:

  1. Realiza respaldos de los directorios que se le indican.
  2. Los deja donde uno le diga
  3. Puedo navegar entre los archivos de cada respaldo que a mis ojos es como si tuviera todos los archivos del directorio con la misma estructura del directorio original.
  4. Recupero el archivo que necesito con un simple copiar y pegar.
  5. Los respaldos son incrementales, es decir no me genera más espacio por archivos que no se hayan modificado.
  6. Me indica la fecha y hora de los respaldos.
  7. Decido el tiempo que deseo conservar los respaldos, ya sea en días o borrándolos de forma manual.
El script en bash es como sigue:


#!/bin/bash
#
# Programa para realizar respaldos de un directorio, la ventaja es que hace
# un respaldo del tipo instantánea (snapshot) donde en cada dia el usuario
# puede encontrar todos los archivos tal y como se encontraban al momento
# en que se hizo el respaldo.
#
# Además para el usuario es como si se hubieran respaldado todos los
# archivos, pero en realidad solo se respaldan los cambios, creándose
# enlaces duros a los archivos existentes.
#
# Se recibe como parametro el directorio para dejar los respaldos.
#
# Los respaldos se dejan en un directorio que indica la fecha y hora
# del respaldo, de esa forma queda más fácil navegar por ellos.
#
# Los respaldos conservan integra la estructura y permisos del directorio
# que respaldan.
#
# ****VARIABLES IMPORTANTES****
#
# $1 - Parametro que indica el directorio donde van todos los respaldos
# $2 - Parametro que nos dice el numero de dias que se conservan los respaldos
# $fecha - Fecha del respaldo y nombre del directorio donde se va a
# guardar el respaldo actual
# directorios - Archivo que tiene los directorios que se van a respaldar
# $directorio - Directorio que se está respaldando
#
# 29 de enero del 2009
# Destructor

# Obtiene fecha y hora de respaldo
fecha="$(date "+%Y-%m-%d-%H:%M:%S-%A")"
echo
echo "============================================================"
echo "Fecha y hora del respaldo $fecha"

# Borra respaldos mayores al numero de dias que se especifiquen
echo
echo "============================================================"
echo "Respaldos borrados"
find $1 -maxdepth 1 -name '2*' -mtime +$2 -print -exec rm -rf {} \;

# Obtiene el directorio de respaldo más reciente
for archivo in $(ls -t $1 --group-directories-first)
do
echo "El respaldo anterior se encuentra en $archivo"

# Respalda cada uno de los directorios indicados en el
# archivo de respaldo llamado directorios
for directorio in $(cat $1/directorios)
do
echo
echo "**************************************************************"
echo "Respaldando el directorio $directorio"

# Crea directorio para respaldar
mkdir -p $1/$fecha$directorio
rsync -av --delete --link-dest=$1/$archivo$directorio/ $directorio/ $1/$fecha$directorio/
done
echo
echo "///////////////RESPALDO CONCLUIDO//////////////////"
exit 0
done

Para usarlo es muy sencillo, solo se debe hacer lo siguiente:

1. ¿Donde voy a guardar los respaldos?

Con tener un directorio en mi equipo, en un disco duro externo, o en otro equipo con espacio para lo que necesito debe ser suficiente, digamos que el directorio donde voy a guardar los respaldos se llama: /mnt/Multimedia/Respaldos.

2. ¿Qué directorios voy a respaldar?

Dentro del directorio donde voy a guardar los respaldos se debe crear un archivo con nombre "directorios" que por cada línea indique los directorios que se van a respaldar, más o menos como sigue:

/home/rponcedeleon/Documentos
/mnt/Imagenes/Portables
/mnt/Imagenes/Proyectos
Tener cuidado de no colocar la diagonal final en los directorios que se van a respaldar.

3. Copiar el script que se encuentra en las líneas superiores y darle permisos de ejecución, yo le puse por nombre respaldo.sh, pero en realidad puede ser el que se quiera.

4. Decidir los dias que se necesitan guardar los respaldos.

Ahora ya se puede ejecutar el script, podemos probarlo con una ejecución directa desde el directorio donde hayamos guardado el script, por ejemplo:

sh respaldo.sh /mnt/Multimedia/Respaldos 30
Con esto le estamos indicando que queremos hacer un respaldo de los directorios que se encuentran en el archivo directorios que debimos haber guardado en /mnt/Multimedia/Respaldos, y que solo queremos conservar 30 días de respaldos.

Al ejecutar el script podemos observar que nos indica la fecha del respaldo, si existe algún respaldo anterior, los respaldos que borró, y los archivos que respaldó; en este caso por ser nuestro primer respaldo nos va a dar mucha información y se va a tardar bastante, los siguientes respaldos serán más breves.

El script nos debe entregar una salida, similar a esta:

============================================================
Respaldos borrados

============================================================
Fecha y hora del respaldo 2009-01-31-23:39:22-sábado
El respaldo anterior se encuentra en 2009-01-31-20:19:28-sábado

**************************************************************
Respaldando el directorio /home/rponcedeleon/Documentos
sending incremental file list
./
CIC/Programas/
CIC/Programas/respaldo.sh

sent 83531 bytes received 365 bytes 167792.00 bytes/sec
total size is 1040765788 speedup is 12405.43

**************************************************************
Respaldando el directorio /mnt/Imagenes/Portables
sending incremental file list
./

sent 1176 bytes received 19 bytes 2390.00 bytes/sec
total size is 491212357 speedup is 411056.37

**************************************************************
Respaldando el directorio /mnt/Imagenes/Proyectos
sending incremental file list
./

sent 51036 bytes received 329 bytes 34243.33 bytes/sec
total size is 3357108911 speedup is 65357.91



Ahora, si vamos al directorio /mnt/Multimedia/Respaldos, podemos observar que tenemos un nuevo directorio de tipo 2009-01-30-13:28:02-viernes, que tiene el respaldo de los directorios que le indicamos, tal cual la estructura de los directorios originales, y conservando los permisos originales, vínculos, archivos ocultos, es decir todo.

Si volvemos a ejecutar el script, observaremos que ahora la información es menor, sino cambiamos nada solo serán mensajes de avisos, y si volvemos a navegar en nuestro directorio de respaldos a lo mejor veremos un nuevo directorio como el que sigue 2009-01-30-13:40:02-viernes.

Es decir, tenemos dos directorios de respaldo, y si navegamos en él, tenemos todos los archivos de nuestros directorios; es decir tenemos dos instantáneas de respaldos, pero si observamos el espacio en disco, los archivos no están duplicados.

Esta es la maravilla, solo respalda los archivos modificados o nuevos, pero podremos navegar por nuestros respaldos con la ayuda de nuestro navegador favorito, de hecho el directorio de respaldos pudiera lucir como sigue:


Aquí se observa como con la ayuda de mi navegador (konqueror) busco entre los diferentes respaldos que conservo para ubicar un archivo, lo interesante de esto es que no se duplica espacio en disco y sigo conservando la facilidad de buscar en cuantos respaldos necesite, de una forma sencilla, sin aprender una nueva interfaz y si quiero puedo tener muchos respaldos al día.

Para mayor facilidad puede ser conveniente que la salida del script la mandemos a un archivo de bitácora donde puedo ver con más calma lo que pasó durante su ejecución, esto lo puedo lograr con una línea como la que sigue:
sh respaldo.sh /mnt/Multimedia/Respaldos 30 >> /home/rponcedeleon/respaldo.log
Con los dos ">>" le indico que la salida del script se vaya a un archivo respaldo.log que se encuentra en /home/rponcedeleon, que si el archivo no existe lo crea, y si existe le agrega más líneas.

Para dejar sus respaldos que se ejecuten cuantas veces necesiten lo pueden incluir en cron, o en anacron.

En mi caso yo lo incluí al arranque de mi sesión, entonces antes de hacer algo, lo primero que hace mi sistema es respaldar cualquier cosa que pude haber hecho en mi sesión anterior.

Por la forma en que se encuentra el script puedo respaldar diferentes directorios con diferentes criterios; a lo mejor algunos necesito hacer un respaldo a la semana, o cada tercer día; o conservar solo una semana de respaldos o un mes; solo debo correr el script con parámetros diferentes.

Por otro lado no existe problema en quitar o agregar directorios al respaldo, desde el momento que lo hagamos podremos apreciar el cambio en el respaldo correspondiente, ya que el script respeta la estructura de directorios que se le indique.

Esperando que este script les sea tan útil como a mi, me despido.