diff --git a/config.php.default b/config.php.default index 2da0514e0d..c8ac44a2bf 100755 --- a/config.php.default +++ b/config.php.default @@ -47,6 +47,9 @@ $config['poller-wrapper']['alerter'] = FALSE; # Uncomment the next line to disable daily updates #$config['update'] = 0; +# Number in days of how long to keep old rrd files. 0 disables this feature +$config['rrd_purge'] = 0; + # Uncomment to submit callback stats via proxy #$config['callback_proxy'] = "hostname:port"; diff --git a/daily.php b/daily.php index 4184b20cff..2e6ae27597 100644 --- a/daily.php +++ b/daily.php @@ -31,6 +31,17 @@ if ($options['f'] === 'update') { exit(0); } +if ($options['f'] === 'rrd_purge') { + if (is_numeric($config['rrd_purge']) && $config['rrd_purge'] > 0) { + $cmd = "find ".$config['rrd_dir']." -mtime +".$config['rrd_purge']." -print -exec rm -Rf {} \;"; + $purge = `$cmd`; + if (!empty($purge)) { + echo "Purged the following RRD files due to old age (over ".$config['rrd_purge']." days old)"; + echo $purge; + } + } +} + if ($options['f'] === 'syslog') { if (is_numeric($config['syslog_purge'])) { $rows = dbFetchRow('SELECT MIN(seq) FROM syslog'); diff --git a/daily.sh b/daily.sh index de298c7b9c..a3bb7f0185 100755 --- a/daily.sh +++ b/daily.sh @@ -76,7 +76,7 @@ else status_run 'Fetching notifications' "$0 notifications" ;; cleanup) - # DB-Cleanups + # Cleanups php daily.php -f syslog php daily.php -f eventlog php daily.php -f authlog @@ -86,6 +86,7 @@ else php daily.php -f purgeusers php daily.php -f bill_data php daily.php -f alert_log + php daily.php -f rrd_purge ;; submodules) # Init+Update our submodules diff --git a/doc/Support/Configuration.md b/doc/Support/Configuration.md index a2699620b4..323aa319cb 100644 --- a/doc/Support/Configuration.md +++ b/doc/Support/Configuration.md @@ -496,10 +496,14 @@ $config['eventlog_purge'] = 30; $config['authlog_purge'] = 30; $config['perf_times_purge'] = 30; $config['device_perf_purge'] = 30; +$config['rrd_purge'] = 90;// Not set by default ``` -This option will ensure data within LibreNMS over 1 month old is automatically purged. You can alter these individually, +These options will ensure data within LibreNMS over X days old is automatically purged. You can alter these individually, values are in days. +> NOTE: Please be aware that `$config['rrd_purge']` is _NOT_ set by default. This option will remove any old data within +the rrd directory automatically - only enable this if you are comfortable with that happening. + #### Syslog options ```php