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

This command was introduced in NetBox v4.6.4.

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

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]