Господа, помогите с таким вопросом!
У виндовой команды ftp.exe была замечательная опция -s где можно было указывать имя файла с последовательностью ftp-команд. А как сделать такую же вещь на ftp в юниксе?
Задача такова: нужно автоматом, скриптом, заходить на ftp (не обязательно анонимные) и скачивать файл обновлений.
Помогите!
man wget
>man wget
Хех, нееет!! В тот и все и дело чтобы без спец софта, а именно стандартынм ftp. Можно же какой нить скрипт забабахать?
>>man wget
>
>
>Хех, нееет!! В тот и все и дело чтобы без спец софта,
>а именно стандартынм ftp. Можно же какой нить скрипт забабахать?Да можно забабахать все что угодно :) что значит стандартными/нестандартными? Скрипт твой тоже будет нестандартным средством, не так ли? А в ftp есть что то по поводу макросов и начальной инициализации (man ftp), честно говоря никогда не интересовался, но думаю что это как раз то что тебе надо.
>Господа, помогите с таким вопросом!
>У виндовой команды ftp.exe была замечательная опция -s где можно было указывать
>имя файла с последовательностью ftp-команд. А как сделать такую же вещь
>на ftp в юниксе?
>Задача такова: нужно автоматом, скриптом, заходить на ftp (не обязательно анонимные) и
>скачивать файл обновлений.
>Помогите!
а зачем через одно место делать тривильную операцию? ну раз вам так нравится, используйте expect
>скачивать файл обновлений.# cat ftp.cmds
cd /incoming
put ftp.cmds
bye
# cat ftp.cmds | ftp -a xxx.xxx.xxx.xxx
>Господа, помогите с таким вопросом!
>У виндовой команды 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
чем же 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 не устраивает? 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, а если он не завершился?Все остальные примеры и вовсе не дотягивают
>>чем же 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, а если
>он не завершился?
>
Все остальные примеры и вовсе не дотягиваюткакой вопрос такой ответ .
всё отлично работает без сбоев! вот полностью расклад:кусок 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
Привет,1. man ftp
2. Ищем в нем "THE .netrc FILE"Дешево и сердито.
WWell,