Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Peterx 10 Listopadu 2010, 10:03:04

Název: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
Přispěvatel: Peterx 10 Listopadu 2010, 10:03:04
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
Název: Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
Přispěvatel: pacholik 10 Listopadu 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
Název: Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
Přispěvatel: Peterx 10 Listopadu 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...
Název: Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
Přispěvatel: pacholik 10 Listopadu 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
Název: Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
Přispěvatel: Peterx 11 Listopadu 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..
Název: Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
Přispěvatel: pacholik 11 Listopadu 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
Název: Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
Přispěvatel: jmp 11 Listopadu 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)
Název: Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
Přispěvatel: Peterx 11 Listopadu 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..


Název: Re: Skript sa mi chova inak pod cronom ako ked sa spusti manualne
Přispěvatel: Peterx 12 Listopadu 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..