Sto solo imparando a usare sftp, e voglio copiare una directory dal computer remoto al mio computer locale. Se ci provo
get [directory]
mi dà questo errore:
Cannot download non-regular file: /home/mpirocch/Documents
get -R
non funziona, neanche.
Usa il flag -r
(ricorsiva):
get -r *
Uso:
scp -r [email protected]:/home/mpirocch/Documents Documents
Usa lftp
:
lftp sftp://[email protected]
Quindi, all'interno di lftp, cd
nella directory che si desidera copiare e utilizzare il comando mirror
per scaricare in modo ricorsivo la directory selezionata, in questo modo:
mirror
Questo comando accetta opzioni e argomenti:
specchio [OPZIONI] [fonte [bersaglio]]
Ad esempio, l'opzione -R
(o --reverse
) causerà il caricamento dell'albero delle directory locali nella directory remota:
mirror -R
Vedi la pagina man di lftp(1)
nel sito del progetto o su Debian.org per altri comandi e opzioni.
Non usare direttamente il programma sftp se riesci a trovare qualcosa di meglio. Per Linux, molti gestori di file (almeno Nautilus e Dolphin, quelli GNOME e KDE) supportano sftp in modo nativo, e c'è sempre sshfs. Per Windows, c'è WinSCP e probabilmente others . Il punto di tutti questi è quello di consentire l'accesso ai file su sftp come se fossero su un file system normale, quindi non devi preoccuparti che tu stia accedendoli su sftp.
bene questa piccola guida dovrebbe aiutare, rispecchiare un server remoto nella cartella locale con lftp
lftp sftp://user:[email protected]:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'
sftp://
= utilizza il protocollo SFTPmirror
= modalità mirrorverbose
= mostra i file che vengono scaricatiuse-pget-n
= numero di segmenti, davvero utile per velocizzare i file di grandi dimensioniparallel
= scarica i file moltiplicatori allo stesso tempose vuoi scaricare file in parallelo, disattiva use-pget-n=8
con --parallel=8
spero che questo aiuti chiunque abbia bisogno di eseguire il mirroring di una cartella remota in una cartella locale
Prova mget
invece di get
.
Chiarimento: mget
will work se sei all'interno della directory che vuoi copiare; se fai qualcosa del genere:
sftp> cd dir_to_get
sftp> mget *
otterrà tutti i file in quella directory. Tuttavia, esso not ricorsivamente ottiene il contenuto di qualsiasi sottodirectory.
get -r [directory]
ottiene [directory]
e tutto sotto, dove r
sta per ricorsivo. Ho trovato questo solo digitando help
da sftp
.
Come con cp
:
scp -rp [email protected]:/path/to/dir dir
Quanto sopra conserverà i tempi e le modalità dei file originali e delle sottodirectory. Questo è particolarmente utile per il recupero dei backup.
Dispongo di una cartella dist in Java nel server remoto, dove ho l'albero seguente:
- dist
--- Audio.jar
--- README
--- lib
----- lib.jar
L'obiettivo è: voglio usare SFTP? E metterli in/tmp/<>
Passaggio 1. sftp remoteuser @ ip
Passaggio 2. cd/var/tmp
Passaggio 2. lmkdir/tmp/dist; lmkdir/tmp/dist/lib
Passaggio 3. lcd/tmp/dist
Passaggio 4. mget *
Passaggio 5. lcd/tmp/dist/lib
Passaggio 6. mget *
Passo 7. finalmente ho il mio obiettivo
$ ls
Audio.jar lib README.TXT