Skip to main content

Cron Jobs in ISPmanager 6: Task Scheduler

ISPmanager 6 · 19.04.2026 · 5 min read
Illustration for “Cron Jobs in ISPmanager 6: Task Scheduler”

Cron is the Linux task scheduler. Through ISPmanager you can add, edit, and delete cron jobs via the graphical interface without editing crontab manually.

Creating a Cron Job

Main menu → Cron → Create.

FieldDescription
UserOn whose behalf to run
Minutes0–59 or * (every minute)
Hours0–23 or *
Day of month1–31 or *
Months1–12 or *
Day of week0–7 (0,7=Sun) or *
CommandFull path to the script

Cron Job Examples

# Every hour
0 * * * * /usr/bin/php /var/www/user1/data/www/example.com/www/cron.php

# Every day at 03:00
0 3 * * * /usr/bin/php /var/www/user1/data/www/example.com/www/cleanup.php

# Every 5 minutes
*/5 * * * * /usr/bin/php /var/www/user1/data/www/example.com/www/queue.php

# WordPress WP-Cron via curl (recommended instead of wp-cron.php)
*/5 * * * * /usr/bin/curl -s https://example.com/wp-cron.php?doing_wp_cron > /dev/null
💡 For WordPress, it's recommended to disable the built-in WP-Cron (DISABLE_WP_CRON = true in wp-config.php) and run it via system cron — more reliable and faster.

WordPress Cron via System Cron

# wp-config.php
define('DISABLE_WP_CRON', true);

# Cron job (every 5 minutes)
*/5 * * * * /usr/bin/php /var/www/user1/data/www/example.com/www/wp-cron.php > /dev/null 2>&1

Logging Cron Output

# Save output to a log file
0 3 * * * /usr/bin/php /var/www/cron.php >> /var/log/mycron.log 2>&1

# Discard output
0 3 * * * /usr/bin/php /var/www/cron.php > /dev/null 2>&1
⚠️ Make sure the cron job specifies the full path to php: /usr/bin/php8.2 or /usr/bin/php. Relative paths do not work in cron.

Common Cron Errors in ISPmanager 6

SymptomCause
sh: 1: /usr/bin/php: not foundThe server has PHP multi-versioning enabled, and the required binary lives somewhere other than /usr/bin/php, for example /opt/php-8.2/bin/php
The job does not appear in the list after creationThe form only saves when you click "Ok" at the bottom; switching to another panel tab without saving discards the input
The command breaks off at a % characterAn unescaped % is read by cron as a newline — this matters for date +%Y%m%d in backup commands
No error email arrivesISPmanager 6 does not forward cron output to email by default — you must explicitly add MAILTO at the start of the command or redirect output to a file
Permission denied when editing someone else's jobAn additional panel user or reseller lacks owner-level rights on that account's cron
wp-cron.php fires twice in a rowThe cron interval overlaps with WP-Cron's internal lock TTL; stagger the schedules or add a lock file inside the script itself
The job ran, but the site shows no changeThe PHP CLI that runs cron and the PHP-FPM process serving the web use separate OPcache instances; after a cron-driven deploy you need a separate cache flush for the web side

The Cron Daemon's Own System Log

When there are many jobs and it is hard to tell which one failed, check the cron daemon's own log: it shows that a run actually happened, even if the PHP script inside failed silently with no output.

# On systems with systemd
journalctl -u cron --since today

# On systems with classic syslog
grep CRON /var/log/syslog | tail -n 50

When Cron in ISPmanager 6 Is Not the Right Tool

  • The job must run more often than once a minute — the minimum cron interval is 60 seconds regardless of the panel
  • You need a queue with retries and priorities — a persistent worker (Supervisor, a systemd unit) requires root privileges that a regular ISPmanager account does not have
  • You need to run operations with root privileges (updating system packages, working with other accounts) — only the site user's own crontab is available
  • You need a chain of dependent steps with conditional logic — cron only supports crudely chaining commands with && on one line
  • The job must be triggered by an external event (a webhook, a file change, a payment gateway notification) rather than by a schedule — cron only reacts to the clock, not to events

Verifying the Result

After creating a job, confirm it is actually running and not failing silently — a detailed walkthrough of the system logs is in the article on logs and diagnostics in ISPmanager 6, and the specifics of cron for WordPress are covered in the article on WordPress in ISPmanager 6. A simple rule: if the daemon's log has no line naming your job after three scheduled runs, the problem is not the PHP script but the crontab entry itself.

# List a specific user's system cron jobs
crontab -l -u user1

# Check the most recent script call in the domain's log
tail -n 50 /var/www/user1/data/logs/example.com.log | grep cron.php
Was this article helpful?
← Back to Knowledge Base Ask Support