Skip to content

Guide

Cron Jobs

Guide 3 min read

This page explains why Hetzner Suite needs cron jobs, what each service family's sync does, and how to copy panel-friendly crontab lines from the admin suite. It is written for administrators responsible for keeping automated sync running.

Why cron jobs are required

Hetzner Cloud, Storage Box, and Dedicated resources can change state outside of WHMCS — a customer might resize a server through the Hetzner console, or a background operation started from WHMCS might take time to complete on Hetzner's side. Cron jobs keep WHMCS service records, stock/inventory data, and usage-based billing in sync with the real state of each resource.

From Addons → Hetzner Suite → Cron Jobs, copy one crontab line per service family (or the combined legacy line). Lines use an absolute path form that most hosting panels accept:

bash
*/5 * * * * /usr/bin/php -q /home/USER/public_html/modules/addons/srv_hetzner_dc/cron/cron-cloud.php # srv_hetzner_dc cloud

Cron Jobs — panel-friendly lines

Warning

Prefer the absolute php -q /full/path/to/script.php form shown in the admin UI. Do not rely on cd /path/to/whmcs && php -q modules/... — many control panels (including cPanel) paste a single command field and reject awkward schedules such as 5-59/10.

Tip

Use simple steps such as */5 or */10. When a stagger offset is set (for example Dedicated +2 minutes), the UI emits an explicit minute list (2,12,22,32,42,52) instead of unsupported range/step expressions.

What each family's cron does

Family Cron responsibilities
Hetzner Cloud Stock/availability sync for server types and locations, snapshot cache refresh, reconciliation of pending async operations (builds, rebuilds, resizes)
Storage Box Order reconciliation for pending imports and provisions, usage sync for storage consumption used in metered billing
Dedicated Servers Order reconciliation for Robot orders placed asynchronously (transaction id → live server), suspension/cancellation date tracking, usage and billing updates

Across all three families, cron activity also keeps the Core dashboard's last-sync indicators accurate.

Reviewing cron activity

The admin suite includes job cards, manual run actions, and a log viewer.

Cron jobs overview

  1. Navigate to Addons → Hetzner Suite → Cron Jobs.
  2. Adjust interval and stagger per family, then Save settings.
  3. Copy each crontab line into your server scheduler (cPanel Cron Jobs, system crontab, etc.).

Cron job detail

  1. Use Run now / Force actions when you need an immediate pass.

Cron job log viewer

  1. Open the log viewer when troubleshooting a family that shows sync pending longer than expected on the dashboard.

Troubleshooting

Problem Fix
Dashboard always shows sync pending Confirm each family crontab is scheduled and points at the absolute script path shown in the UI
Panel rejects the schedule Replace range/step forms with */N or the minute list from the UI; avoid 5-59/10
Cron run list is empty The job has never executed — verify PHP CLI path (override on Cron Jobs if the detected binary is php-fpm)
A specific family shows repeated errors Re-check that family's credentials; an expired or revoked token fails every sync pass

Next step

This completes the Core section. Continue to your chosen family's getting-started guide — Hetzner Cloud, Storage Box, or Dedicated Servers.