LINUX.ORG.RU
решено ФорумAdmin

ftp bash put

 


0

1

Пишу скрипт для автоматизации передачи документов на ftp

ftp работает в пассивном режиме.

HOST=..
USER=..
PASS=..
PORT=..
 
ftp -p -n $HOST $PORT <<EOF
user $USER $PASS
cd /folder/folder
put file.test
bye
EOF

Если подключаться вручную ftp -p IP PORT и т.д., то проблем и ошибок нет, файл загружается успешно.

А через bash выдаёт ошибки

Если оставить только параметр -p, то при выполнении скрипта начинает запрашивать password:Name

Если -n или -n -p то выдаёт

Please login with USER and PASS
address alredy in use (-n)/Passive mod refused (-n -p)

Так же пробовал с параметром -inv, так же address alredy in use

Так же пробовал править в коде:

quote USER $USER
quote PASS $PASS

те же ошибки

Please login with USER and PASS



Последнее исправление: beastie (всего исправлений: 1)

В документации про ваш ftp для ключа -n что написано? Что читает .netrc для user/pass? Тогда надо и создать строку в .netrc по man netrc для этого хоста.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
/bin/ftp -i -n << EOF
open $DESTHOST
user $FTPUSER $FTPPASSWD
cd some_dir
put $PUTFILE
quit
EOF
futurama ★★★★★
()
Ответ на: комментарий от vodz

да, по -n проглядел.

Хорошо, а если использовать только параметр -p

Если вручную ftp -p ip port Запрашивает логин Запрашивает пароль вошёл

Если через скрипт: Password:name (ip):.. вводится в режиме пароля ..

maxim2049
() автор топика
Ответ на: комментарий от maxim2049

Если делаю так:

ftp -p $HOST $PORT

Запускаю скрипт, начинает запрашивать логин.

Добавляю user $USER $PASS

Запускаю скрипт, все запрашивает ввод логина

меняю на

quote USER $USER

quote PASS $PASS

Запускаю, запрашивает логин

maxim2049
() автор топика

Кавычки нигде не забыл?

legolegs ★★★★★
()

Ftp клиент мерзость. Используйте curl. Он есть в каждом диструбтиве. В скриптах катит прилично.

Bootmen ☆☆☆
()
Последнее исправление: Bootmen (всего исправлений: 1)
Ответ на: комментарий от Bootmen

Да в принципе все равно каким способом лишь бы работало)

Если подскажите шаблон скрипта, буду очень благодарен.

Соответственно необходимо залогиниться, перейти в папку folder/folder и скопировать в неё все zip из локальной папки.

на фтп планировал, что будет выглядеть скрипт так

ftp -p $HOST $PORT <<EOF

quote USER $USER

quote PASS $PASS

cd folder1/folder2

put /localfolder/*.zip

quit

EOF

exit 0

maxim2049
() автор топика

FTP – древняя и дырявая хрень. Не используйте FTP, используйте альтернативы.

EXL ★★★★★
()
Ответ на: комментарий от maxim2049

Какой шаблон? Вам уже несколько раз подсказали man curl что ещё надо? Одна строка же.

anc ★★★★★
()
Ответ на: комментарий от anc

Мне этот клиент ... Есть машинка с Mandriva2009 И на ней нет курла. Дрепаная мандрива сей без репов. Я буквально позавчера мучался с скриптом запихивая переменные в штатный фтп. Фу какая хадость. :)

Bootmen ☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.