Потребность создать ksh сценарий для передачи файлов между сервером приложений и сервером дб

Я приехал сюда для "Файлов передачи с помощью scp: разрешение отклонило", потому что у меня была та же ошибка.

В моем случае файл, загруженный scp, перезаписал бы файл, принадлежавший корню, и я не был корнем. Короче говоря, проверьте владение перезаписываемого файла.

0
17.11.2018, 22:11
3 ответа

Я получил его с помощью следующего:

ftp -inv <<EOF
open app.server.address
user username password
cd some/location
get filename
bye
EOF

ftp -i опция выключает интерактивный запрос и -n отключает автовход в систему наряду с подсказками имени пользователя и пароля.

0
28.01.2020, 02:53
  • 1
    @sam << интерпретировался как вводный тег HTML, заставляя основную часть Вашего сообщения быть скрытым. Я думаю, что это - то, что заставило Anthon полагать, что Ваше сообщение было просто "спасибо". Зафиксированный это для Вас, но в будущем можно избежать его путем расположения с отступом блоков кода четырьмя пробелами. –  Thomas Nyman 20.09.2013, 20:43

Несколько клиентов FTP позволяют Вам указывать имя пользователя пароль на командной строке, два, что я знаю о, ncftp и lftp. Можно затем использовать единственную команду, неинтерактивную, для получения файла в сценарии.

1
28.01.2020, 02:53
  • 1
    Спасибо Джон для Вас ответ, я действительно ценю в течение Вашего времени..... Я пытался использовать это в сценарии, но он просит, чтобы я ввел имя пользователя и пароль...., как может я автоматизировать и может выполнить сценарий без PROMT имени пользователя и пароля –  sam 20.09.2013, 16:55
  • 2
    Не используйте типичный клиент ftp. Как я сказал, использовать lftp или ncftp или другой клиент, который позволяет Вам передать имя пользователя и пароль на командной строке. Когда Вы делаете так, Вы не становитесь предложенными. –  John 20.09.2013, 17:27

Если Вы не хотите хранить имя пользователя и пароль в самом сценарии, можно создать запись для целевого узла в ~/.netrc со следующей формой:

machine <address>
login <username>
password <password>

где Вы заменяете <address>, <login> и <password> с адресом узла, именем пользователя и паролем соответственно. Необходимо также удостовериться это ~/.netrc имеет верные полномочия (т.е. только читаемо и перезаписываем владельцем). Этот подход имеет преимущество, что учетные данные хранятся в единственном месте, к которому можно получить доступ из нескольких сценариев. Также легче удостовериться ~/.netrc имеет верные полномочия, чем управлять полномочиями для всех сценариев, которые, возможно, должны были бы использовать учетные данные.

Затем можно продолжить к любому передавать команды ftp через здесь документ или использование lftp с -c опция передать команды как параметры командной строки. Обратите внимание, что, если Вы идете для первого, Вы не должны указывать -n опция к ftp поскольку это отключит автовход в систему с помощью учетных данных, сохраненных в ~/.netrc.

0
28.01.2020, 02:53

Теги

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