Add cron script to compress and clean up logs on syslog hosts
authorJulien Cristau <jcristau@debian.org>
Thu, 14 Mar 2019 13:16:02 +0000 (14:16 +0100)
committerJulien Cristau <jcristau@debian.org>
Thu, 14 Mar 2019 13:16:02 +0000 (14:16 +0100)
modules/syslog_ng/files/loggers-cron [new file with mode: 0644]
modules/syslog_ng/manifests/init.pp

diff --git a/modules/syslog_ng/files/loggers-cron b/modules/syslog_ng/files/loggers-cron
new file mode 100644 (file)
index 0000000..bdeee76
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# DO NOT MODIFY
+# This file is maintained in dsa-puppet
+
+(
+  if ! flock -x -n 200 ; then exit; fi
+
+  if [ "$1" = "-v" ]; then
+    verbose="-v"
+  else
+    verbose=""
+  fi
+  cpus=$(cat /proc/cpuinfo | grep '^processor[[:space:]]' | wc -l)
+
+  find /var/log/hosts -type f ! -name '*.gz' -a ! -name '*.xz' -mtime +2 -print0 | xargs --no-run-if-empty -0 -n 4 -P "$cpus" xz $verbose
+  find /var/log/hosts -type f -mtime +50 -print0 | xargs --no-run-if-empty -0 rm $verbose
+  find /var/log/hosts -type d -mtime +2 -empty -print0 | xargs --no-run-if-empty -0 rmdir $verbose
+) 200< /var/log/hosts
index ead0954..3489fb4 100644 (file)
@@ -28,6 +28,13 @@ class syslog_ng {
                        source  => 'puppet:///modules/syslog_ng/syslog-ng.logrotate.loggers',
                        require => Package['syslog-ng']
                }
+               file { '/etc/cron.daily/local-handle-loghost-logs':
+                       ensure => absent,
+               }
+               file { '/etc/cron.daily/puppet-handle-loghost-logs':
+                       source => 'puppet:///modules/syslog_ng/loggers-cron',
+                       mode   => '0555',
+               }
        }
        # while syslog-ng breaks on boot