Fórum Root.cz

Hlavní témata => Software => Téma založeno: norwi 21. 01. 2013, 07:08:21

Název: Skript v Cronu běží jen pod rootem
Přispěvatel: norwi 21. 01. 2013, 07:08:21
Zdravím

Mám prosbu už fakt nevim.

mám skript, který KILLne dva procesy a pak spouští "rmiregistr" (java) a JAVovský skript.

Pokud skript pustim rucne, vse pod userem vse probehne OK.
Pokud ho pustim pod CRONe tak, skript v danem case jen KILLne procesy a nic nespusti.
Kdyz skript pustim pod rootem CRONa tak vse nabehne.

Prava jsme pridelil a porad nic.
Vypis logu neříka zadnou chybu.
OS je CENTOS

Muj skript
Kód: [Vybrat]
#kill process rmregistry
ps -ef | grep rmiregistry |grep user1 | grep -v grep | awk '{print $2}' | xargs kill -9

#kill proces java
ps -ef | grep /usr/java/jdk1 |grep user1 | grep -v grep | awk '{print $2}' | xargs kill -9
sleep 10

cd /srv/vipilot/pluto
./skript1.sh
./skript1

Díky za jakýkoli HINT.
Název: Re:problem s cronem
Přispěvatel: mon 21. 01. 2013, 08:01:25
prava na skript? moze ich pustat user ktory to ma v crone?
Název: Re:problem s cronem
Přispěvatel: Mareg 21. 01. 2013, 09:41:45
Kód: [Vybrat]
cd /srv/vipilot/pluto
./skript1.sh
./skript1

A co tam misto této konstrukce raději zadat absolutní cestu?
/.../.../skript1.sh
Název: Re:problem s cronem
Přispěvatel: David 21. 01. 2013, 09:56:13
Zkusil bych to zjednodušit. Pustil bych ručně třeba sleep 10000, místo těch ps bych zkusil dát killall sleep a následně to cd a spuštění scriptu...  a do toho scriptu bych dal třeba jenom echo test > /tmp/test, pustil pomocí CRONu a zkusil bych se podívat jestli se vytvořil /tmp/test...

Přijde mi, že to co tu uvádíš by mělo fungovat, jestli jsou práva OK a chmod +x

Název: Re:problem s cronem
Přispěvatel: norwi 22. 01. 2013, 06:53:51
prava na skript? moze ich pustat user ktory to ma v crone?

pokud skript spustim manualne pod danym uzivatelem (su user) tak probehne
navic jsem procesum prideli prava pres chown user:group ./skript1.sh
Název: Re:problem s cronem
Přispěvatel: norwi 22. 01. 2013, 06:56:19
Kód: [Vybrat]
cd /srv/vipilot/pluto
./skript1.sh
./skript1

A co tam misto této konstrukce raději zadat absolutní cestu?
/.../.../skript1.sh

Absolutní cesta není možná, protože skript1.sh ma v sobe

cd directory a pak cd ..
Název: Re:Skript v Cronu běží jen pod rootem
Přispěvatel: Honza Vrana 22. 01. 2013, 07:40:25
Krasny den,

z cronem byva problem ze nema nastavene promene prostredi, povetsinou se nedostane k PATH.
Podle kodu bych si tipnul ze  ./skript1.sh nebo ./skript1 ma uvnitr nejaky kod kteremu chybí nějaká
proměná prostředí, kterou muze mít root nastavenu.

V kazdém případě bych si vypisem nějaké hodnoty ověřil zda zda se ./skript1.sh a ./skript1 spustí. Já si myslím že jo a že havaruje až kod uvnitř.

a pomoci /usr/bin/env  bych si vypsal promene prostredi u user na primo, user cron a root cron a pak je porovnal a rozdil musim vidět.

Honza Vrána

Název: Re:Skript v Cronu běží jen pod rootem
Přispěvatel: Petr Jeníček 22. 01. 2013, 08:54:41
Jeste overte, zda dany uzivatel vubec smi spoustet neco cronem. Zkuste spustit cronem nejaky uplne jednoduchy prikaz treba /bin/echo "test" > /tmp/test.txt . Kdyz nepujde, podivejte se do log souboru cron, messages a secure v adresari /var/log/ zda tam nebude nejaka zprava. Bezpecnostni omezeni nebo zakazy spousteni uloh cronem mohou byt v souborech /etc/cron.allow, /etc/cron.deny, /etc/security/access.conf, /etc/pam.d/crond a v nastaveni selinuxu.
Název: Re:Skript v Cronu běží jen pod rootem
Přispěvatel: norwi 22. 01. 2013, 20:52:44
jenze kill funguje, takze user musi myt prava aby neco spustil
Název: Re:Skript v Cronu běží jen pod rootem
Přispěvatel: JardaP . 22. 01. 2013, 21:33:30
jenze kill funguje, takze user musi myt prava aby neco spustil

V tom je mozna problem. Bezet by to melo i bez myti prav. Co kdybyste za to cd zkusil pridat pwd >>/tmp/skript.log ? Abyste vedel, kde po tom cd vlastne jste a zdali je to tam, kde ocekavate. Mohl byste to pridat i na zacatek skript1.sh a skript1, abyste videl, jestli to drzi. A neskodilo by si tam vzdy nechat echnout nejakou znacku, aby bylo videt, kdo co psal.
Název: Re:Skript v Cronu běží jen pod rootem
Přispěvatel: norwi 22. 01. 2013, 23:41:17
urctite pridam
zatim vidim, ze se nekoretne uzvavre komunikce na portech
netsat ukakuzuje ze komunikce porad probíha, druhy server porad vysila dotazy

nevite jak se korektne ukoncuje komunikace
Název: Re:Skript v Cronu běží jen pod rootem
Přispěvatel: JardaP . 23. 01. 2013, 00:22:29
Hm, to je blbe. Ale asi to ma neco do cineni s tim, ze pouzivate kill -9. Zkuste kill -15, pak si overte, ze to skoncilo, treba v nejakem cyklu o treba peti krocich s dvouvterinovym nebo nejak inteligentne navolenym sleepem a kdyz to nevyjde, pustte na to kill -9 a pak budete muset pockat, az ty porty vyhniji, abyste mohl aplikaci znovu spustit.

O problemu s visicimi porty se tu nedavno mluvilo tady: http://forum.root.cz/index.php?topic=5510.0