Na komputerze AI ma folder
/home/a/
Na komputerze BI mam folder
/home/b/
Chciałbym przenieść wszystkie pliki, katalogi i podkatalogi / home / a w / home / b za pomocą sftp Na komputerze AI wypróbowałem polecenia:
sftp [email protected]
put /home/a/* /home/b/
ale to nie działa, pojawia się komunikat o błędzie: „pomijanie nieregularnego pliku / home / a / a1” ... [a1 jest podkatalogiem]
Jak mogę zmodyfikować instrukcję put?
Dzięki! :)
EDYTOWAĆ:
Rozwiązałem za pomocą SCP:
scp -r /home/a/ [email protected]:/home/b/
put -r
też by działał.sftp
, zapoznaj się z projektem OpenSSH .Odpowiedzi:
Chociaż rsync nie jest ściśle równoważne z sftp, jest bardzo potężną alternatywą dla scp i sftp, szczególnie podczas aktualizacji kopii z komputera A na komputer B, ponieważ nie kopiuje plików, które nie zostały zmienione; jest również w stanie usunąć pliki z komputera B, które zostały usunięte z komputera A (tylko wtedy, gdy zostanie o to poproszony).
W twoim przypadku składnia byłaby następująca
-r
Opcja jest dla plików rekursywnie kopiowanie,-z
umożliwia kompresję podczas przenoszenia i-p
zachowuje uprawnienia do plików (tworzenie Plik, Edycja, etc.) podczas kopiowania, czyli coś, co scp nie robi AFAIK. Możliwych jest wiele innych opcji; jak zwykle czytajman
strony.źródło
rsync
nie mówi -sftp
Protokół. Więc jeśli założyćsftp
-chroot używającssh
„s Wbudowanyinternal-sftp
następniersync
kończy się niepowodzeniem.W
sftp
tym poleceniu rekurencyjnie ładuje zawartość bieżącego katalogu do zdalnego bieżącego katalogu:Zobaczyć
man sftp
.źródło
-r
Przełącznik jest obsługiwany od OpenSSH 5.4 tylko.-r
przełącznik jest tylko po stronie klienta (częśćsftp
polecenia). Tak więc strona serwera (tutaj: odbieranie) nie potrzebuje OpenSSH 5.4, tylko klient musi go obsługiwać.scp
(bezpieczna kopia) to de facto Linux do przesyłania plików przez bezpieczny tunel. W twoim przypadku chciałbyś użyć przełącznika rekurencyjnego, np .:źródło
Spróbuj użyć
Aby uzyskać więcej informacji sprawdź: to
źródło
-r
Przełącznik jest obsługiwany od OpenSSH 5.4 tylko.-r
przełącznik jest tylko po stronie klienta (częśćsftp
polecenia). Tak więc strona serwera (tutaj: odbieranie) nie potrzebuje OpenSSH 5.4, tylko klient musi go obsługiwać. I: To powinna być zaakceptowana odpowiedź , ponieważ uzyskanie (prawdopodobnie nieobsługiwanego)rsync
jako odpowiedzi na pytanie oznaczonesftp
jest nieco mylące.Właściwie put -r powinien działać. Ale folder docelowy musi znajdować się na zdalnym hoście:
źródło
W moim przypadku
rsync
nie było to możliwe, więc użyłem:źródło
mput
OpenSSH nie ma poleceniasftp
. Może masz na myślipsftp
?