Skip to content

Management Commands

In addition to Django's built-in management commands, NetBox provides several commands of its own. These are run using manage.py:

cd /opt/netbox
source /opt/netbox/venv/bin/activate
python3 netbox/manage.py <command>

Run any command with --help to see its full set of arguments.

calculate_cached_counts

Force a recalculation of all cached counter fields (for example, the device count shown on a site). NetBox keeps these counters current automatically; this command is useful to repair them if they have drifted.

python3 netbox/manage.py calculate_cached_counts

nbshell

Start the Django shell with all NetBox models already imported. See NetBox Shell for details.

python3 netbox/manage.py nbshell

populate_image_sizes

Populate the cached file size for image attachments that predate the image_size field. Running this once after upgrading is recommended for deployments with many existing attachments on a remote storage backend (such as S3). It is safe to run on a live system and may be re-run; any file that cannot be read is skipped and retried on the next run.

python3 netbox/manage.py populate_image_sizes

rebuild_prefixes

Rebuild the IPAM prefix hierarchy, recalculating the depth and child counts for all prefixes.

python3 netbox/manage.py rebuild_prefixes

reindex

Reindex objects for the search backend. Pass one or more apps or models to reindex a subset; with no arguments, all models are reindexed. See Removing a Plugin for a related use.

python3 netbox/manage.py reindex [app_label[.ModelName] ...]

renaturalize

Recalculate natural ordering values for the affected models. Pass one or more app_label.ModelName arguments to limit the scope; with no arguments, all models with natural ordering fields are processed.

python3 netbox/manage.py renaturalize [app_label.ModelName ...]

runscript

Deprecation Warning

The custom scripts functionality has been deprecated beginning in NetBox v4.7, and is scheduled for removal in NetBox v5.0. This command will be removed along with it.

Run a custom script from the command line, outside the web UI or API.

python3 netbox/manage.py runscript <module.ScriptName>

rqworker

Start a background task worker to process queued jobs (provided by django-rq). At least one worker must be running for background tasks such as report and script execution, webhooks, and synchronization to be processed.

python3 netbox/manage.py rqworker

syncdatasource

Synchronize a data source from its remote upstream. Pass one or more data source names, or --all to synchronize every data source.

python3 netbox/manage.py syncdatasource <name> [<name> ...]
python3 netbox/manage.py syncdatasource --all

trace_paths

Generate any missing cable paths among all cable termination objects. This is useful after a bulk import of cabling, or to repair paths that were not generated automatically.

python3 netbox/manage.py trace_paths

webhook_receiver

Start a simple HTTP listener that prints any requests it receives. This is a debugging aid for testing webhooks: point a webhook at the listener and inspect exactly what NetBox sends. It listens on port 9000 by default; pass --port to change it and --no-headers to suppress the request headers.

python3 netbox/manage.py webhook_receiver [--port PORT] [--no-headers]