Fórum Root.cz
Hlavní témata => Software => Téma založeno: cron 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.
-
Da se to nejak elegantne vyresit? Aby se soubor vytvoril jen pokud je co zapsat?
Zapisovat do logu až v tom skriptu.
-
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 :(
-
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
-
diky moc, tohle jsem neznal