Właśnie uczę się korzystać z sftp i chcę skopiować katalog z komputera zdalnego na komputer lokalny. Jeśli spróbuję
get [directory]
daje mi ten błąd:
Cannot download non-regular file: /home/mpirocch/Documents
get -R
też nie działa.
Właśnie uczę się korzystać z sftp i chcę skopiować katalog z komputera zdalnego na komputer lokalny. Jeśli spróbuję
get [directory]
daje mi ten błąd:
Cannot download non-regular file: /home/mpirocch/Documents
get -R
też nie działa.
Odpowiedzi:
Użyj -r
flagi (rekurencyjnej):
get -r *
get: Invalid flag -r
-r
flaga nie istniała. Czy twój system jest aktualny?
Posługiwać się:
scp -r mpirocch@my-server:/home/mpirocch/Documents Documents
scp -r
. Lub możesz użyć zaawansowanego klienta SFTP, takiego jak Filezilla.
sftp
, ale nie scp
mogą.
Użyj lftp
:
lftp sftp://user@host
Następnie w lftp przejdź cd
do katalogu, który chcesz skopiować, i użyj mirror
polecenia, aby rekurencyjnie pobrać wybrany katalog, w następujący sposób:
mirror
To polecenie akceptuje opcje i argumenty:
mirror [ OPCJE ] [ źródło [ cel ]]
Na przykład opcja -R
(lub --reverse
) spowoduje przesłanie lokalnego drzewa katalogów do katalogu zdalnego:
mirror -R
Zobacz lftp(1)
stronę podręcznika na stronie projektu
lub na Debian.org, gdzie znajdziesz inne polecenia i opcje.
cóż, ten mały przewodnik powinien pomóc zdublować serwer zdalny do lokalnego folderu za pomocą lftp
lftp sftp://user:password@server.org:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'
sftp://
= używa protokołu SFTPmirror
= tryb lustrzanyverbose
= pokazuje pobierane plikiuse-pget-n
= liczba segmentów, naprawdę przydatna do przyspieszenia dużych plikówparallel
= pobiera pliki mnożnika w tym samym czasiejeśli chcesz pobierać pliki równolegle, wyłącz use-pget-n=8
z--parallel=8
Mam nadzieję, że pomoże to każdemu, kto chce wykonać kopię lustrzaną folderu zdalnego do folderu lokalnego
lftp 'sftp://user:pa$$word@server.org:22' -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'
Nie używaj bezpośrednio programu sftp, jeśli możesz znaleźć coś lepszego. W Linuksie wiele menedżerów plików (przynajmniej Nautilus i Dolphin, GNOME i KDE) obsługuje natywnie sftp i zawsze jest sshfs. W systemie Windows jest WinSCP i prawdopodobnie inne . Chodzi o to, aby umożliwić ci dostęp do plików przez sftp, tak jakby były one na zwykłym systemie plików, więc nie musisz się martwić, że masz do nich dostęp przez sftp.
sftp/ssh
byłem przy zwykłym interfejsie wiersza poleceń (transfer plików około 100 MB / s). Problemem był Nautilus na GNU / Linux Mint.
Spróbuj mget
zamiast get
.
Wyjaśnienie: mget
będzie działać, jeśli znajdziesz się w katalogu, który chcesz skopiować; jeśli zrobisz coś takiego:
sftp> cd dir_to_get
sftp> mget *
pobierze wszystkie pliki z tego katalogu. Jednak będzie to nie rekurencyjnie uzyskać zawartość wszelkich podkatalogów.
get -r [directory]
dostaje [directory]
i wszystko pod nim, gdzie r
oznacza rekurencję. Znalazłem to, pisząc help
z sftp
.
Podobnie jak w przypadku cp
:
scp -rp user@host:/path/to/dir dir
Powyższe pozwoli zachować czasy i tryby oryginalnych plików i podkatalogów. Jest to szczególnie przydatne w przypadku pobierania kopii zapasowych.
Mam folder Java dist na serwerze zdalnym, na którym mam następujące drzewo:
- dist
--- Audio.jar
--- README
--- lib
----- lib.jar
Cel: chcę używać SFTP? I umieść je w / tmp / <>
Krok 1. sftp remoteuser @ ip
Krok 2. cd / var / tmp
Krok 2. lmkdir / tmp / dist; lmkdir / tmp / dist / lib
Krok 3. lcd / tmp / dist
Krok 4. mget *
Krok 5. lcd / tmp / dist / lib
Krok 6. mget *
Krok 7. Wreszcie mam swój cel
$ ls
Audio.jar lib README.TXT