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 -rflagi (rekurencyjnej):
get -r *
get: Invalid flag -r
-rflaga 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 scpmogą.
Użyj lftp:
lftp sftp://user@host
Następnie w lftp przejdź cddo katalogu, który chcesz skopiować, i użyj mirrorpolecenia, 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=8z--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/sshbyłem przy zwykłym interfejsie wiersza poleceń (transfer plików około 100 MB / s). Problemem był Nautilus na GNU / Linux Mint.
Spróbuj mgetzamiast 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 roznacza rekurencję. Znalazłem to, pisząc helpz 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