El comando que utilizo para transferir archivos aprovechando el ssh:
rsync -avzP -e "ssh -l ssh-user" usuario@direcciondeinternet:/carpetas/archivos /carpetalocal
El origen está en rojo, el destino en azul.
Opciones:
-a Modo archivo
-v Verbose
-z Comprime
-P Partial, si se llega a cortar la conexion retoma desde donde quedo.
-e Ingresa un comando rsh (para usar rsync atraves de ssh, tanto el origen como el destino pueden ser conexiones ssh)
* Me voy a explayar un momento mas sobre la opción -e
por ejemplo, Tengo que transferir un archivo a un servidor remoto por rsync con el cual tengo hecho un tunel al puerto 22 de la direccion 190.xxx.xxx.xxx contra un puerto local 4002 y quiero pasar un archivo por rsync (supongamos que el usuario remoto se llame pepe) entonces puedo escribir el siguiente comando
rsync -avzP -e "ssh -l pepe -p 4002" /carpetalocal/archivo 127.0.0.1:/carpetasremotas
¿que tul?, AGUANTE RSYNC. !!!
Pages
jueves, mayo 21, 2009
lunes, mayo 18, 2009
No se pudo encontrar el tipo MIME application/octet-stream
La solución la encontré en la siguiente dirección:
http://inetsurvivalguide.blogspot.com/2006/09/no-se-pudo-encontrar-el-tipo-mime.html?showComment=1222705560000
Lo copio acá para no tener que buscarlo de vuelta y porque me parece un buen ejemplo del comando find.
Esto le ocurre practicamente todos los días a una persona que trabaja conmigo y usa KDE (Adrián esto es para vos, a ver si lo arreglás solito la próxima vez.), quiere asociar una tipo de archivo a una aplicacion, lo hace mal y a partir de ese momento aparece cada vez que abre el konqueror o el dolphin el siguiente error:

