[FEATURE] Replaces CRON usages by a proper systemd timer

Merge pull request #117 from HorlogeSkynet/feature/systemd_timer
This commit is contained in:
azlux 2020-07-27 13:47:17 +02:00 committed by GitHub
commit ef291999ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 46 additions and 21 deletions

View File

@ -47,7 +47,13 @@ In the file `/etc/log2ram.conf`, there are three variables:
- `ZL2R`: Enable zram compatibility (`false` by default). Check the comment on the config file. See https://github.com/StuartIanNaylor/zram-swap-config to configure a zram space on your raspberry before enable this option.
#### refresh time:
By default Log2Ram writes to the HardDisk every day. If you think this is too much, you can move `/etc/cron.daily/log2ram` in an other cron folder, or remove it if you prefer writing logs only at stop/reboot.
By default Log2Ram writes to disk every day. If you think this is too much, you can run `systemctl edit log2ram-daily.timer` and add:
```ini
[Timer]
OnCalendar=weekly
```
... or even disable it with `systemctl disable log2ram-daily.timer`, if you prefer writing logs only at stop/reboot.
### It is working?
You can now check the mount folder in ram with (You will see lines with log2ram if working)

View File

@ -23,12 +23,13 @@ rm -rf "$DESTDIR" "$OUTDIR"
## log2ram
# Create directory
install -Dm 644 "$STARTDIR/log2ram.service" "$DESTDIR/etc/systemd/system/log2ram.service"
install -Dm 644 "$STARTDIR/log2ram-daily.service" "$DESTDIR/etc/systemd/system/log2ram-daily.service"
install -Dm 644 "$STARTDIR/log2ram-daily.timer" "$DESTDIR/etc/systemd/system/log2ram-daily.timer"
install -Dm 755 "$STARTDIR/log2ram" "$DESTDIR/usr/local/bin/log2ram"
install -Dm 644 "$STARTDIR/log2ram.conf" "$DESTDIR/etc/log2ram.conf"
install -Dm 644 "$STARTDIR/uninstall.sh" "$DESTDIR/usr/local/bin/uninstall-log2ram.sh"
# cron
install -Dm 755 "$STARTDIR/log2ram.cron" "$DESTDIR/etc/cron.daily/log2ram"
# logrotate
install -Dm 644 "$STARTDIR/log2ram.logrotate" "$DESTDIR/etc/logrotate.d/log2ram"
# Build .deb

2
debian/postinst vendored
View File

@ -2,7 +2,7 @@
set -euo pipefail
systemctl daemon-reload
systemctl enable log2ram
systemctl enable log2ram.service log2ram-daily.timer
if [ "$1" == "configure" ]; then
echo "##### Reboot to activate log2ram #####"

3
debian/preinst vendored
View File

@ -1,6 +1,7 @@
#!/bin/bash
systemctl -q is-active log2ram && systemctl stop log2ram
systemctl -q is-active log2ram.service && systemctl stop log2ram.service
systemctl -q is-active log2ram-daily.timer && systemctl stop log2ram-daily.timer
rm -rf /var/hdd.log
exit 0

6
debian/prerm vendored
View File

@ -1,12 +1,12 @@
#!/usr/bin/env bash
case "$1" in
upgrade)
[ -d /run/systemd/system/ ] && systemctl stop log2ram
[ -d /run/systemd/system/ ] && systemctl stop log2ram.service log2ram-daily.timer
exit 0
;;
*)
[ -d /run/systemd/system/ ] && systemctl stop log2ram
[ -d /run/systemd/system/ ] && systemctl disable log2ram
[ -d /run/systemd/system/ ] && systemctl stop log2ram.service log2ram-daily.timer
[ -d /run/systemd/system/ ] && systemctl disable log2ram.service log2ram-daily.timer
exit 0
;;
esac

View File

@ -6,14 +6,20 @@ systemctl -q is-active log2ram && { echo "ERROR: log2ram service is still runni
# log2ram
mkdir -p /usr/local/bin/
install -m 644 log2ram.service /etc/systemd/system/log2ram.service
install -m 644 log2ram-daily.service /etc/systemd/system/log2ram-daily.service
install -m 644 log2ram-daily.timer /etc/systemd/system/log2ram-daily.timer
install -m 755 log2ram /usr/local/bin/log2ram
install -m 644 log2ram.conf /etc/log2ram.conf
install -m 644 uninstall.sh /usr/local/bin/uninstall-log2ram.sh
systemctl enable log2ram
systemctl enable log2ram.service log2ram-daily.timer
# cron
install -m 755 log2ram.cron /etc/cron.daily/log2ram
install -m 644 log2ram.logrotate /etc/logrotate.d/log2ram
# logrotate
if [ -d /etc/logrotate.d ]; then
install -m 644 log2ram.logrotate /etc/logrotate.d/log2ram
else
echo "##### Directory /etc/logrotate.d does not exist. #####"
echo "##### Skipping log2ram.logrotate installation. #####"
fi
# Remove a previous log2ram version
rm -rf /var/log.hdd

6
log2ram-daily.service Normal file
View File

@ -0,0 +1,6 @@
[Unit]
Description=Daily Log2Ram writing activities
After=log2ram.service
[Service]
ExecStart=/usr/bin/systemctl reload log2ram.service

9
log2ram-daily.timer Normal file
View File

@ -0,0 +1,9 @@
[Unit]
Description=Daily Log2Ram writing activities
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target

View File

@ -1,3 +0,0 @@
#!/usr/bin/env sh
systemctl reload log2ram

View File

@ -1,6 +1,6 @@
#!/usr/bin/env sh
if dpkg -l log2ram ; then
if dpkg -l log2ram 2> /dev/null; then
echo "Please run : apt remove log2ram"
exit 1
fi
@ -8,13 +8,12 @@ fi
if [ "$(id -u)" -eq 0 ]
then
echo "Not apt installed. Remove will continue with this script..."
service log2ram stop
systemctl disable log2ram
rm /etc/systemd/system/log2ram.service
systemctl stop log2ram.service log2ram-daily.timer
systemctl disable log2ram.service log2ram-daily.timer
rm -rf /etc/systemd/system/log2ram*
rm /usr/local/bin/log2ram
rm /etc/log2ram.conf
rm /etc/cron.daily/log2ram
rm /etc/logrotate.d/log2ram
rm -f /etc/logrotate.d/log2ram
if [ -d /var/hdd.log ]; then
rm -r /var/hdd.log