Exemples de pings de tâches cron pour chaque planificateur

Mis à jour le octobre 18, 2026 4 min de lecture

Chaque moniteur de tâche cron a sa propre URL de ping, affichée sur sa page. Remplacez https://app.uptimecheck.com/api/hb/your-token ci-dessous par la vôtre. Pour créer le moniteur, voyez comment surveiller une tâche cron.

Les URL

…/your-token : la tâche s’est exécutée et a réussi.…/your-token/start : la tâche a démarré. Vous voyez les durées d’exécution, et une exécution qui dépasse le Maximum run time déclenche une alerte.…/your-token/fail : la tâche a échoué. Vous êtes alerté immédiatement au lieu d’attendre l’échéance.…/your-token/0 à /255 : le code de sortie. 0 signifie succès, toute autre valeur un échec.

GET, POST et HEAD fonctionnent tous, et la réponse est OK. Le corps d’un POST est conservé comme sortie de la tâche et affiché avec les échecs et dans l’alerte. Nous lisons jusqu’à 64 ko et gardons le début et la fin, 10 000 caractères au total. Un corps plus volumineux est refusé et le ping est perdu : envoyez donc la fin du journal, comme ci-dessous. Le jeton dans l’URL fait office de secret : ne le laissez pas apparaître dans des journaux publics.

Un script d’encapsulation pour tout planificateur

Ce script exécute une commande, signale son démarrage, son code de sortie et les 60 derniers ko de sortie, puis transmet le code de sortie. Enregistrez-le sous /usr/local/bin/with-ping et exécutez chmod +x dessus.

#!/bin/sh
# with-ping URL COMMAND…: runs COMMAND and reports it to Uptimecheck
url= »$1″; shift
curl -fsS -m 10 –retry 3 -o /dev/null « $url/start »
log=$(mktemp)
« $@ » > « $log » 2>&1
code=$?
tail -c 60000 « $log » | curl -fsS -m 10 –retry 3 –data-binary @- -o /dev/null « $url/$code »
rm -f « $log »
exit $code

crontab

# Ping when the job succeeds
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 –retry 3 -o /dev/null https://app.uptimecheck.com/api/hb/your-token

# Or report start, exit code and output with the script above
0 3 * * * /usr/local/bin/with-ping https://app.uptimecheck.com/api/hb/your-token /usr/local/bin/backup.sh

Donnez au moniteur la même planification et le Time zone dans lequel tourne la crontab, souvent UTC.

Planificateur Laravel

Laravel envoie lui-même les pings. Dans routes/console.php (Laravel 11 et versions ultérieures ; avant cela, les mêmes méthodes sur $schedule dans app/Console/Kernel.php) :

use Illuminate\Support\Facades\Schedule;