La solución:
http://inetsurvivalguide.blogspot.com/2006/09/no-se-pudo-encontrar-el-tipo-mime.html?showComment=1222705560000
Lo copio acá para no tener que buscarlo de vuelta y porque me parece un buen ejemplo del comando find.
Esto le ocurre practicamente todos los días a una persona que trabaja conmigo y usa KDE (Adrián esto es para vos, a ver si lo arreglás solito la próxima vez.), quiere asociar una tipo de archivo a una aplicacion, lo hace mal y a partir de ese momento aparece cada vez que abre el konqueror o el dolphin el siguiente error:
La solución:
- Abrir una ventana de terminal y buscar en el directorio home algo que se llamase parecido a octet-stream mediante el comando find:find ~/.kde/ | grep octet-stream
- Ir al directorio con el konqueror, el dolphin, el mc, o la forma que mas les guste y borrarlo.
viernes, abril 24, 2009
Error de GPG - Ubuntu.
Alguna que otra vez les debe haber pasado al agregar un repositorio que una vez hecho el apt-get update les tira un mensaje de error similar al siguiente.
W: Error de GPG: http://ppa.launchpad.net jaunty Release Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 28A8205077558DD0
Este caso en particular es despues de haber agregado los repositorios de Gnome-Do. Lo que tienen que hacer es escribir el siguiente comando:
W: Error de GPG: http://ppa.launchpad.net jaunty Release Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 28A8205077558DD0
Este caso en particular es despues de haber agregado los repositorios de Gnome-Do. Lo que tienen que hacer es escribir el siguiente comando:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 28A8205077558DD0y reemplacen el numero por el que les haya aparecido a uds.
miércoles, febrero 18, 2009
lunes, enero 12, 2009
Firebird ISQL + ftp + cron
Nada que ver con nada... o todo que ver con todo. Estuve buscando infructuosamente algún manual del ISQL ó Interactive SQL de Firebird, pero no encontré mucho.
El problema a resolver es poder generar una estadística en un archivo de texto y subirla a un servidor FTP. Se me ocurrió que a través de una tarea programada podía resolverlo. Estos son los pasos a seguir hasta el momento.:
1.- Crear un archivo con el query a ejecutar. Si el mismo es un procedimiento recordar cambiar el Terminador. Ejemplo: Archivo ARTICULOS.SQL
SET HEADING OFF; -- Esto hace que ISQL no genere una paginación cada 20 registros.
SET TERM ^;
EXECUTE BLOCK
RETURNS (
CODART INTEGER;
NOMART VARCHAR(30);
)
AS
BEGIN
FOR
SELECT CODIGO, NOMBRE
FROM ARTICULOS
INTO :CODART, :NOMART
DO
SUSPEND;
END ^
SET TERM ; ^
2.- Ahora ejecutamos ISQL llamando al archivo ARTICULOS.SQL y grabando la salida en el archivo ARTICULOS.TXT
/opt/firebird/bin/isql 'localhost:/data/base.gdb' -u SYSDBA -p masterkey -i '/home/usuario/ARTICULOS.SQL' -o '/home/usuario/ARTICULOS.TXT'
3.- Hasta acá viene todo bien, el problema es que el ISQL me genera una linea en blanco antes del primer registro dentro de los archivos exportados, para solucionarlo encontré la aplicación de consola "sed" en linux. basicamente el comando se escribe de la siguiente forma:
sed "1d" /home/usuario/ARTICULOS.TXT > /home/usuario/ARTICULOS2.TXT
Esto hace que se copie el archivo ARTICULOS.TXT en el archivo ARTICULOS2.TXT omitiendo la primer linea del archivo. Si necesitasen, por ejemplo, obviar ademas la última linea entonces podrian escribir: sed "1d;$d" [archivoentrada] > [archivosalida] el comando tiene muchisimas posibilidades como reemplazo de cadenas a través de expresiones regulares, etc. Para mas detalle pongan info sed en la consola, el manual tiene muchas secciones y está bastante completo.
3.- Listo. Esto genera los archivos. Y ahora el temita del FTP.
En windows es bastante simple, uno puede crear un archivo de texto con las acciones a realizar dentro del servidor y llamarlo desde afuera de la siguiente manera:
ftp -s:conexion.txt
archivo CONEXION.TXT
open nombreservidor.com
nombredeusuario
password
cd articulos
put /home/usuario/articulos.txt arts.txt
quit
En linux la cosa es algo mas complicada. Para replicar el comportamiento anterior bastaria con que en la linea de comandos escribiesemos:
ftp < conexion.txt
El problema es que en cuanto pasemos el comando open linux automáticamente solicita el nombre de usuario y password, acepta el usuario pero no el password que le estamos pasando en el archivo con lo cual la consola queda a la espera del ingreso del password desde el teclado. La solución es pasarle el parametro -n. Esto hace que el ftp no intente loguearse automáticamente luego del comando open. Hay que hacer una pequeña modificación en el archivo conexion.txt quedando el mismo de la siguiente manera:
archivo CONEXION.TXT
open nombreservidor.com
user nombredeusuario password
cd articulos
put /home/usuario/articulos.txt arts.txt
quit
Juntando todo lo que hicimos hasta el momento y poniendolo un poco mas prolijo el script que armé lo llamaré exportacion.sh
archivo exportacion.sh
#!/bin/sh
/opt/firebird/bin/isql 'localhost:/data/base.gdb' -u SYSDBA -p masterkey -i '/home/usuario/ARTICULOS.SQL' -o '/home/usuario/ARTICULOS.TXT'
sed "1d" /home/usuario/ARTICULOS.TXT > /home/usuario/ARTICULOS2.TXT
rm -f /home/usuario/ARTICULOS.TXT
HOST='nombredelservidor.com'
USER='usuario'
PASSWD='password'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd articulos
put /home/usuario/ARTICULOS2.TXT arts.txt
quit
END_SCRIPT
exit 0
Toda la parte del ftp la podriamos haber dejado en ftp -n < conexion.txt pero dejo tambien la forma anteriror como una alternativa válida y un poquito mas elaborada.
Una recomendación y/o recordatorio no menor, asegurense de tener permiso de escritura en todos los directorios donde estén trabajando.
Finalmente el script lo ejecutan con
sh exportacion.sh
ó le dan permiso de ejecución y ponen:
./exportación.sh
y si quieren pueden poner
sh -x exportación.sh
con lo que entran en modo debug y pueden ver la ejecución paso a paso.
Espero que sirva. Saludos.
El problema a resolver es poder generar una estadística en un archivo de texto y subirla a un servidor FTP. Se me ocurrió que a través de una tarea programada podía resolverlo. Estos son los pasos a seguir hasta el momento.:
1.- Crear un archivo con el query a ejecutar. Si el mismo es un procedimiento recordar cambiar el Terminador. Ejemplo: Archivo ARTICULOS.SQL
SET HEADING OFF; -- Esto hace que ISQL no genere una paginación cada 20 registros.
SET TERM ^;
EXECUTE BLOCK
RETURNS (
CODART INTEGER;
NOMART VARCHAR(30);
)
AS
BEGIN
FOR
SELECT CODIGO, NOMBRE
FROM ARTICULOS
INTO :CODART, :NOMART
DO
SUSPEND;
END ^
SET TERM ; ^
2.- Ahora ejecutamos ISQL llamando al archivo ARTICULOS.SQL y grabando la salida en el archivo ARTICULOS.TXT
/opt/firebird/bin/isql 'localhost:/data/base.gdb' -u SYSDBA -p masterkey -i '/home/usuario/ARTICULOS.SQL' -o '/home/usuario/ARTICULOS.TXT'
3.- Hasta acá viene todo bien, el problema es que el ISQL me genera una linea en blanco antes del primer registro dentro de los archivos exportados, para solucionarlo encontré la aplicación de consola "sed" en linux. basicamente el comando se escribe de la siguiente forma:
sed "1d" /home/usuario/ARTICULOS.TXT > /home/usuario/ARTICULOS2.TXT
Esto hace que se copie el archivo ARTICULOS.TXT en el archivo ARTICULOS2.TXT omitiendo la primer linea del archivo. Si necesitasen, por ejemplo, obviar ademas la última linea entonces podrian escribir: sed "1d;$d" [archivoentrada] > [archivosalida] el comando tiene muchisimas posibilidades como reemplazo de cadenas a través de expresiones regulares, etc. Para mas detalle pongan info sed en la consola, el manual tiene muchas secciones y está bastante completo.
3.- Listo. Esto genera los archivos. Y ahora el temita del FTP.
En windows es bastante simple, uno puede crear un archivo de texto con las acciones a realizar dentro del servidor y llamarlo desde afuera de la siguiente manera:
ftp -s:conexion.txt
archivo CONEXION.TXT
open nombreservidor.com
nombredeusuario
password
cd articulos
put /home/usuario/articulos.txt arts.txt
quit
En linux la cosa es algo mas complicada. Para replicar el comportamiento anterior bastaria con que en la linea de comandos escribiesemos:
ftp < conexion.txt
El problema es que en cuanto pasemos el comando open linux automáticamente solicita el nombre de usuario y password, acepta el usuario pero no el password que le estamos pasando en el archivo con lo cual la consola queda a la espera del ingreso del password desde el teclado. La solución es pasarle el parametro -n. Esto hace que el ftp no intente loguearse automáticamente luego del comando open. Hay que hacer una pequeña modificación en el archivo conexion.txt quedando el mismo de la siguiente manera:
archivo CONEXION.TXT
open nombreservidor.com
user nombredeusuario password
cd articulos
put /home/usuario/articulos.txt arts.txt
quit
Juntando todo lo que hicimos hasta el momento y poniendolo un poco mas prolijo el script que armé lo llamaré exportacion.sh
archivo exportacion.sh
#!/bin/sh
/opt/firebird/bin/isql 'localhost:/data/base.gdb' -u SYSDBA -p masterkey -i '/home/usuario/ARTICULOS.SQL' -o '/home/usuario/ARTICULOS.TXT'
sed "1d" /home/usuario/ARTICULOS.TXT > /home/usuario/ARTICULOS2.TXT
rm -f /home/usuario/ARTICULOS.TXT
HOST='nombredelservidor.com'
USER='usuario'
PASSWD='password'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd articulos
put /home/usuario/ARTICULOS2.TXT arts.txt
quit
END_SCRIPT
exit 0
Toda la parte del ftp la podriamos haber dejado en ftp -n < conexion.txt pero dejo tambien la forma anteriror como una alternativa válida y un poquito mas elaborada.
Una recomendación y/o recordatorio no menor, asegurense de tener permiso de escritura en todos los directorios donde estén trabajando.
Finalmente el script lo ejecutan con
sh exportacion.sh
ó le dan permiso de ejecución y ponen:
./exportación.sh
y si quieren pueden poner
sh -x exportación.sh
con lo que entran en modo debug y pueden ver la ejecución paso a paso.
Espero que sirva. Saludos.
Suscribirse a:
Comentarios (Atom)