Как пользователь энергии, я означал испытывать SoyWiki: http://danielchoi.com/software/soywiki.html
Лучший и самый легкий должен использовать scp
вместо sftp
.
Если scp
действительно не опция, можно читать sftp
команды с помощью 'здесь документ', но это очень твердо к сценарию вокруг ошибок.
sftp username@server << %EOF%
ls
bye
%EOF%
%EOF%
может быть любое слово, которое Вы хотите, пока оно запускается и заканчивается a %
и последнее %EOF%
должен быть в начале строки.
Для входа в систему без пароля читайте на 'ssh ключевая аутентификация'.
Используя sftp
из ssh
сессия походит на излишество, походит на выполнение двойных вещей. Почему бы не инициировать копию с локальной машины?
Вы можете использовать lftp
для аутентификации по паролю из сценария. Аутентификация без пароля иногда может быть очень опасной. Поскольку я вижу, что вы вызываете этот сценарий для нескольких серверов, вам придется вручную вводить пароли каждый раз, когда вы используете sftp
.
Вместо этого вы можете использовать lftp
, чтобы поместить свой пароль в сценарий и запустить его как задание cron. Хотя вам понадобятся разные файлы для каждого сервера. Тем не менее, все они могут быть запущены через задание cron для запуска * .sh
внутри каталога, содержащего каждую копию скрипта.
Действия, которые необходимо выполнить для аутентификации пароля из сценария:
сначала установите lftp, используя yum install lftp
или sudo apt-get install lftp
, в зависимости от варианта Linux.
напишите сценарий, как показано ниже:
#! / Bin / sh
HOST = 'ec2 #####. Us-west-2.compute.amazonaws.com'
USER = 'ubuntu'
PASSWD = 'ubuntuuser'
cd directory / where / you / want / to / put / или / get / a / file
lftp << END_OF_SCRIPT
открыть sftp: // $ HOST
user $ USER $ PASSWD {{1} } cd / home /where_you_want_the_file_from /
mput * .txt
END_OF_SCRIPT
Обратите внимание, пожалуйста, измените имя хоста , имя пользователя и пароль по данным вашего сервера. Также этот сценарий использует 'mput' для получения нескольких файлов из удаленного местоположения в локальный / home /where_you_want_the_file_from /
. Если нужен один файл, можно использовать «положить».Любые команды sftp могут использоваться внутри END_OF_SCRIPT
.