Генерация ссылки и загрузка на FTP

Обсуждение программ nnCron и nnCron LITE

Генерация ссылки и загрузка на FTP

Postby Juster » Mon, 01 Apr 2013, 14:32

Добрый день!
Подскажите как реализовать в nnCron. Необходимо сделать следующее:
1) Сгенерировать ссылку, вида http://abc.ru/ABC=YYYY-MM-DD, где YYYY-MM-DD дата следующего понедельника.
2) Загрузить по ссылке xml-файл во временную папку.
3) Скопировать файл на FTP-сервер.
Спасибо!
Juster
 
Posts: 1
Joined: Mon, 01 Apr 2013, 14:23

Re: Генерация ссылки и загрузка на FTP

Postby VoidVolker » Tue, 02 Apr 2013, 08:01

Code: Select all
#( Задача_085202042013
NoActive
SingleInstance
: NextMondayS
  Year@ Mon@ Day@ 8 Year@ Mon@ Day@ WEEK-DAY - DAY+
  S>D <#
    # # [CHAR] - HOLD
    2DROP S>D # # [CHAR] - HOLD
    2DROP S>D # # # #
  #>
;
Action:
S" http://abc.ru/ABC=" NextMondayS S+ HTTP-GET IF
  2DROP ." Не могу загрузить файл. Код возврата сервера: " HTTP-RESULT .  CR
ELSE
  S" D:\TEMP\file.xml" FWRITE
  START-APP: D:\wput\wput.exe -B -u -nc -t5 -a " D:\wput\logs\%DD%-%MM%-%YYYY%.log" "D:\TEMP\file.xml" "ftp://server/catalog"
THEN
)#
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Генерация ссылки и загрузка на FTP

Postby Snk-Serge » Mon, 22 Apr 2013, 11:01

Добрый день, вставил ваш скрипт в файл cron.tab, но при запуске задачи ничего не происходит. В тексте скрипта ничего не менял, кроме адреса ФТП. Его задал в формате: ftp://login:pass@ftp.ru/directory/ В чем может быть причина не срабатывания скрипта? На ФТП предварительно захожу через проводник по той же ссылке, все работает.
Snk-Serge
 
Posts: 14
Joined: Mon, 22 Apr 2013, 10:52

Re: Генерация ссылки и загрузка на FTP

Postby VoidVolker » Mon, 22 Apr 2013, 20:46

Пути правильно указаны? А в фаерволле разрешен сетевой доступ? При отсутствии сетевого доступа для ннкрона скрипт пишет об этом в консоли ннкрона.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Генерация ссылки и загрузка на FTP

Postby Snk-Serge » Fri, 26 Apr 2013, 08:17

VoidVolker wrote:Пути правильно указаны? А в фаерволле разрешен сетевой доступ? При отсутствии сетевого доступа для ннкрона скрипт пишет об этом в консоли ннкрона.

Фаерволл вообще отключен, пути указаны верно, т.к. я пробовал их прямо из скрипта вставлять в браузер на том же компьютере, что и nnCron, через него все открывается.
В консоли при запуске скрипта выводиться сообщение Can't load file from server (Это то сообщение из скрипта, при невозможности загрузить файл по ссылке), т.е. до загрузки на ФТП дело даже не доходит. Мне почему-то кажется, что в ссылку не вбивается нужная дата и из-за этого не происходит скачивание.

Скрипт я вбил следующим образом:

Code: Select all
#( Download
NoActive
SingleInstance
: NextMondayS
  Year@ Mon@ Day@ 8 Year@ Mon@ Day@ WEEK-DAY - DAY+
  S>D <#
    # # [CHAR] - HOLD
    2DROP S>D # # [CHAR] - HOLD
    2DROP S>D # # # #
  #>
;
Action:
HTTP-GET: " http://abc.ru/ABC=%NextMondayS%"  IF
  2DROP ." Can't load EPG from server. Code: " HTTP-RESULT .  CR
ELSE
  S" C:\TEMP\file.xml" FWRITE
  START-APP: C:\wput\wput.exe -B -u -nc -t5 -a " C:\wput\logs\%DD%-%MM%-%YYYY%.log" "C:\TEMP\file.xml" "ftp://login:pass@ftp.ru/directory"
THEN
)#


