První krůčky... VII.
Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
mojeID OpenID
Pokročilé vyhledávání  

Novinky:

Přijďte se podívat a oslavit nové vydání Ubuntu 13.04, více informací naleznete zde.

Autor Téma: Skript sa mi chova inak pod cronom ako ked sa spusti manualne  (Přečteno 617 krát)

Peterx

  • Člen
  • **
  • Karma: +7/-3
  • Pohlaví: Mužské
  • Příspěvků: 375
    • Zobrazit profil

Viete mi niekto poradit?
Mam skript1 ktory spusta 2. Pokial to spustim manualne je vsetko ok, ale ak to dam spustit pod cronom tak mi v 2 skripre nejde podmienka.

Skript1:
Kód: [Vybrat]
#!/bin/bash

whois="/usr/bin/whois"
#rm="/bin/rm"
#nail="/usr/bin/nail"
wget="/usr/bin/wget"
dos2unix="/usr/bin/dos2unix"
cat="/bin/cat"
grep="/bin/grep"

cat /cesta/subor.txt | while read line; do /cesta/skript2.sh $line; done


Skript2:
Kód: [Vybrat]
#!/bin/bash

whois="/usr/bin/whois"
#rm="/bin/rm"
#nail="/usr/bin/nail"
wget="/usr/bin/wget"
dos2unix="/usr/bin/dos2unix"
cat="/bin/cat"
grep="/bin/grep"

xdom=${1}
whois $xdom | grep found > /dev/null

if [ $? -eq 1 ]; then
echo $xdom >>/cesta/obsadena.txt
else
echo $xdom >>/cesta/volna.txt
fi
IP zaznamenána

pacholik

  • Závislák
  • ****
  • Karma: +239/-12
  • Příspěvků: 1980
    • Zobrazit profil
Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
« Odpověď #1 kdy: 10 Listopad 2010, 18:02:32 »

Jak tam máš ve skutečnosti napsaný to /cesta ? Měla by tam bejt plná cesta.
Když nevíš kde je chyba, je dobrý si přesměrovat chybový výstupy někam do souboru
Kód: [Vybrat]
příkaz 2> souborA tak mimochodem celý to jde napsat na jeden řádek :P
Kód: [Vybrat]
for xdom in `cat soubor.txt`; do whois $xdom | grep found > /dev/null && echo $xdom >> volna.txt || echo $xdom >> obsadena.txt; done
IP zaznamenána
Debian GNU/Linux unstable (sid) 3.2.0-4-amd64

Peterx

  • Člen
  • **
  • Karma: +7/-3
  • Pohlaví: Mužské
  • Příspěvků: 375
    • Zobrazit profil
Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
« Odpověď #2 kdy: 10 Listopad 2010, 20:36:45 »

Ta cesta je dobra a plna.. dokonca ked testujem vysledok vystupu
Kód: [Vybrat]
whois $xdom | grep found > /dev/nulltak mi to vracia 0, alebo 1

Ale ako by to ten if ignoroval, ale len ak to spustam z cronu, ak to spustim rucne, ide vsetko ok.

K tomuto:
Kód: [Vybrat]
for xdom in `cat soubor.txt`; do whois $xdom | grep found > /dev/null && echo $xdom >> volna.txt || echo $xdom >> obsadena.txt; done
nechapem zaciatku for xdom... xdom je moja premenna, ale definicia tej premennej tam chyba.. to za tym chapem, no som v tomto zaciatocnik a neviem ani co prinuti precitat kazdy riadok daneo suboru, kde kazdy riadok je jedna domena...
IP zaznamenána

pacholik

  • Závislák
  • ****
  • Karma: +239/-12
  • Příspěvků: 1980
    • Zobrazit profil
Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
« Odpověď #3 kdy: 10 Listopad 2010, 23:21:59 »

A kdyby bylo míso xdom i ?
Kód: [Vybrat]
for i in `cat soubor.txt`; do whois $i | grep found > /dev/null && echo $i >> volna.txt || echo $i >> obsadena.txt; done
ale všechny adresy mi háže (tvůj i můj skript) do obsadena.txt, takže nějak nevim k čemu to je
IP zaznamenána
Debian GNU/Linux unstable (sid) 3.2.0-4-amd64

Peterx

  • Člen
  • **
  • Karma: +7/-3
  • Pohlaví: Mužské
  • Příspěvků: 375
    • Zobrazit profil
Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
« Odpověď #4 kdy: 11 Listopad 2010, 08:26:54 »

A kdyby bylo míso xdom i ?
Kód: [Vybrat]
for i in `cat soubor.txt`; do whois $i | grep found > /dev/null && echo $i >> volna.txt || echo $i >> obsadena.txt; done
ale všechny adresy mi háže (tvůj i můj skript) do obsadena.txt, takže nějak nevim k čemu to je

U mna moj skript funguje spravne pri rucnom spusteni, ale cez crona nie...
Skript vyssie na 1 riadok ma ten isty vysledok. Ak to spustim ja ide ok, ak to spustim cez crona tak nefunguje.. Samozrejme cesty som dopisal..
IP zaznamenána

pacholik

  • Závislák
  • ****
  • Karma: +239/-12
  • Příspěvků: 1980
    • Zobrazit profil
Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
« Odpověď #5 kdy: 11 Listopad 2010, 16:57:17 »

tak sem to zkusil dát do crontabu a funguje to normálně
Kód: [Vybrat]
* * * * * for i in `cat /home/pacholik/foo`; do whois $i | grep found > /dev/null && echo $i >> /home/pacholik/volná || echo $i >> /home/pacholik/obsazená; done
IP zaznamenána
Debian GNU/Linux unstable (sid) 3.2.0-4-amd64

jmp

  • Závislák
  • ****
  • Karma: +128/-19
  • Příspěvků: 1578
    • Zobrazit profil
Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
« Odpověď #6 kdy: 11 Listopad 2010, 16:58:59 »

zkuste si ten skript pustit pomoci /bin/dash (a ne /bin/bash) - co to udela?

pokud to bude zlobit, tak zkuste v crontabu explicitne dat bash (SHELL=/bin/bash)
defaultni je pro cron /bin/sh (a ja to mam v ubuntu jako link na /bin/dash)
IP zaznamenána

Peterx

  • Člen
  • **
  • Karma: +7/-3
  • Pohlaví: Mužské
  • Příspěvků: 375
    • Zobrazit profil
Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
« Odpověď #7 kdy: 11 Listopad 2010, 17:55:35 »

zkuste si ten skript pustit pomoci /bin/dash (a ne /bin/bash) - co to udela?

pokud to bude zlobit, tak zkuste v crontabu explicitne dat bash (SHELL=/bin/bash)
defaultni je pro cron /bin/sh (a ja to mam v ubuntu jako link na /bin/dash)


Skusil som vsetko, vysledok stale ten isty..


IP zaznamenána

Peterx

  • Člen
  • **
  • Karma: +7/-3
  • Pohlaví: Mužské
  • Příspěvků: 375
    • Zobrazit profil
Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
« Odpověď #8 kdy: 12 Listopad 2010, 01:20:31 »

Neviem sice kde bol problem, ale, zacalo mi to blbnut aj ked som to spustal rucne, tak som to restartol a funguje to..
Je to tak trochu zahada..
IP zaznamenána