Aug 10

Si, ya se que FTP no es lo ideal para la transferencia de archivos en un ambiente hostil, pero estos scripts pueden ayudarte si estas dentro de una red de area local.

En ocasiones necesitamos copiar archivos de un servidor a otro para esto tenemos un pequeño script que puede ayudarnos con esa tarea

** Nota: Hay varias maneras de automatizar las transferencias del ftp, esta es solo una manera de hacerlo, si prefieres utilizar otra o comentar sobre ella, hazlo

1. Crear un archivo llamado .netrc en tu $HOME

con esta estructura:machine ip_addres_or_remote_host login user password passwd
por ejemplo:

machine localhost login sismo password mypassword

** puedes agregar múltiples entradas, una por host
** los permisos en el archivo deben ser ilegibles para todos excepto el dueño, puedes hacerlo con chmod 600 .netrc

2. Crear un archivo que contenga las instrucciones del ftp que deseas realizar

por ejemplo:

ASCII
cd /cualquier_path/
mput *.txt
mput *.dbf
bye

** en este caso guardé mi archivo como instructions.txt

3. Crear un archivo que invoque el ftp y pasar el archivo con las instrucciones del ftp como parámetro

por ejemplo:

echo “comienza transferencia del archivo…”
ftp - i localhost < instructions.txt
echo “listo...”

** en este caso guardé este archivo como automate.sh

se cambian los permisos del .sh para poder ejecutarlo

chmod u+x automate.sh

y finalmente lo corro con

./automate.sh

si tienes archivos pesados puedes enviarlos a background con el nohup

Por ejemplo:

nohup /export/home/sismo/automate.sh &

si te gusta o disgusta deja comentario :D

Jul 25

Mas bien el titulo deberia de ser borrar archivos que tienen en su nombre la fecha de dos dias atras con un formato específico jaja, pero era demasiado largo.

Tenemos un cron que genera diarmente un respaldo de archivos de la base de datos, solo que el directorio donde se hacen es limitado, por lo tanto es necesario antes de generar el nuevo respaldo, borrar el de 2 dias antes, pero hay que dejar el del dia pasado.

De este respaldo se generan varios archivos, los cuales en el nombre del archivo contienen la fecha de creacion con un formato de AAAAMMDDnombre.bak .

por lo tanto en este momento existen en el directorio los siguientes archivos:

20070723archivo1.bak

20070723archivo2.bak

20070724archivo1.bak

20070724archivo1.bak

y hoy se generarán los archivos

20070725archivo1.bak

20070725archivo1.bak

mi primera idea fue hacer un simple

find . -mtime 2 -exec rm -rf {} \;

ok desmenusando

find, comando basico y poderoso ;) de busqueda en el entorno unix

el “.” es para decirle que busque de este directorio y sus subdirectorios correspoendientes.

-mtime “fecha de modificacion”

2 (exactamente 2 dias), si usamos -2 seria que tuvieran 2 o menos dias de modificados y si usamos +2 serían los archivos que tuvieran 2 o mas dias de modificados.

-exec ejecutar un comando

rm -rf borrar el archivo . Cuando usamos la clausual -exec tenemos que poner {} \;

Bueno pues hasta ahi parecía que todo funcionaba solo que como el cron corre a la media noche la fecha (12:00) y el archivo se termina de crear a las 12:05, al ejecutar el comando no me borra los archivos del dia 23 porque a las 12:00 los archivos no han cumplido exactamente los 2 dias de modificados, explicandolo mejor

archivo                                 fecha y hora de creacion

20070723archivo1.bak           23 Julio 2007 12:05 AM

20070723archivo2.bak           23 Julio 2007 12:10 AM

20070724archivo1.bak           24Julio 2007 12:05 AM

20070724archivo1.bak           24Julio 2007 12:10 AM

asi que a las 12:00 del dia 25 los archivos del dia 23 aun no cumplen los 2 dias, entonces la línea que necesito sería:

find . -name ‘*20070723*’ -exec rm -rf {} \;

correcto? pero como hago que esto sea dinamico pues con un script asi:

#!/bin/ksh
echo “find . -name ‘*\c”  > borra.sh
date ‘+%y:%m:%d’ | awk -F”:” ‘{printf”20%2d%2d%2d\n”,$1,$2,($3-2)}’ | sed ’s/ /0/g’ | tr -d ‘\n’ >> borra.sh
echo “*’ -exec rm -rf {} \;” >> borra.sh
chmod u+x borra.sh
./borra.sh

