Chciałbym wykonać kopię zapasową niektórych moich bardzo ważnych danych na zdalnym komputerze.
Obecnie po prostu zapisuję go na moim komputerze lokalnym za pomocą tego polecenia:tar -cvjf ~/backups/Backup.tar.bz2 ~/importantfiles/*
Wolałbym nie używać innego polecenia do przeniesienia go na komputer zdalny, co oznacza, że chciałbym po prostu zaktualizować to polecenie, aby mogło przesyłać dane do komputera zdalnego.
Zostało to zaprojektowane w późniejszym skrypcie, który powinien działać samodzielnie, co oznacza, że jakikolwiek typ danych wejściowych użytkownika całkowicie go zepsułby!
Coś jak
tar -cvjf sftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/*
tar -cvjf ftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/*
Byłoby idealnie! (Bez rur (itp.), Tylko jedno polecenie!)
ssh
dostępu do tego komputera?Odpowiedzi:
W przypadku SSH:
W przypadku SFTP:
Kolejny SFTP:
źródło
Tar nie mówi ftp ani sftp. To nie jest jego praca. Nie możesz tego zrobić z samą smołą. Używanie odpowiednich narzędzi do każdego zadania i łączenie ich z powłoką to normalny sposób wykonywania zadań w systemach uniksowych.
Najbardziej oczywistym rozwiązaniem jest utworzenie archiwum lokalnie, a następnie skopiowanie go na komputer zdalny.
Jeśli nie chcesz tworzyć archiwum lokalnie, ponieważ nie masz wystarczającej ilości miejsca, możesz utworzyć nazwaną potok, zmusić tar do zapisu do tej potoki i znaleźć klienta ftp, który może czytać z potoków. Niestety, sftp odmawia
put
instalacji. Niektóre klienty FTP działają, na przykład lftp:Wprowadź swoje hasło FTP
~/.netrc
.Alternatywnie istnieje sposób, aby polecenie tar zapisało się bezpośrednio na zdalnym serwerze, ale potrzebujesz wcześniejszej konfiguracji. Zamontuj zdalny serwer na SSHFS lub curlftpfs .
źródło