Spouštění .sh skriptu v /etc/cron.d

host

Spouštění .sh skriptu v /etc/cron.d
« kdy: 20. 08. 2013, 09:32:28 »
Dobrý den,
potřebuji spouštět automaticky skript v /etc/cron.d/ čas spouštění, práva spouštění skriptu mám nastavené správně. Nejsem si jistý cestou kde je soubor uložen. Cesta k souboru je ok, ale nejsem si jistý, jestli by v té cestě nemělo ještě něco být....
5 */1 * * * root /opt/udrzba/deletecyklusmail.sh
když spustím toto v termínálu /opt/udrzba/deletecyklusmail.sh  tak to normálně funguje. Ale v kronu se to nespustí. Kron jsem samozřejmě restartoval. /etc/init.d/cron restart a deletecyklusmail.sh má práva 755 Nevíte kde je problém??


DK

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #1 kdy: 20. 08. 2013, 09:36:06 »
Kód: [Vybrat]
5 */1 * * * sh /opt/udrzba/deletecyklusmail.sh
a mimoto staci pouzit jenom crontab -e

host

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #2 kdy: 20. 08. 2013, 09:50:33 »
udělal jsem a spustil se mi textový editor a v něm crontab... co tím chtěl básník říct????

DK

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #3 kdy: 20. 08. 2013, 09:53:09 »
upravit, ulozit a nic se restartovavat nemusi

host

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #4 kdy: 20. 08. 2013, 09:55:25 »
aha tak to je fajn... nj jenže co upravit.... ještě mě napadlo že tam jsem měl prázdné řádky na konci crontabu tak jsem to odstranil tak by to snad mohlo pomoct...


DK

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #5 kdy: 20. 08. 2013, 10:08:42 »
tak znovu
Kód: [Vybrat]
5 */1 * * * sh /opt/udrzba/deletecyklusmail.sh je spravny prikaz

root je uzivatel, ne prikaz, .sh je treba spoustet pomoci prikazu sh (pripadne ./)

host

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #6 kdy: 20. 08. 2013, 11:15:47 »
Tak to co si psal výše nefunguje...

Ed

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #7 kdy: 20. 08. 2013, 11:22:08 »
Tazatel ten cron radek daval do /etc/cron.d/... -> proto tam musel byt uzivatel (treba root). Cron se pri tom restartovat mimochodem nemusi.

Shellove skripty se obvykle pousti stejne jako jine programy, pokud maji na zacatku shebang - (treba #!/bin/bash ) a maji nastavene spousteni (chmod +x /opt/udrzba/deletecyklusmail.sh ).

Mozny zdroj problemu je take cesta - je mozna zapotrebi na zacatek toho cron souboru dat neco jako PATH=/bin:/usr/bin:/usr/local/bin

host

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #8 kdy: 20. 08. 2013, 12:14:04 »
zase nic :-/

jvb

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #9 kdy: 20. 08. 2013, 12:47:55 »
Podívej se do logů, jestli tam nenajdeš příčinu. Jinak dál zkus postupovat tak, že tam dáš nějaký elementární příkaz, třeba "touch /tmp/ahoj". Pokud se neprovede, máš blbě nastavení, pokud jo, máš asi problém ve scriptu. Zkus výstup scriptu přesměrovat do souboru (>>).

Jo a */1 nahraď za *. Je to zbytečný.

host

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #10 kdy: 20. 08. 2013, 13:24:51 »
V klasickém crontabu se to spustí bez problému a udělá to to co má ale v /etc/cron.d/udrzba to enfunguje

pavele

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #11 kdy: 20. 08. 2013, 17:12:46 »
Odstraň ze jména toho skriptu tečku, nech tam jen "deletecyklusmail".

B

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #12 kdy: 20. 08. 2013, 18:17:14 »
V klasickém crontabu se to spustí bez problému a udělá to to co má ale v /etc/cron.d/udrzba to enfunguje

Nejspíš to bude tím že v klasickém crontabu se vše spouští s právy uživatele který ten crontab vlastní, ale v /etc/cron.d je třeba uvést s právy kterého uživatele se to má spustit - to se píše jako šestý parametr, takže syntaxe je trochu jiná...

host

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #13 kdy: 21. 08. 2013, 09:35:31 »
Dobrý den,
tak vyzkoušel jsem všechny postupy které jste mi radili.
1. odstranil jsem .sh z názvu skriptu
2. práva uživatele jsem měl nastaveno na root tzn. šestý parametr
3. zkoušel jsem výstup skriptu přesunout do souboru pomocí >> vůbec se nic nevytvořilo ani když jsem třeba dal postqueue -p >>/home/uzivatel/pokus.txt nevytvořilo se to ani při /usr/sbin/postqueue -p....

Napadá mě jestli není spojitost v editaci protože já to edituji klasickým mceditem a pak restartnu službu... u crontabu není problém, ale u souborů ve složce /etc/cron.d se vůbec nic neděje....

host

Re:Spouštění .sh skriptu v /etc/cron.d
« Odpověď #14 kdy: 21. 08. 2013, 09:38:47 »
když jsem se koukl do syslogu tak to napsalo toto
Aug 21 09:08:37 chef cron[22749]: Error: bad username; while reading /etc/cron.d/udrzba
Co to chce???