y que hace??

la primera línea escribe en el archivo borra.sh lo siguiente “find . -name ‘*”, el \c es para que no de el salto de línea (como se puede ser este script es para el ksh, con el bash puedes poner echo -n y no tendrias que poner el \c) 

la segunda línea saca la fecha de hoy y al formatearla le resta los 2 dias ($3-2) de acuerdo a lo que necesito AAAAMMDD, el tr -d es tambien para evitar el salto de línea, y lo agrega al archivo borra.sh

la tercer línea completa el find con “*’” , el exec y el rm lo explique arriba, y tambien lo agrega al archivo borra.sh

se le dan permisos de ejecution al archivo borra.sh

y finalmente se ejecuta.

si le dieramos un more o un cat al archivo borra.sh contendría: 

find . -name ‘*20070723*’ -exec rm -rf {} \;

con esto el día de hoy se borrarían los archivos del dia 23, sin importar la hora en la que fueron creados.

No es la única forma de hacerlo es la que a mi se me ocurrió

referencias útiles:

dale un man al find jeje

y estas dos ligas

http://csdir.org/tutorials/bash-tutorial/
http://www.wagoneers.com/UNIX/FIND/find-usage.html
Cualquier comentario es bienvenido.  :)

Dec 08

Ok ahora que te has bajado tu video de youtube eres feliz?

Es acaso que no te gusta el formato .flv , porque podrias verlos con algun repoductor de videos flv’s , o convertirlo a tu formato favorito con any video converter.

Y como funciona :| ?

Sencillo abres el programa –> Seleccionas el video –> Configuras lo que necesitas (ya sea convertirlo a un avi o un mp4 para ipod ), el zoom y la carpeta/nombre de salida. –> Start Encode.

anyvidconv.PNG

listo :) comments ??

Nota: No recibo nada por esta publicidad :( jaja, las herramientas que uso son freeware.

Dec 07

la liga original de este post es

http://www.joshkinberg.com/blog/archives/2005/11/greased_google.php

Primero que nada instalate el firefox una vez instalado, procede a instalar el greasemonkey .

ok ahora el script youtube to me .

Listo! cuando veas un video de youtube te aparece una linea roja con la leyenda “save as”.

youtubetome.PNG

si te gusta o te es útil el post no olvides dejar tu comentario, si no pues tambien :D .

Dec 06

Si si esta mal que empiece con un post de herramientas para windows, pero que quieren muchos lo usamos en el trabajo, y administradores de la red son malos con nosotros y limitan lo que podemos ver/hacer en internet,
yf-85.PNG
asi que ahi va el camino a la libertad con your-freedom.

Prerequsitos:

- registrate en your-freedom .

- una vez registrado descarga el software (si ya tienes el Java 1.4 JRE te bajas este si no pues este otro.

**No explicaré lo que es un proxy, leélo por ti mismo.

Una vez hecho esto proseguimos.

Ejecutamos el yf-install_20061201-01.exe. y nos aparece

yf-1.PNG
como es usual click en siguiente

yf-2.PNG
se necesita saber si ya tienes un servidor proxy como no es el caso click en siguiente .
yf-3.PNG

Comienza a buscar una lista de posibles servidores

yf-4.PNG

seleccionamos alguno, de cualquier manera lo podemos cambiar mas adelante si no estamos conformes.

yf-5.PNG

Recuerdas que tenias que crear una cuenta? pues es aqui donde tienes que usarla.

yf-6.PNG

Felicidades ya quedo instalado :p ahora que ?

yf6-5.PNG
click en detener conexion y luego en configurar, como no estoy conforme con el servidor usare un par de screenshoots cortesia de Ricardo

freedom2.JPGfreedom1.JPG
Ok ya estuvo de configuracion de your-freedom ahora que?

Pues en tu navegador (solo daré la explicacion para firefox si es necesaria despues dare la de IE  ) ;)
Herramientas –> Opciones –>Red–>Opciones, te aparece algo como esto:

yf-95.PNG

En proxy http: va 127.0.0.1 y en el puerto 8080

Aceptar, aceptar y:

yf-10.PNG
Listo, como lo uses ya depende de ti.

Si te agrado el post no olvides dejar un comentario. Si no te agrada tambien :) .