URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 52974
[ Назад ]

Исходное сообщение
"Автоматическое выполнение ftp команд"

Отправлено wbz , 01-Фев-05 21:54 
Господа, помогите с таким вопросом!
У виндовой команды ftp.exe была замечательная опция -s где можно было указывать имя файла с последовательностью ftp-команд. А как сделать такую же вещь на ftp в юниксе?
Задача такова: нужно автоматом, скриптом, заходить на ftp (не обязательно анонимные) и скачивать файл обновлений.
Помогите!

Содержание

Сообщения в этом обсуждении
"Автоматическое выполнение ftp команд"
Отправлено Sergei Wind , 01-Фев-05 22:06 
man wget

"Автоматическое выполнение ftp команд"
Отправлено wbz , 01-Фев-05 22:13 
>man wget


Хех, нееет!! В тот и все и дело чтобы без спец софта, а именно стандартынм ftp. Можно же какой нить скрипт забабахать?


"Автоматическое выполнение ftp команд"
Отправлено Sergei Wind , 01-Фев-05 22:54 
>>man wget
>
>
>Хех, нееет!! В тот и все и дело чтобы без спец софта,
>а именно стандартынм ftp. Можно же какой нить скрипт забабахать?

Да можно забабахать все что угодно :) что значит стандартными/нестандартными? Скрипт твой тоже будет нестандартным средством, не так ли? А в ftp есть что то по поводу макросов и начальной инициализации (man ftp), честно говоря никогда не интересовался, но думаю что это как раз то что тебе надо.


"Автоматическое выполнение ftp команд"
Отправлено bass , 02-Фев-05 06:32 
>Господа, помогите с таким вопросом!
>У виндовой команды ftp.exe была замечательная опция -s где можно было указывать
>имя файла с последовательностью ftp-команд. А как сделать такую же вещь
>на ftp в юниксе?
>Задача такова: нужно автоматом, скриптом, заходить на ftp (не обязательно анонимные) и
>скачивать файл обновлений.
>Помогите!
а зачем через одно место делать тривильную операцию? ну раз вам так нравится, используйте expect


"Автоматическое выполнение ftp команд"
Отправлено butcher , 02-Фев-05 07:50 
>скачивать файл обновлений.

# cat ftp.cmds
cd /incoming
put ftp.cmds
bye
# cat ftp.cmds | ftp -a xxx.xxx.xxx.xxx


"Автоматическое выполнение ftp команд"
Отправлено Azazelo , 02-Фев-05 09:43 
>Господа, помогите с таким вопросом!
>У виндовой команды ftp.exe была замечательная опция -s где можно было указывать
>имя файла с последовательностью ftp-команд. А как сделать такую же вещь
>на ftp в юниксе?
>Задача такова: нужно автоматом, скриптом, заходить на ftp (не обязательно анонимные) и
>скачивать файл обновлений.
>Помогите!


#!/bin/bash
ftp -n << EOF


open somehost.somedomain
user Anonymous aaa@bbb.com


cd /pub/upload


put /home/me/myfile.txt


quit


EOF


"Автоматическое выполнение ftp команд"
Отправлено JohnS , 02-Фев-05 10:14 
чем же wget не устраивает? rpm не долго развернуть, если уже не установлен (проверка: rpm -q wget)

wget -b -c -v -N --passive-ftp -t inf -w 60 -i /usr/local/etc/wget/wget.urls -a /var/log/wget.log -P /home/ftp/downloads

в wget.urls
строки типа:
ftp://адрес/файл
http://адрес/файл
и т.д.

само собой пути свои, и скрипт запуска в crontab - всё good.


"Автоматическое выполнение ftp команд"
Отправлено lavr , 02-Фев-05 10:24 
>чем же wget не устраивает? rpm не долго развернуть, если уже не
>установлен (проверка: rpm -q wget)
>
>wget -b -c -v -N --passive-ftp -t inf -w 60 -i /usr/local/etc/wget/wget.urls
>-a /var/log/wget.log -P /home/ftp/downloads
>
>в wget.urls
>строки типа:
>ftp://адрес/файл
>http://адрес/файл
>и т.д.
>
>само собой пути свои, и скрипт запуска в crontab - всё good.
>

