PDA

Visualizza la versione completa : trasferire cartelle e sottocartelle via ftp


yusizu
18-04-2007, 14:47
come da oggetto al momento utilizzo uno script per shell per spedire via ftp 1 file.tar,
dal momento che questo presenta dei problemi inspiegabili nella compressione(perdo dei file) vi chiedo come faccio a trsferire TUTTO il contenuto di una cartella da locale in remoto via ftp?

lo script per ora questo:


#SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/


logfile="/var/log/backup.log"
backupdir="/var/www/html/backup"
folder="prova"
HOST="192.168.0.1"
USER="user"
PASSWD="ppassword"
FILE="prova.tar"
prevlog=$(less $logfile)

cd /var/www/html/backup
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put $FILE
quit
END_SCRIPT

exit 0


mettiamo il caso che la cartella da trsferire si chiami "prova" ed nella posizione sopra specificata
ed ovviamnete pu presentare delle sottocartelle che andranno trasferite come da originale

grazie aspetto un vostro aiuto
:cry:

vampirodolce
18-04-2007, 16:31
Forse tramite script si puo' fare, ma prendendo il protocollo puro FTP, non e' una cosa possibile, in quanto anche il comando mget trasferisce tutto il contenuto di una directory, ma non eventuali sottodirectory.

yusizu
18-04-2007, 19:05
scusa ma che intendi per "forse tramite script si"?

mi sembra aquanto strano che nn esista un modo per uppare e fore un download di una directory che magari presenti delle sotto directory...altrimenti nn si spiegherebbe come possa farlo tranquillamente un comunissimo software ftp...qualunque sia il linguaggio di programmazione con cui stato compilato implica di per s che possibile farlo... :confused:


cmq grazie

vampirodolce
19-04-2007, 09:48
Vuol dire che se fai un programma che implementa tale funzione, o comunque se ne trovi uno su internet che permette la copia ricorsiva, allora ok (ad esempio col browser basta trascinare una cartella da una parte all'altra e viene trasferita tutta la gerarchia di sottodirectory).
Se invece cerchi solo fra i comandi standard del protocollo FTP, allora la copia ricorsiva non e' contemplata.

ciao

yusizu
19-04-2007, 12:08
Ma non posso crearmi uno scriptino in bash che utlizzi questa "copia ricorsiva"?

....se non erro esiste un comando che sfrutta il protocollo ftp per recuperare la lista delle directory e dei file contenuti in locale o in remoto....pensavo di partire da questo per poi fargli fare l'upload / download.

avete qualche suggerimento..che non sia utilizza un programma ftp?...no x qualcosa ma dovei scheudulare il tutto per cui ho bisogno al max di uno scriptino in bash.


grazie ancora

patrik08
19-04-2007, 12:14
Di regola se esiste un account FTP esiste anche un account ssh!
o almeno SFTP che 100 volte + sicuro.... poi sicronizzi cartelle con

sulla macchina che prende i file...

rsync -avz --bwlimit=40 -e ssh username@dominio.com:/cartellax/ /cartellalocale/

http://samba.anu.edu.au/rsync/ di solito sempre installato dove esiste un amministratore di rete con capacita minime....

yusizu
19-04-2007, 12:21
potresti spiegati meglio, non ho capito bene quanto mi hai postato, ho solo capito che sarebbe pi opportuno utilizzare l'sftp per ragioni di sicurezza ma come faccio a prendere il contenuto di una cartella in /var/www/html/ ed inviarlo ad un ftp tipo 192.168.0.1?

grazie mille

patrik08
19-04-2007, 12:46
Originariamente inviato da yusizu
potresti spiegati meglio, non ho capito bene quanto mi hai postato, ho solo capito che sarebbe pi opportuno utilizzare l'sftp per ragioni di sicurezza ma come faccio a prendere il contenuto di una cartella in /var/www/html/ ed inviarlo ad un ftp tipo 192.168.0.1?

grazie mille

non devi "prendere la cartella" devi solo sincronizzare cartelle ... a con b o vice..

Nel protocollo FTP tutte le password passano in chiaro e sono leggibili sui nodi gateway router ecc.... SFTP tutto criptato .... http://en.wikipedia.org/wiki/SSH_file_transfer_protocol

Se esiste un linux senza ssh .... non un linux.... con il comando di sincronizzazione descritto sopra puoi copiare anche da pc a a pc b ....

Solo con FTP fai tutto a mano..... oppure monti la cartella remota sul tuo linux.. in ftp o webdav...

come http://www.loyola.edu/5555/netdrive/installingnetdrive/ monta remoto su window....


Per vedere se esiste ssh ti collegi in remoto: nel terminale

ssh root@ipmacchina [enter]

se risponde esiste ssh che uguale a SFTP leggi http://it.wikipedia.org/wiki/Secure_shell

sacarde
19-04-2007, 13:29
potresti provare un client ftp testuale, magari esistono comandi per fare subito quello che dici

Client FTP in modalit console
4.1 NcFTP
4.2 lukemftp
4.3 lftp
4.4 cftp
4.5 yafc

yusizu
19-04-2007, 17:48
Originariamente inviato da patrik08
Di regola se esiste un account FTP esiste anche un account ssh!
o almeno SFTP che 100 volte + sicuro.... poi sicronizzi cartelle con

sulla macchina che prende i file...

rsync -avz --bwlimit=40 -e ssh username@dominio.com:/cartellax/ /cartellalocale/

http://samba.anu.edu.au/rsync/ di solito sempre installato dove esiste un amministratore di rete con capacita minime....


devo dire che un ottio sistema...ma se dovessi fare il contrario?

ovvero inviare dei file da locale in remoto?

altre 2 cose:
1) non c' un modo per inserire anche la password senza doverla digitare successivamente, sai vorrei inserire questo scriptino in crontab per farli fare la sincronizzazione ogni tot

2) sai se aruba permette di accedere in tal modo?? ...sai gli account di aruba sono del tipo 1323445@aruba.it, per cui avrei qualche problemino con quanto mi hai postato...


grazie mille

Loading