Я приехал сюда для "Файлов передачи с помощью scp: разрешение отклонило", потому что у меня была та же ошибка.
В моем случае файл, загруженный scp, перезаписал бы файл, принадлежавший корню, и я не был корнем. Короче говоря, проверьте владение перезаписываемого файла.
Я получил его с помощью следующего:
ftp -inv <<EOF
open app.server.address
user username password
cd some/location
get filename
bye
EOF
ftp
-i
опция выключает интерактивный запрос и -n
отключает автовход в систему наряду с подсказками имени пользователя и пароля.
Несколько клиентов FTP позволяют Вам указывать имя пользователя пароль на командной строке, два, что я знаю о, ncftp
и lftp
. Можно затем использовать единственную команду, неинтерактивную, для получения файла в сценарии.
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
.
<<
интерпретировался как вводный тег HTML, заставляя основную часть Вашего сообщения быть скрытым. Я думаю, что это - то, что заставило Anthon полагать, что Ваше сообщение было просто "спасибо". Зафиксированный это для Вас, но в будущем можно избежать его путем расположения с отступом блоков кода четырьмя пробелами. – Thomas Nyman 20.09.2013, 20:43