Сценарий, чтобы получить файл от SFTP и выполнить его

Как пользователь энергии, я означал испытывать SoyWiki: http://danielchoi.com/software/soywiki.html

2
18.11.2012, 22:54
2 ответа

Лучший и самый легкий должен использовать scp вместо sftp.

Если scp действительно не опция, можно читать sftp команды с помощью 'здесь документ', но это очень твердо к сценарию вокруг ошибок.

sftp username@server << %EOF%
ls
bye
%EOF%

%EOF% может быть любое слово, которое Вы хотите, пока оно запускается и заканчивается a % и последнее %EOF% должен быть в начале строки.

Для входа в систему без пароля читайте на 'ssh ключевая аутентификация'.

Используя sftp из ssh сессия походит на излишество, походит на выполнение двойных вещей. Почему бы не инициировать копию с локальной машины?

4
27.01.2020, 22:01

Вы можете использовать lftp для аутентификации по паролю из сценария. Аутентификация без пароля иногда может быть очень опасной. Поскольку я вижу, что вы вызываете этот сценарий для нескольких серверов, вам придется вручную вводить пароли каждый раз, когда вы используете sftp .

Вместо этого вы можете использовать lftp , чтобы поместить свой пароль в сценарий и запустить его как задание cron. Хотя вам понадобятся разные файлы для каждого сервера. Тем не менее, все они могут быть запущены через задание cron для запуска * .sh внутри каталога, содержащего каждую копию скрипта.

Действия, которые необходимо выполнить для аутентификации пароля из сценария:

  1. сначала установите lftp, используя yum install lftp или sudo apt-get install lftp , в зависимости от варианта Linux.

  2. напишите сценарий, как показано ниже:

     #! / 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 .

0
27.01.2020, 22:01

Теги

Похожие вопросы