Я хочу автоматизировать вызов ftp в сценарии оболочки. Если я наберу
$ftp somehost.domain.com
Мне предлагается ввести имя пользователя и пароль. Я хочу дать это имя пользователя и пароль как часть вызова ftp. Страница man для ftp говорит, что я могу выполнить пользовательскую команду в командной строке ftp, но я хочу войти на ftp все сразу. Это возможно? Я не вижу ничего в флагах для ftp. Я вижу, что опция -s дает мне возможность указывать некоторые команды ftp, как только у меня появляется приглашение ftp, но мне нужно дать имя пользователя, чтобы получить приглашение ...
expect
(своего рода расширение tcl / tk) - программа, которая идеально подходит для такого рода вещей, т.е. ждать некоторого приглашения; дать ответ ... ждать ответа; дать новый ответ ...expect
дождитесь "ogin:" и отправьте вам имя пользователя, затем дождитесь "assword:" и отправьте ваш пароль.Ответы:
Используйте
.netrc
файл в вашем домашнем каталоге.Содержание:
Если это то, что вы делаете программно, напишите
.netrc
перед подключением, удалите его, когда закончите.источник
ftp
других программ?netrc(5)
странице руководства написано, что это «дляftp(1)
», но я не уверен, чтоftp
это единственное, что будет его использовать.locate '.netrc'
Вы также можете написать скрипт оболочки ac, используя здесь документ, который будет выглядеть примерно так:
источник
Вы также можете рассмотреть
wput
или вwget
качестве альтернативы, в зависимости от ваших потребностей.Я не использовал в
wget
последнее время, но я использовал,wput
потому что я не хотел создавать или изменять файлы, как предложено в некоторых предыдущих ответах.Для
wput
, синтаксис:источник