goedendag,
Ik heb een hele reeks cronjobs. nu wil ik niet van elke keer dat die draaien een mail ontvangen maar wel als er wat mis gaat.
nu heb ik cronjobs met het volgende: /usr/bin/wget -q -o en dan de opdracht.
die stuurt geen mail als goed gaat (door de -q zover ik weet).
Mara heb ook de volgende cronjob: $PHP -q $MAGE2ROOT/bin/magento import:job:run 13
Daar werkt die -q dus niet bij en stuurt me elke keer een mail (4 van dat soort cronjobs die elke 30 minuten een mail sturen).
Hoe maak ik die laatste nu zo dat hij enkel een mail stuurt als er wat misgegaan is bij verwerking?
Groet
Het gaat soms mis doordat een bestand welke verwerkt moet worden niet bestaat of corrupt is en de cron niet uitgevoerd kan worden. In eerste cronjob krijg ik dan keurig een mail. bij 2de mailt hij in alle gevallen.
[size=xsmall]Toevoeging op 05/12/2018 09:52:48:[/size]
vraag is dus misschien beter:
waarom werkt - q wel in /usr/bin/wget -q -o maar werkt die niet in $PHP -q $MAGE2ROOT/bin/magento import:job:run 13?
-q geeft alleen aan dat er geen headers worden uitgespuugd. Dat doet verder niets. Als je de output anders wilt verwerken zul je dat moeten doen als:
$PHP -q $MAGE2ROOT/bin/magento import:job:run 13 > /pad/naar/jelog. Eventueel met >> als je wilt appenden, en als je ook niets wil opslaan kun je /dev/null gebruiken als pad naar je log. Niet slim, maar het kan wel.
zet /usr/bin/wget in een shell script en roep dat shell script aan in de cron.
/usr/bin/wget (maar ook andere commands) eindigt altijd met een resultaat (exit status), zoek even op error handling in shell scripts. Op basis daarvan kan je een email sturen alleen wanneer het fout loopt.
Geen idee hoe het werkt met jou parameters maar
wget -o
-o, --output-file=FILE log messages to FILE
wget -q
-q, --quiet quiet (no output)