فهرست منبع

Adds housekeeping systemd files (#12457)

* adds housekeeping systemd files #11190

* Clean up Markdown

---------

Co-authored-by: jeremystretch <jstretch@netboxlabs.com>
Abhimanyu Saharan 2 سال پیش
والد
کامیت
25142e037a
3فایلهای تغییر یافته به همراه62 افزوده شده و 2 حذف شده
  1. 17 0
      contrib/netbox-housekeeping.service
  2. 13 0
      contrib/netbox-housekeeping.timer
  3. 32 2
      docs/administration/housekeeping.md

+ 17 - 0
contrib/netbox-housekeeping.service

@@ -0,0 +1,17 @@
+[Unit]
+Description=NetBox Housekeeping Service
+Documentation=https://docs.netbox.dev/
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+
+User=netbox
+Group=netbox
+WorkingDirectory=/opt/netbox
+
+ExecStart=/opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py housekeeping
+
+[Install]
+WantedBy=multi-user.target

+ 13 - 0
contrib/netbox-housekeeping.timer

@@ -0,0 +1,13 @@
+[Unit]
+Description=NetBox Housekeeping Timer
+Documentation=https://docs.netbox.dev/
+After=network-online.target
+Wants=network-online.target
+
+[Timer]
+OnCalendar=daily
+AccuracySec=1h
+Persistent=true
+
+[Install]
+WantedBy=multi-user.target

+ 32 - 2
docs/administration/housekeeping.md

@@ -7,7 +7,13 @@ NetBox includes a `housekeeping` management command that should be run nightly.
 * Deleting job result records older than the configured [retention time](../configuration/miscellaneous.md#job_retention)
 * Check for new NetBox releases (if [`RELEASE_CHECK_URL`](../configuration/miscellaneous.md#release_check_url) is set)
 
-This command can be invoked directly, or by using the shell script provided at `/opt/netbox/contrib/netbox-housekeeping.sh`. This script can be linked from your cron scheduler's daily jobs directory (e.g. `/etc/cron.daily`) or referenced directly within the cron configuration file.
+This command can be invoked directly, or by using the shell script provided at `/opt/netbox/contrib/netbox-housekeeping.sh`.
+
+## Scheduling
+
+### Using Cron
+
+This script can be linked from your cron scheduler's daily jobs directory (e.g. `/etc/cron.daily`) or referenced directly within the cron configuration file.
 
 ```shell
 sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
@@ -16,4 +22,28 @@ sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-hou
 !!! note
     On Debian-based systems, be sure to omit the `.sh` file extension when linking to the script from within a cron directory. Otherwise, the task may not run.
 
-The `housekeeping` command can also be run manually at any time: Running the command outside scheduled execution times will not interfere with its operation.
+### Using Systemd
+
+First, create symbolic links for the systemd service and timer files. Link the existing service and timer files from the `/opt/netbox/contrib/` directory to the `/etc/systemd/system/` directory:
+
+```bash
+sudo ln -s /opt/netbox/contrib/netbox-housekeeping.service /etc/systemd/system/netbox-housekeeping.service
+sudo ln -s /opt/netbox/contrib/netbox-housekeeping.timer /etc/systemd/system/netbox-housekeeping.timer
+```
+
+Then, reload the systemd configuration and enable the timer to start automatically at boot:
+
+```bash
+sudo systemctl daemon-reload
+sudo systemctl enable --now netbox-housekeeping.timer
+```
+
+Check the status of your timer by running:
+
+```bash
+sudo systemctl list-timers --all
+```
+
+This command will show a list of all timers, including your `netbox-housekeeping.timer`. Make sure the timer is active and properly scheduled.
+
+That's it! Your NetBox housekeeping service is now configured to run daily using systemd.