Schedule::command(« backup:run »)
->dailyAt(« 03:00 »)
->pingBefore(« https://app.uptimecheck.com/api/hb/your-token/start »)
->pingOnSuccess(« https://app.uptimecheck.com/api/hb/your-token »)
->pingOnFailure(« https://app.uptimecheck.com/api/hb/your-token/fail »);

Un échec est une commande qui se termine avec un code de sortie non nul. La planification suit le fuseau horaire de l’application, sauf si vous ajoutez ->timezone() ; indiquez le même sur le moniteur.

Kubernetes CronJob

Stockez l’URL de ping comme secret avec kubectl create secret generic uptimecheck –from-literal=ping-url=https://app.uptimecheck.com/api/hb/your-token. L’image doit contenir curl.

apiVersion: batch/v1
kind: CronJob
metadata:
name: nightly-backup
spec:
schedule: « 0 3 * * * »
timeZone: « Europe/Stockholm »
concurrencyPolicy: Forbid
jobTemplate:
spec:
backoffLimit: 0
template:
spec:
restartPolicy: Never
containers:
– name: backup
image: registry.example.com/backup:1.4
env:
– name: PING_URL
valueFrom:
secretKeyRef:
name: uptimecheck
key: ping-url
command: [« /bin/sh », « -c »]
args:
– |
curl -fsS -m 10 –retry 3 -o /dev/null « $PING_URL/start »
/app/backup.sh > /tmp/out.log 2>&1
code=$?
tail -c 60000 /tmp/out.log | curl -fsS -m 10 –retry 3 –data-binary @- -o /dev/null « $PING_URL/$code »
exit $code

Si le pod ne démarre jamais, par exemple parce que l’image ne peut pas être récupérée, aucun ping n’arrive et le moniteur déclenche une alerte à l’échéance. timeZone nécessite Kubernetes 1.27 ou une version ultérieure.

GitHub Actions

on:
schedule:
– cron: « 0 3 * * * »

jobs:
nightly:
runs-on: ubuntu-latest
env:
PING_URL: ${{ secrets.UPTIMECHECK_PING_URL }}
steps:
– uses: actions/checkout@v4
– run: curl -fsS -m 10 –retry 3 -o /dev/null « $PING_URL/start » || true
– run: ./scripts/nightly.sh
– if: success()
run: curl -fsS -m 10 –retry 3 -o /dev/null « $PING_URL »
– if: failure()
run: curl -fsS -m 10 –retry 3 -o /dev/null « $PING_URL/fail »

Enregistrez l’URL de ping comme secret du dépôt UPTIMECHECK_PING_URL. Donnez au moniteur le fuseau horaire du workflow, UTC par défaut. GitHub peut lancer les exécutions planifiées en retard lorsqu’il est surchargé : prévoyez donc un Grace period généreux, par exemple 30 minutes.

Timer systemd

# /etc/systemd/system/backup.service
[Unit]
Description=Nightly backup

[Service]
Type=oneshot
ExecStart=/usr/local/bin/with-ping https://app.uptimecheck.com/api/hb/your-token /usr/local/bin/backup.sh

# /etc/systemd/system/backup.timer
[Unit]
Description=Run the nightly backup

[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true

[Install]
WantedBy=timers.target

Activez-le avec sudo systemctl daemon-reload et sudo systemctl enable –now backup.timer. OnCalendar suit le fuseau horaire du serveur.

Planificateur de tâches Windows

# C:\Scripts\backup-with-ping.ps1
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$ping = « https://app.uptimecheck.com/api/hb/your-token »
try { Invoke-RestMethod -Uri « $ping/start » -TimeoutSec 10 | Out-Null } catch {}
$output = & « C:\Scripts\backup.cmd » 2>&1 | Out-String
$code = $LASTEXITCODE
if ($output.Length -gt 30000) { $output = $output.Substring($output.Length – 30000) }
Invoke-RestMethod -Uri « $ping/$code » -Method Post -Body $output -TimeoutSec 10 | Out-Null
exit $code

Enregistrez-le pour qu’il s’exécute chaque nuit à 03:00, dans PowerShell en tant qu’administrateur :

$action = New-ScheduledTaskAction -Execute « powershell.exe » -Argument « -NoProfile -ExecutionPolicy Bypass -File C:\Scripts\backup-with-ping.ps1 »
$trigger = New-ScheduledTaskTrigger -Daily -At 3am
Register-ScheduledTask -TaskName « Nightly backup » -Action $action -Trigger $trigger -User « SYSTEM » -RunLevel Highest

Le Planificateur de tâches utilise le fuseau horaire de l’ordinateur ; indiquez le même sur le moniteur. En savoir plus sur les expressions cron et la surveillance des tâches cron.

Cet article vous a-t-il été utile ?

Essayez-le dans votre propre espace de travail

Essai gratuit de 14 jours · Puis gratuit pour 5 moniteurs · Sans carte bancaire

Toujours bloqué ?

Écrivez à support@uptimecheck.com et nous vous répondrons sous 24 heures.

Vous automatisez ? La Référence de l’API couvre l’API REST, les webhooks, les pings de tâches cron et le MCP.