diff options
-rw-r--r-- | Makefile | 21 | ||||
-rw-r--r-- | X/logrotate/config.d/config | 5 | ||||
-rw-r--r-- | logrotate/config | 5 | ||||
-rw-r--r-- | logrotate/systemd/user/logrotate.service | 10 | ||||
-rw-r--r-- | logrotate/systemd/user/logrotate.timer | 10 |
5 files changed, 49 insertions, 2 deletions
@@ -475,6 +475,16 @@ install-less: less/less mkdir -p -- $(XDG_CONFIG_HOME)/less cp -p -- less/less $(XDG_CONFIG_HOME)/less/key +install-logrotate: + mkdir -p -- $(XDG_CONFIG_HOME)/logrotate \ + $(XDG_CONFIG_HOME)/logrotate/config.d + cp -- logrotate/config $(XDG_CONFIG_HOME)/logrotate + -command -v systemctl >/dev/null 2>&1 \ + && mkdir -p -- $(XDG_CONFIG_HOME)/systemd/user \ + && cp -p -- logrotate/systemd/user/* $(XDG_CONFIG_HOME)/systemd/user \ + && systemctl --user enable logrotate.timer \ + && systemctl --user start logrotate.timer + install-mail: cp -p -- mail/signature $(HOME)/.signature @@ -648,13 +658,20 @@ install-wget: install-sh mkdir -p -- $(XDG_CACHE_HOME)/wget $(XDG_CONFIG_HOME)/wget cp -p -- wget/wgetrc $(XDG_CONFIG_HOME)/wget/wgetrc -install-x: X/xsession check-xsession +install-x: X/xsession check-xsession install-logrotate mkdir -p -- \ $(HOME)/.xsession.d \ - $(HOME)/.Xresources.d + $(HOME)/.Xresources.d \ + $(XDG_CONFIG_HOME)/log/xsession cp -p -- X/xsession $(HOME)/.xsession cp -p -- X/Xresources $(HOME)/.Xresources cp -p -- X/Xresources.d/* $(HOME)/.Xresources.d + cp -p -- X/logrotate/config.d/* $(XDG_CONFIG_HOME)/logrotate/config.d + touch -- $(XDG_CONFIG_HOME)/log/xsession/errors.log + chmod -- 0600 $(XDG_CONFIG_HOME)/log/xsession/errors.log + if [ -e $(HOME)/.xsession-errors ] && ! [ -h $(HOME)/.xsession-errors ] ; then \ + mv -- $(HOME)/.xsession-errors $(XDG_CONFIG_HOME)/log/xsession/errors.log ; \ + fi install-yt-dlp install-youtube-dl: mkdir -p -- $(XDG_CONFIG_HOME)/yt-dlp diff --git a/X/logrotate/config.d/config b/X/logrotate/config.d/config new file mode 100644 index 00000000..c0b1b51b --- /dev/null +++ b/X/logrotate/config.d/config @@ -0,0 +1,5 @@ +~/.config/log/xsession/errors.log { + copytruncate + daily + rotate 30 +} diff --git a/logrotate/config b/logrotate/config new file mode 100644 index 00000000..5a703a46 --- /dev/null +++ b/logrotate/config @@ -0,0 +1,5 @@ +compress +create 0600 +delaycompress + +include ~/.config/logrotate/config.d diff --git a/logrotate/systemd/user/logrotate.service b/logrotate/systemd/user/logrotate.service new file mode 100644 index 00000000..aeb17f7c --- /dev/null +++ b/logrotate/systemd/user/logrotate.service @@ -0,0 +1,10 @@ +[Unit] +Description=user log rotation +OnFailure=notify-email@%n + +[Service] +Type=oneshot +ConfigurationDirectory=%p +StateDirectory=%p +ExecStart=/usr/sbin/logrotate --state=%S/%p/status -- %E/%p/config +TimeoutStartSec=20m diff --git a/logrotate/systemd/user/logrotate.timer b/logrotate/systemd/user/logrotate.timer new file mode 100644 index 00000000..077aeac9 --- /dev/null +++ b/logrotate/systemd/user/logrotate.timer @@ -0,0 +1,10 @@ +[Unit] +Description=user log rotation schedule + +[Timer] +OnBootSec=1h +OnUnitActiveSec=6h +RandomizedDelaySec=5m + +[Install] +WantedBy=timers.target |