Command reference
Auto-generated by
scripts/build-reference.py. Do not edit by hand.
| Command | Purpose | Documented in |
|---|---|---|
autosymlink |
Root worker for native files/private symlinking - global modes DRY (default) / report / live / batch / --batch-if-clean, plus narrow single-site mode --site <url> [--account <oNNN>] [--apply] [--force-unshare] used by the Provision install/clone/migrate hooks; crash-safe conversion, logs to /var/log/boa/autosymlink.log | /operating/files-symlinking/tools-reference |
clearwebbans |
One-shot idempotent recovery from web-IDS false positives - removes permanent 'Brute force Web Server' csf.deny entries and temporary 80/443 bans, clears web.log and scan_nginx archive logs plus the nginx-native IPv6 web-ban store (web6.tempban), resets the scan_nginx byte-offset to end of access.log, regenerates both nginx geo-ban sets (IPv4 via nginx_deny.sh, IPv6 via nginx_deny6.sh); SSH/FTP bans untouched; supports --dry-run; lock /run/clearwebbans.lock | /operating/abuse-guard/operations |
dhcpfix |
Safe-on-live-servers DNS recovery tool - installs the /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate no-op hook (so dhclient can never overwrite resolv.conf on lease renewal) and writes the canonical resolv.conf once (127.0.0.1 plus 1.1.1.1/8.8.8.8/9.9.9.9 fallbacks), leaving it mutable; no lease release/renew, no dhclient.conf rewrites; _DEBUG_MODE=YES env gives verbose [dhcpfix] output | /operating/troubleshooting/dns-resolver |
fix-drupal-site-symlinks.sh |
Hardened NOPASSWD sudo entry point (/usr/local/bin, 700 root) letting aegir/oN users trigger the root-level single-site conversion - accepts only --site=<url> [--account=<oNNN>] [--force-unshare], fail-closed token validation, cannot reach autosymlink's global batch/live modes; the documented manual recovery for incomplete clone unshares | /operating/files-symlinking/tools-reference |
floodreport |
Read-only summariser of Abuse Guard i18n-flood activity from /var/xdrago/monitor/log/i18n_flood.log and the per-trip snapshot dir - per-vhost event counts, timeline, merged attack profile and findings (SATURATION / LOAD-PAUSE / SHED / DETECT); options --days N, --hours N, --data DIR, --json | /operating/abuse-guard/operations |
hosting-dispatch |
Centralized command that dispatches the registered queue processors (tasks, cron, task_gc) | /developing/aegir-apis/hosting-api |
hosting-import |
Import an existing back-end context name into the front end | /developing/aegir-apis/hosting-api |
hosting-pause |
Prepare the hostmaster site to be migrated to a new platform | /developing/aegir-apis/hosting-api |
hosting-resume |
Complete the migration of the hostmaster site to a new platform | /developing/aegir-apis/hosting-api |
hosting-setup |
Set up initial configuration such as the cron entry for the queue dispatcher | /developing/aegir-apis/hosting-api |
hosting-task |
Execute a specific queue item (one Aegir task node) | /developing/aegir-apis/hosting-api |
loadguard |
Standalone load-policy CLI (verbs enforce | ok-tasks | ok-spiders | run-tasks) installed at /opt/local/bin/loadguard but NOT wired into any shipped crontab - manual-only placeholder orchestrator; second.sh remains the live load-control enforcement path; kill filter targets only processes older than _KILL_MIN_RUNTIME (900 s default) | /operating/monitoring/load-control |
loadreport |
Read-only /proc load profiler answering which recurring BOA agents drive idle load - modes live (default), --json, --log (append daily JSONL history), --data (summarise an off-node corpus); header shows the box's live monitor-throttle class; cron-logged every 30 min at idle priority | /operating/monitoring/loadreport |
migratefs |
Operator-only relocation of account static/files stores and shared /data/disk/arch onto the single attached /mnt filesystem, symlinked back (<mount>/files/<oN>/static/files and <mount>/files/system/arch) - DRY plan by default, --apply to perform; options --target <mount>, --account <oN> (implies skipping arch), --no-arch, --yes, --grace <sec> (default 15); refuses to run with more than one /mnt mountpoint; never scheduled/automated | /operating/migration-cloning/migratefs-storage-relocation |
owl.sh |
Nightly maintenance orchestrator (/var/xdrago/owl.sh, replaces daily.sh) - freezes run state into /run/night/run.env and dispatches the night/ workers (night.inc.sh, 10-account.sh, 20-sites.sh, 90-global-post.sh); launched from root crontab at 04:15; optional parallel account fan-out via _NIGHT_PARALLEL/_NIGHT_MAX_PARALLEL; per-account logs /var/log/boa/daily/acct-<user>-<NOW>.log; xoct/xcopy disable toggle /var/xdrago/.owl.sh.off; skips entirely on /root/.proxy.cnf or /root/.pause_heavy_tasks_maint.cnf boxes | /operating/monitoring/nightly-owl |
provision-backup |
Generate a backup tarball of DB, files and config | /developing/aegir-apis/provision-api |
provision-clone |
Clone a site to a new name on the same platform | /developing/aegir-apis/provision-api |
provision-delete |
Backup and remove a site, or remove an empty platform | /developing/aegir-apis/provision-api |
provision-deploy |
Re-deploy a backup tarball with pre and post upgrade hooks | /developing/aegir-apis/provision-api |
provision-disable |
Disable a running site by swapping its vhost for a disabled redirect | /developing/aegir-apis/provision-api |
provision-dlock |
Lock a platform's local (vendor) Drush - thin wrapper that auto-fixes the platform root and delegates to the canonical lock path used by Platform Verify; detection-based idempotent (re-running in the locked state is a clean no-op) | /developing/aegir-apis/provision-api |
provision-dunlock |
Unlock a platform's local Drush before vdrush/composer work; idempotent, and Verify/upgrade re-locks all platforms automatically | /developing/aegir-apis/provision-api |
provision-enable |
Re-enable a disabled site | /developing/aegir-apis/provision-api |
provision-import |
Detect existing site directories on a platform and register them as Aegir site nodes | /developing/aegir-apis/provision-api |
provision-install |
Install a new Drupal site (DB, files, vhost, install profile) | /developing/aegir-apis/provision-api |
provision-lock |
Lock a platform against new site creation | /developing/aegir-apis/provision-api |
provision-login-reset |
Generate a one-time admin-login URL for the site | /developing/aegir-apis/provision-api |
provision-migrate |
Move a site to a different platform (used for Drupal-version upgrades) | /developing/aegir-apis/provision-api |
provision-restore |
Revert a site to a previous backup tarball | /developing/aegir-apis/provision-api |
provision-save |
Save a context to disk (used internally by other commands) | /developing/aegir-apis/provision-api |
provision-stats |
Return Drupal stats such as user count and post count | /developing/aegir-apis/provision-api |
provision-unlock |
Unlock a platform so new sites can be created again | /developing/aegir-apis/provision-api |
provision-verify |
Re-emit Nginx vhost and settings.php from current Aegir context (idempotent) | /developing/aegir-apis/provision-api |
symlinkinfo |
Read-only query of one or more sites' files-symlink and archive history from autosymlink logs plus the live filesystem - reports conversions, State NOW (active/disabled/deleted/partial), Store NOW and every archive event; options --logs-only, --fs-only, --log-dir DIR, --disk-root DIR | /operating/files-symlinking/tools-reference |
updatesymlinks |
Root wrapper around autosymlink with queue pausing, locking, load guards and email - 'updatesymlinks --auto-fix' (gated by _AUTOSYMLINK_NIGHTLY=YES) pauses the Aegir queue, waits _AUTOSYMLINK_PAUSE_GRACE (240 s default), then runs the batch-if-clean apply; '--orphan-report' (gated by _ORPHAN_FILES_REPORT=YES) is read-only and never pauses tasks; argless run = legacy full manual mode; '--debug|-d' explains why a run did nothing; cron line 47 0-5,22,23 * | /operating/files-symlinking/nightly-automation |