Я хотел бы сделать резервную копию некоторых из моих очень важных данных на удаленной машине.
В настоящее время я просто сохраняю его на свой локальный компьютер с помощью этой команды:tar -cvjf ~/backups/Backup.tar.bz2 ~/importantfiles/*
Я бы предпочел не использовать другую команду для передачи ее на удаленный компьютер, а это значит, что я хотел бы просто обновить эту команду, чтобы она могла передавать данные на удаленный компьютер.
Это разработано, чтобы быть в сценарии позже, который должен запускаться самостоятельно, означая, что любой тип требуемого пользовательского ввода полностью испортит его!
Что-то вроде
tar -cvjf sftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/*
tar -cvjf ftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/*
было бы идеально! (Нет труб (и т.д.), только одна команда!)
ssh
доступа к этой машине?Ответы:
Для SSH:
Для SFTP:
Еще один SFTP:
источник
Tar не говорит по ftp или sftp. Это не его работа. Вы не можете сделать это только с помощью tar. Использование соответствующих инструментов для каждой работы и объединение их с оболочкой - это нормальный способ работы в системах Unix.
Наиболее очевидное решение - создать архив локально, а затем скопировать его на удаленный компьютер.
Если вы не хотите создавать архив локально, потому что у вас недостаточно места, вы можете создать именованный канал, сделать запись tar в этот канал и найти ftp-клиент (ы), который может читать из каналов. К сожалению, sftp отказывается от
put
трубы. Некоторые FTP-клиенты работают, например, lftp:Введите свой пароль FTP
~/.netrc
.В качестве альтернативы, есть способ сохранить команду tar непосредственно на удаленном сервере, но вам нужна предварительная настройка. Установите удаленный сервер через SSHFS или curlftpfs .
источник