PS. Слэши в адресе ФТП ставил в обе стороны. Я так понимаю, что нужно все-таки вправо (/)?
Last edited by VoidVolker on Fri, 26 Apr 2013, 09:39, edited 1 time in total.
Reason: Для кода следует использовать тег code
Snk-Serge
 
Posts: 14
Joined: Mon, 22 Apr 2013, 10:52

Re: Генерация ссылки и загрузка на FTP

Postby VoidVolker » Fri, 26 Apr 2013, 09:42

Да, заглянул внутрь HTTP-GET: - оказалось, оно определено несколько иначе, чем другие аналогичные слова. Поправил скрипт. Надо вот так:
Code: Select all
S" http://abc.ru/ABC=" NextMondayS S+ HTTP-GET
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Генерация ссылки и загрузка на FTP

Postby Snk-Serge » Sun, 28 Apr 2013, 04:40

VoidVolker wrote:Да, заглянул внутрь HTTP-GET: - оказалось, оно определено несколько иначе, чем другие аналогичные слова. Поправил скрипт. Надо вот так:
Code: Select all
S" http://abc.ru/ABC=" NextMondayS S+ HTTP-GET

Т.е. страка в скрипте должна выглядеть так:
Code: Select all
Action:
S" http://abc.ru/ABC=" NextMondayS S+ HTTP-GET IF
  2DROP ." Can't load EPG from server. Code: " HTTP-RESULT .  CR
ELSE
  S" C:\TEMP\file.xml" FWRITE
  START-APP: C:\wput\wput.exe -B -u -nc -t5 -a " C:\wput\logs\%DD%-%MM%-%YYYY%.log" "C:\TEMP\file.xml" "ftp:\\ftp\directory"
THEN

?
Last edited by VoidVolker on Sun, 28 Apr 2013, 06:53, edited 1 time in total.
Reason: Для кода следует использовать тег code
Snk-Serge
 
Posts: 14
Joined: Mon, 22 Apr 2013, 10:52

Re: Генерация ссылки и загрузка на FTP

Postby VoidVolker » Sun, 28 Apr 2013, 06:53

95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Генерация ссылки и загрузка на FTP

Postby Snk-Serge » Tue, 30 Apr 2013, 07:11

VoidVolker wrote:См. выше.

Спасибо, заработало!

А как сделать формат ссылки следующим:
https://abc.ru/date0=DD1.MM1.YYYY1&date1=DD2.MM2.YYYY2, где DD1.MM1.YYYY1 - дата понедельника текущей недели, а DD2.MM2.YYYY2 - дата воскресенья текущей недели?
Snk-Serge
 
Posts: 14
Joined: Mon, 22 Apr 2013, 10:52

Re: Генерация ссылки и загрузка на FTP

Postby VoidVolker » Tue, 30 Apr 2013, 14:10

Code: Select all
<%
: ThisWeekDay>YMD   \ ( week_day_number -- y m d )
  >R Year@ Mon@ Day@ R> Year@ Mon@ Day@ WEEK-DAY - DAY+
;

: YMD>YYYY-MM-DD   \ ( y m d -- a u )
  S>D <#
    # # [CHAR] - HOLD
    2DROP S>D # # [CHAR] - HOLD
    2DROP S>D # # # #
  #>
;

: WD>Y-M-D   \ ( n -- a u )
  ThisWeekDay>YMD YMD>YYYY-MM-DD
;

: ThisMonS   \ ( -- a u )
  1 WD>Y-M-D
;

: ThisSunS   \ ( -- a u )
  7 WD>Y-M-D
;

: NextMonS   \ ( -- a u )
  8 WD>Y-M-D
;
%>

#( Задача_150330042013
NoActive
SingleInstance
Action:
S" https://abc.ru/date0=" ThisMonS S+  S" &date1=" S+ ThisSunS S+
HTTP-GET IF
  2DROP ." Не могу загрузить файл. Код возврата сервера: " HTTP-RESULT .  CR
ELSE
  S" C:\TEMP\file.xml" FWRITE
  START-APP: C:\wput\wput.exe -B -u -nc -t5 -a " C:\wput\logs\%DD%-%MM%-%YYYY%.log" "C:\TEMP\file.xml" "ftp://ftp/directory"
THEN
)#
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Генерация ссылки и загрузка на FTP

Postby Snk-Serge » Sun, 12 May 2013, 15:06

