Nowe posty

Autor Wątek: Skrypt w Cygwin a TaskScheduler  (Przeczytany 3634 razy)

karpiugka

  • Gość
Skrypt w Cygwin a TaskScheduler
« dnia: 2015-07-29, 10:41:02 »
Witam,
Z góry przepraszam za zakładanie co chwile tematów przeze mnie ale miałem 3 problemy osobne tematycznie.
Mam problem w postaci utworzenia cyklicznie otwieranego skryptu .ssh na Windows Serwer 2008.

Mam dość długi skrypt podam tylko początek
"
date >> ./logfile
echo "START pobieranie dokumentów z FTP" >> ./logfile
ncftpget -R -u user -p 12345 ftp.xxx.pl ./A/ ./
echo "Koniec pobieranie dokumentów z FTP" >> ./logfile
"
Gdy wywołuje skrypt poleceniem "sh skrypt.sh" wszystko dzieje sie poprawnie.Czyli polecenie wpisują informacje do "logfile", a pliki są kopiowane z serwera FTP i pojawiają się w lokalizacji ./A

Za pomocą instrukcji pod linkiem :
http://www.davidjnice.com/cygwin_scheduled_tasks.html

Utworzyłem task.
Gdy go wywołuje task nie pisuje nic do pliku logfile.
Tworzy swój logifiletask i do niego wpisuje informacje na temat kopiowania plików z FTP z polecenia ncftpget, lecz pliki nie ukazują się w lokalizacji ./A .

Wygląda na to ze task widzi tylko polecenie ncftpget ale nie kopiuje plików do żądanej lokalizacji.

Na danym serwerze działa już inny task wykorzystujący skryp .ssh i działa on poprawie. Kolejny skrypt jest o wiele dłuższy ale nie chce działać poprawnie z niewiadomej przyczyny.

Możliwe że ktoś z forum będzie mieć odpowiedz na mój problem.
Z góry dziękuje za pomoc

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3062
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #1 dnia: 2015-07-29, 12:27:08 »
Używanie ścieżek względnych w sytuacji, gdy nie do końca wiemy z jakim właściwie katalogiem bieżącym skrypt zostanie uruchomiony jest niezalecanie. Hint: W 99% to nie jest katalog, w którym jest skrypt.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

karpiugka

  • Gość
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #2 dnia: 2015-07-29, 12:31:07 »
Czyli lepiej podać ścieżke od roota ?
"/cygdrive/d/A/"

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3062
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #3 dnia: 2015-07-29, 12:36:30 »
Jeżeli nie jesteś w 100% pewien z jakiego katalogu scheduler odpala twój skrypt, to lepiej.

Dodatkowo wchodzą tu interakcje z przeliczaniem ścieżek Windows<->Cygwin.

Na stronce, którą sam podałeś przy uruchamianiu skrytpu w schedulerze jest /full/path/to/a/logfile co powinno odpowiedzieć na Twoje pytanie.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

karpiugka

  • Gość
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #4 dnia: 2015-07-29, 13:58:16 »
Ok spróbuje z pełnymi ścieżkami i dam znać. Dzięki

karpiugka

  • Gość
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #5 dnia: 2015-08-03, 09:03:45 »
po podaniu pełnej ścieżki Task zaczął się wykonywać poprawnie. Z góry dzięki.

karpiugka

  • Gość
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #6 dnia: 2015-08-05, 11:29:21 »
Co prawda polecenia bash zaczęły sie wykonywać podczas Taska Windowsowego lecz występuje błąd który nie występował gdy skrypt był wykonywany z środowiska Cygwin.
Błąd : ERROR 2 (HY000) at line 2: File '.\\xxx.csv' not found (Errcode: 2)
Linia Kodu : mysql -e "
  load data local infile './xxx.csv' REPLACE into table datebase.table

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3062
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #7 dnia: 2015-08-06, 00:16:12 »
Ty jakiś  nieteges? Masz dalej ten sam błąd z względną ścieżką startującą z nieznanego roota... Tym razem pliku csv w skrypcie.  Czytajże komunikaty błędów ze zrozumieniem.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

karpiugka

  • Gość
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #8 dnia: 2015-08-06, 08:52:46 »
Oczywiscie taka opcje też sprawdziłem przed napisaniem na forum. Gdy uzupełnie całą scieżkę zapytanie SQL nie działa zarówno w Cygwinie jak i w Windows Task.
Błąd : ERROR 2 (HY000) at line 1: File '\\cygdrive\\d\\xxx\\xxx.csv' not found (Errcode: 2)

karpiugka

  • Gość
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #9 dnia: 2015-08-06, 09:47:12 »
Metodą prób i błedów doszłem do paru wniosków :
- Po zmianie w poleceniu SQL REPLACE na IGNOR polecenie wykonuje sie, ale pobiera nie te dane które oczekuje (z niewiadomego źródła).
- Po podaniu całej scieżki od roota wyrzuca ład jak powyżej

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3062
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #10 dnia: 2015-08-06, 15:28:48 »
Oj tam /cygdrive czy \\cygdrive...
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

karpiugka

  • Gość
Skrypt w Cygwin a TaskScheduler
« Odpowiedź #11 dnia: 2015-08-06, 22:03:30 »
W skrypcie mam /cygdrive/
A w błędzie automatycznie zmienia na \\cygdrive\\