единственный пример с ведением лога, но без проверки вылета wget хоть
и с запуском -t inf, при этом совет воткнуть такое в crontab и не
проверять а висит ли уже на выполнении этот же wget, а если он не завершился?

Все остальные примеры и вовсе не дотягивают



"Автоматическое выполнение ftp команд"
Отправлено Azazelo , 02-Фев-05 10:39 
>>чем же wget не устраивает? rpm не долго развернуть, если уже не
>>установлен (проверка: rpm -q wget)
>>
>>wget -b -c -v -N --passive-ftp -t inf -w 60 -i /usr/local/etc/wget/wget.urls
>>-a /var/log/wget.log -P /home/ftp/downloads
>>
>>в wget.urls
>>строки типа:
>>ftp://адрес/файл
>>http://адрес/файл
>>и т.д.
>>
>>само собой пути свои, и скрипт запуска в crontab - всё good.
>>
>
>единственный пример с ведением лога, но без проверки вылета wget хоть
>и с запуском -t inf, при этом совет воткнуть такое в crontab
>и не
>проверять а висит ли уже на выполнении этот же wget, а если
>он не завершился?
>
Все остальные примеры и вовсе не дотягивают

какой вопрос такой ответ .



"Автоматическое выполнение ftp команд"
Отправлено JohnS , 02-Фев-05 10:39 
всё отлично работает без сбоев! вот полностью расклад:

кусок crontab:
# Запуск атоматического скачивания 01:01-06:55              
# Список скачиваемых файлов в "/usr/local/etc/wget/wget.urls"
# Файлы скачиваются в "/home/ftp/download"                  
55 0 * * * /rd/wg stop                                      
01 1 * * * /rd/wg start                                      
55 6 * * * /rd/wg stop                                      

вот мой *wg из каталога rd (символическая ссылка сами знаете на что :))) ):

#!/bin/sh                                                                    
#                                                                            
# chkconfig: 2345 15 82                                                      
# description: script for wget
#
# processname: wget                                                          
                                                                            
# Source function library.                                                  
. /etc/rc.d/init.d/functions                                                
                                                                            
# See how we were called.                                                    
case "$1" in                                                                
  start)                                                                    
        echo -n "Начали (продолжили) закачку с помощью wget: "              
        /usr/local/etc/wget/wget.sh                                          
        echo                                                                
        ;;                                                                  
  startl)                                                                    
        echo -n "Закачка с помощью wget с ограничением скорости в $2 Kb/s: "
        /usr/local/etc/wget/wgetl.sh $2                                      
        echo                                                                
        ;;                                                                  
  stop)                                                                      
        echo -n "Прервали все закачки: "                                    
        killall wget                                                        
        echo                                                                
        ;;                                                                  
  restart)                                                                  
        $0 stop                                                              
        $0 start                                                            
        ;;                                                                  
  *)                                                                        
    echo "Usage: wg {start|stop|restart|startl LimitRate}"                  
    exit 1                                                                  
esac                                                                        

содержимое wget.sh:
#!/bin/sh
#

wget -b -c -v -N --passive-ftp -t inf -w 60 -i /usr/local/etc/wget/wget.urls -a /var/log/wget.log -P /home/ftp/download

содержимое wgetl.sh:
#!/bin/sh
#
if [ -n "$1" ]; then
    wget -b -c -v -N --passive-ftp -t inf -w 60 -i /usr/local/etc/wget/wget.urls -a /var/log/wget.log -P /home/ftp/download --limit-rate="$1"k
else
    echo -e "нет параметров (скорость в Кб) - обломс..."
fi
    


"Автоматическое выполнение ftp команд"
Отправлено Асен Тотин , 03-Фев-05 00:56 
Привет,

1. man ftp
2. Ищем в нем "THE .netrc FILE"

Дешево и сердито.

WWell,