🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
4 messages
4 total messages Started by Shake Thu, 02 Oct 2008 12:33
BASH Script para backup via FTP
#322
Author: Shake
Date: Thu, 02 Oct 2008 12:33
62 lines
2484 bytes
Saludos,

El proveedor de servicios donde tengo alojado un Servidor con Debian 
ofrece un servicio de FTP par backups.

Para usarlo, estoy usando los scripts que ofrece, pero quiero hacer una 
modificacion que, aunque deberia de ser algo sencillo no consigo.

La idea es la siguiente:

Si bien para facilitar las cosas el proveedor te sugiere que uses tar 
para enviar solo tgz, yo ademas quiero poder crear directorios cuando 
sea necesario. El proveedor ofrece en sus ejemplos unos scripts que te 
meten siempre los archivos en la raiz de tu espacio ftp.

No he encontrado comandos FTP que me puedan ayudar a:

 - Saber si ya existe un directorio
 - Crear una "cadena de directorios" al estilo 'mkdir -p /a/b/c'

Asi que mi intencion es conseguir un script tal que

/subir-ftp.sh /a/b/c archivo

 1 se conecte al ftp (solucionado)
 2 genere /a/b/c si no existen
 3 Suba el archivo (solucionado)

Mi idea original era hacer el punto 2 desde el lado FTP pero no veo el 
modo y empiezo a pensar que seria mejor hacerlo desde mi lado.

coger el directorio, descomponerlo, y ejecutar el mkdir en FTP

Algo asi como: para /a/b/c

que mande los comando ftp

mkdir /a
mkdir /a/b
mkdir /a/b/c
cd /a/b/c
put archivo
cd /


esto daria por un lado errores aunque supongo que, pasable a pesar de 
no elegante, cuando algun directorio ya existiera.

Y por otro lado, hay algun comando o funcion en bash que me sea util 
para eso? he estado dandole alguna vueltas a usar sed para 
"descomponer" el directorio, pero aqui algo recursivo me iria bien.

Hay alguna funcion parecida al split() de Perl?

O si hay algun modo desde el FTP y no pre-tratando los datos...

Muchas gracias ;)



-- 
Shake (Alex Estevez)
Re: BASH Script para backup via FTP
#323
Author: Cayetano Lupenna [NR]
Date: Thu, 02 Oct 2008 13:56
29 lines
1490 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hola Shake

Escribes:

> El proveedor de servicios donde tengo alojado un Servidor con Debian
> ofrece un servicio de FTP par backups.
>

Siento no poder ayudarte en la pregunta concreta que planteas.

Sin embargo tambien realizo backups via FTP (para ciertos servidores no
tengo otro modo). Utilizo "mirrordir" puedes echarle un vistazo y tal
vez resuelva el problema que planteas.

Un saludo
- --
Cayetano Lupe�a
http://www.cayetano.org/eha/
http://eha.boj.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFI5NMVPAlzKiFYmEkRArZuAJ4yvVjyqVV2JoO6wQidYlcYX3syqgCfZhHo
FzvYRl3UGkOiuDSjYXtb2bw=
=EpsN
-----END PGP SIGNATURE-----
Re: BASH Script para backup via FTP
#324
Author: Gonzalo Pérez de Olaguer Córdoba
Date: Thu, 02 Oct 2008 14:45
56 lines
2150 bytes
Hola Shake <alex.estevezNOSPAM@filnet.es>
el Thu, 02 Oct 2008 14:33:25 +0200 escribiste:

> Algo asi como: para /a/b/c
> 
> que mande los comando ftp
> 
> mkdir /a
> mkdir /a/b
> mkdir /a/b/c
> cd /a/b/c
> put archivo
> cd /
> 
> [...]
> 
> Hay alguna funcion parecida al split() de Perl?

Puedes usar cut:

echo "/a/b/c" | cut -d/ -f2	# returns a
echo "/a/b/c" | cut -d/ -f3	# returns b
echo "/a/b/c" | cut -d/ -f4	# returns c

O directamente en bash:

cd /
DIR="/a/b/c"
while [ -n "$DIR" ] ; do
	FIRST=${DIR#/}
	FIRST=${FIRST%%/*}
	mkdir $FIRST
	cd $FIRST
	DIR=${DIR#/$FIRST}
done

Eso generaría:

cd /
mkdir a
cd a
mkdir b
cd b
mkdir c
cd c

> O si hay algun modo desde el FTP y no pre-tratando los datos...

Ya te han comentado lo de mirrordir.

El programa rsync también te permite usarlo vía FTP, creo, con
la opción --rsh.

-- 
Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C  1302 214F 1934 2861 C704
Re: BASH Script para backup via FTP
#325
Author: Shake
Date: Fri, 03 Oct 2008 09:26
19 lines
1270 bytes
cat "Mensaje de Gonzalo P�rez de Olaguer C�rdoba" | sed s/^/^>\s/
>
> Ya te han comentado lo de mirrordir.
>


Gracias a los dos, pues mirrordir ha sido la solucion, me ahorra hacer 
cosas "raras" y al ser mas sencillo, luego dara menos problema 
(espero).

Ya lo tengo funcionando, la unica pega, es que no me borra los 
directorios del ftp cuando se quedan vacios, sino que da error. Supongo 
que usara delete en lugar rmdir o algo asi, pero no es nada que me 
preocupe.

Saludos y gracias de nuevo.

-- 
Shake (Alex Estevez)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads