Cron vytváří prázdné logy

cron

Cron vytváří prázdné logy
« kdy: 18. 09. 2014, 19:15:50 »
Hoj v cronu spoustim tady tento script a potrebuji ukladat stdout do log souboru


#!/bin/sh

cd /home/user/data;
ix=`ps aux | grep -v grep | grep "mujscript2.py" | awk '{ print $2 }'`
if [ -z "$ix" ];
then
echo "no PID, starting.";
/usr/bin/python /home/user/data/mujscript.py
/usr/bin/python /home/user/data/mujscript2.py
fi






cron vypada takhle

0 */1 * * * sh /home/user/data/checker.sh > /home/user/data/logs/$(date +'\%d-\%b-\%Y-\%H_\%M_\%S').log



Vytvari se mi log soubory s obsahem stdout.
Ale vytvari se mi i prazdne soubory, ktere nic neobsahuji (to kdyz se nesplni podminka toho scriptu).


Da se to nejak elegantne vyresit? Aby se soubor vytvoril jen pokud je co zapsat?
Nepovazuji za reseni dodatecne kontrolovat prazdne soubory a ty mazat.

Zkousel jsem do te podminky pridat


else
>&2 echo "exists: "$ix;

To ale nepomohlo, porad mi to vytvari prazdne soubory.






Re:Cron vytváří prázdné logy
« Odpověď #1 kdy: 18. 09. 2014, 20:19:45 »
Citace od: cron kdy 18. 09. 2014, 19:15:50
Da se to nejak elegantne vyresit? Aby se soubor vytvoril jen pokud je co zapsat?
Zapisovat do logu až v tom skriptu.

cron

Re:Cron vytváří prázdné logy
« Odpověď #2 kdy: 18. 09. 2014, 20:52:08 »
Ano, takhle by se to dalo vyresit v pripade ze ten script je takto kratky.
Kdybych tam ale spoustel misto dvou dalsich skriptu treba 50, tak bych u kazdeho to presmerovani musel specifikovat :(



Re:Cron vytváří prázdné logy
« Odpověď #3 kdy: 18. 09. 2014, 21:16:40 »
Nemusel:


#!/bin/sh

cd /home/user/data;
ix=`ps aux | grep -v grep | grep "mujscript2.py" | awk '{ print $2 }'`
if [ -z "$ix" ];
then
exec > /home/user/data/logs/$(date +'\%d-\%b-\%Y-\%H_\%M_\%S').log
echo "no PID, starting.";
/usr/bin/python /home/user/data/mujscript.py
/usr/bin/python /home/user/data/mujscript2.py
fi

cron

Re:Cron vytváří prázdné logy
« Odpověď #4 kdy: 18. 09. 2014, 21:22:42 »
diky moc, tohle jsem neznal