Hem / Dokumentation / Cron-jobb
Push-notiser för cron-jobb
Ett cron-jobb som misslyckas tyst är en säkerhetskopia du inte har. Lägg till en curl-rad i din crontab så skickar Pling resultatet till din iPhone i samma stund som ett jobb avslutas eller misslyckas. Ingen agent krävs för detta, bara Plings HTTP-API och den curl du redan har.
Pinga när ett jobb är klart (och när det misslyckas)
Den enklaste formen postar meddelandet som begärans brödtext till /api/push/YOUR_TOKEN. Använd && för lyckat och || för misslyckat:
0 3 * * * /usr/local/bin/backup.sh \
&& curl -sf https://api.plingpush.com/api/push/YOUR_TOKEN -d "Backup finished" \
|| curl -sf https://api.plingpush.com/api/push/YOUR_TOKEN -d "Backup FAILED"
Avisera endast vid fel
Om gröna körningar ska vara tysta behåller du bara ||-grenen och höjer prioriteten:
30 2 * * * /usr/local/bin/db-dump.sh || \
curl -sf -X POST https://api.plingpush.com/api/push \
-H "Content-Type: application/json" \
-d '{"token":"YOUR_TOKEN","title":"DB dump failed","message":"check db-dump.sh on web-01","priority":"high"}'
En återanvändbar shell-funktion
Lägg detta i ett skript som du source:ar, och anropa sedan pling varifrån som helst. Ange PLING_TOKEN högst upp i crontab så att cron kan se det:
pling() {
curl -sf -X POST "https://api.plingpush.com/api/push" \
-H "Content-Type: application/json" \
-d "{\"token\":\"$PLING_TOKEN\",\"title\":\"$1\",\"message\":\"${2:-}\",\"priority\":\"${3:-normal}\"}" >/dev/null
}
# usage
long-running-job; pling "Job done" "exit $?"
Enradare med GET-formen
För de mest minimala uppsättningarna kan du skicka allt som frågeparametrar, ingen JSON eller headers:
curl -s "https://api.plingpush.com/api/push/YOUR_TOKEN?title=Backup&message=done&priority=high"
Vanliga frågor
Hur får jag bara en push när cron-jobbet misslyckas?
Kedja curl med ||: your-job || curl .... Skalet kör bara delen efter || när kommandot avslutas med en annan kod än noll, så du blir pingad vid fel och förblir tyst vid framgång.
Kräver detta Pling-värdagenten?
Nej. Att skicka en push är ett vanligt HTTPS-anrop, så vilken maskin som helst med curl fungerar. Värdagenten är separat och lägger till live mätvärden och fjärrschemalagda kommandon, men den krävs inte bara för att skicka aviseringar.
Cron ser inte min token. Varför?
Cron körs med en minimal miljö och laddar inte din shell-profil. Ange token i själva crontab (PLING_TOKEN=... högst upp) eller läs den från en fil i kommandot, i stället för att förlita dig på ~/.bashrc.
Fungerar detta på macOS?
Ja. Samma crontab-rad fungerar på macOS. För jobb som hanteras av launchd anropar du samma curl i slutet av ditt skript.
Fler recept: GitHub Actions · Python · fullständig API-referens