>hi!
>Пытаюсь создать локальный миррор для того, чтобы пользователи не лазили в сеть
>сами за обновлениями (каталог документов, добавляемых и обновляемых)
>Пишу:
>#!/bin/bash
>ftp="/usr/bin/ftp"
>local_dir="/ftp/docs"
>remote_host="remote.host"
>ftp_user="anonymous"
>ftp_pass="user@"
>remote_dir="/mirror/docimrnts"
>cd $local_dir
>$ftp $remote_host
>user $ftp_user
>pass $ftp_pass
>PASV
>cd $remote_dir
>ls
>mget *
>quit
>
>На что получаю ответ об небходимости авторизации на удаленном ftp.
>Просьба ткнуть носом - что я неправильно написал.
>P.S. - Ручками (через обычного клиента) зайти могу свободно.
>P.P.S. - В анализаторе посмотрел, что клиент ftp посылает после USER anonymous
>- 0x0D0A - в этом наверно моя ошибка - но как
>впихнуть перевод строки в команду - не доходит...
man ftp
...
.netrc
...
touch .netrc ; chmod 600 .netrc
echo machine ftp.domain login FTPNAME password FTPPASS > .netrc
болванка скрипта для bash (chmod 755 getftp.sh):
-------------------------- getftp.sh ----------------------------------
#!bin/bash
ftp ftp.domain < ftp.in &> ftp.out &
-----------------------------------------------------------------------
-------------------------- ftp.in -------------------------------------
verbose
bin
prompt
cd dirname
dir
get filename
mget filename
put filename
mput filename
quit
-----------------------------------------------------------------------
скрипт запускать в фоновом режиме:
1) редактируем ftp.in
2) запускаем getftp.sh:
./getftp & ; exit (выходим из сеанса shell)
скрипт будет брать команды из ftp.in, а stdout & stderr писать в ftp.out
PS. Усовершенствовать или изменить под себя
PPS. В качестве mirror такие поделки не подойдут, лучше mirrordir или
wget...