VoidVolker wrote:См. выше.

Сейчас скачивание с сайта по ссылки работает отлично, но не работает загрузка на ФТП. Весь текст скрипта такой же, как и в указанном посте. Хотя с того же сервера пробовал вбивать ту же ссылку из скрипта просто в проводник, там фтп открывается :( .
Snk-Serge
 
Posts: 14
Joined: Mon, 22 Apr 2013, 10:52

Re: Генерация ссылки и загрузка на FTP

Postby VoidVolker » Sun, 12 May 2013, 15:31

А путь к wput правильно указан? Ему разрешен сетевой доступ? Ннкрон запущен как приложение? Если как сервис, то надо еще указать для задачи опцию AsLoggedUser.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Генерация ссылки и загрузка на FTP

Postby Snk-Serge » Mon, 13 May 2013, 17:52

VoidVolker wrote:А путь к wput правильно указан? Ему разрешен сетевой доступ? Ннкрон запущен как приложение? Если как сервис, то надо еще указать для задачи опцию AsLoggedUser.

Немного по другому прописал команду в скрипте для wput и в пути для ФТП нужно было дописать имя копируемого файла:
вместо C:\wput\wput.exe -B -u -nc -t5 -a " C:\wput\logs\%DD%-%MM%-%YYYY%.log" "C:\TEMP\file.xml" "ftp://ftp/directory"
написал C:\wput\wput.exe C:\TEMP\file.xml ftp://ftp/directory/file.xml
после чего все заработало.

Но остался один небольшой вопрос по второму скрипту (для ссылки https://abc.ru/date0=DD1.MM1.YYYY1&date1=DD2.MM2.YYYY2): генерация ссылки работает, но дело в том, что при переходе по данной ссылке не происходит сохранения файла, а происходит открытие текста из файла в окне браузера и, чтобы его сохранить, нужно нажимать Ctrl+S. Возможно ли сделать так, чтобы скрипт это делал сам или есть какая-нибудь команда, которую нужно дописать в адрес ссылки, для автоматического сохранения?
Snk-Serge
 
Posts: 14
Joined: Mon, 22 Apr 2013, 10:52

Re: Генерация ссылки и загрузка на FTP

Postby VoidVolker » Mon, 13 May 2013, 18:03

Snk-Serge wrote:Но остался один небольшой вопрос по второму скрипту (для ссылки https://abc.ru/date0=DD1.MM1.YYYY1&date1=DD2.MM2.YYYY2): генерация ссылки работает, но дело в том, что при переходе по данной ссылке не происходит сохранения файла, а происходит открытие текста из файла в окне браузера и, чтобы его сохранить, нужно нажимать Ctrl+S. Возможно ли сделать так, чтобы скрипт это делал сам или есть какая-нибудь команда, которую нужно дописать в адрес ссылки, для автоматического сохранения?

Нажимать в контекстном меню браузера "сохранить как". А скрипт так и так сохраняет полученные данные в виде файла без участия бразуера.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Генерация ссылки и загрузка на FTP

Postby Snk-Serge » Fri, 24 May 2013, 14:57

VoidVolker wrote:
Code: Select all
#( Задача_085202042013
NoActive
SingleInstance
: NextMondayS
  Year@ Mon@ Day@ 8 Year@ Mon@ Day@ WEEK-DAY - DAY+
  S>D <#
    # # [CHAR] - HOLD
    2DROP S>D # # [CHAR] - HOLD
    2DROP S>D # # # #
  #>
;
Action:
S" http://abc.ru/ABC=" NextMondayS S+ HTTP-GET IF
  2DROP ." Не могу загрузить файл. Код возврата сервера: " HTTP-RESULT .  CR
ELSE
  S" D:\TEMP\file.xml" FWRITE
  START-APP: D:\wput\wput.exe -B -u -nc -t5 -a " D:\wput\logs\%DD%-%MM%-%YYYY%.log" "D:\TEMP\file.xml" "ftp://server/catalog"
THEN
)#

А как сделать то же самое, только в формате: http://abc.ru/ABC=MM.DD.YYYY? Можно с небольшими комментариями для той части, где высчитывается день недели? Чтобы я по таким глупым вопросам больше не беспокоил :D .
Snk-Serge
 
Posts: 14
Joined: Mon, 22 Apr 2013, 10:52

Next

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot] and 4 guests