Ответ 1
Вы сказали, что вас не интересуют другие инструменты, но scp
- гораздо лучший выбор для автоматической передачи файлов. Вот пример scp:
scp test.txt [email protected]:/root/dropoff
Я использую проверку ключа, поэтому пароль не является проблемой. У меня есть файл, имя которого я знаю, и я просто хочу отправить его на другую машину через sftp.
Я пробовал искать, но не мог найти этот (казалось бы, простой) вопрос где угодно. Возможно, мой Google-фу просто не справляется со мной сегодня.
Короче: я нахожусь на своей локальной машине, хочу отправить файл (test.txt) на удаленную машину. Авторизованные ключи уже предоставлены. В основном я хочу автоматизировать эти три этапа:
sftp [email protected]:/root/dropoff
put test.txt
quit
Есть ли простая команда bash, которую я могу использовать для автоматизации этого? Единственный вариант, который я видел, это использование сценария bash для выполнения put/quit и использование опции -b для его запуска. Есть ли что-то более чистое? (Я не заинтересован в использовании других приложений/инструментов.)
Благодарю!
Вы сказали, что вас не интересуют другие инструменты, но scp
- гораздо лучший выбор для автоматической передачи файлов. Вот пример scp:
scp test.txt [email protected]:/root/dropoff
Я знаю, что это старый, но вы также можете передать аргументы команде с документом Here
# The following is called a HERE document
sftp <user>@<remote> << SOMEDELIMITER
put test.txt
... # any commands you need to execute via sftp
quit
SOMEDELIMITER
каждая дополнительная команда будет передаваться в команду, SOMEDELIMTER
<<
и SOMEDELIMTER
может быть все, что вы хотите.
scp - отличный вариант, однако sftp был единственным инструментом, который я смог получить при нажатии из linux в windows, и вы застряли с помощью FreeSSHD в сервисном режиме!