[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. - `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: #### 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? ### It is working?
You can now check the mount folder in ram with (You will see lines with log2ram if 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 ## log2ram
# Create directory # Create directory
install -Dm 644 "$STARTDIR/log2ram.service" "$DESTDIR/etc/systemd/system/log2ram.service" 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 755 "$STARTDIR/log2ram" "$DESTDIR/usr/local/bin/log2ram"
install -Dm 644 "$STARTDIR/log2ram.conf" "$DESTDIR/etc/log2ram.conf" install -Dm 644 "$STARTDIR/log2ram.conf" "$DESTDIR/etc/log2ram.conf"
install -Dm 644 "$STARTDIR/uninstall.sh" "$DESTDIR/usr/local/bin/uninstall-log2ram.sh" install -Dm 644 "$STARTDIR/uninstall.sh" "$DESTDIR/usr/local/bin/uninstall-log2ram.sh"
# cron # logrotate
install -Dm 755 "$STARTDIR/log2ram.cron" "$DESTDIR/etc/cron.daily/log2ram"
install -Dm 644 "$STARTDIR/log2ram.logrotate" "$DESTDIR/etc/logrotate.d/log2ram" install -Dm 644 "$STARTDIR/log2ram.logrotate" "$DESTDIR/etc/logrotate.d/log2ram"
# Build .deb # Build .deb

2
debian/postinst vendored
View File

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

3
debian/preinst vendored
View File

@ -1,6 +1,7 @@
#!/bin/bash #!/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 rm -rf /var/hdd.log
exit 0 exit 0

6
debian/prerm vendored
View File

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

View File

@ -6,14 +6,20 @@ systemctl -q is-active log2ram && { echo "ERROR: log2ram service is still runni
# log2ram # log2ram
mkdir -p /usr/local/bin/ mkdir -p /usr/local/bin/
install -m 644 log2ram.service /etc/systemd/system/log2ram.service 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 755 log2ram /usr/local/bin/log2ram
install -m 644 log2ram.conf /etc/log2ram.conf install -m 644 log2ram.conf /etc/log2ram.conf
install -m 644 uninstall.sh /usr/local/bin/uninstall-log2ram.sh install -m 644 uninstall.sh /usr/local/bin/uninstall-log2ram.sh
systemctl enable log2ram systemctl enable log2ram.service log2ram-daily.timer
# cron # logrotate
install -m 755 log2ram.cron /etc/cron.daily/log2ram if [ -d /etc/logrotate.d ]; then
install -m 644 log2ram.logrotate /etc/logrotate.d/log2ram 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 # Remove a previous log2ram version
rm -rf /var/log.hdd 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 #!/usr/bin/env sh
if dpkg -l log2ram ; then if dpkg -l log2ram 2> /dev/null; then
echo "Please run : apt remove log2ram" echo "Please run : apt remove log2ram"
exit 1 exit 1
fi fi
@ -8,13 +8,12 @@ fi
if [ "$(id -u)" -eq 0 ] if [ "$(id -u)" -eq 0 ]
then then
echo "Not apt installed. Remove will continue with this script..." echo "Not apt installed. Remove will continue with this script..."
service log2ram stop systemctl stop log2ram.service log2ram-daily.timer
systemctl disable log2ram systemctl disable log2ram.service log2ram-daily.timer
rm /etc/systemd/system/log2ram.service rm -rf /etc/systemd/system/log2ram*
rm /usr/local/bin/log2ram rm /usr/local/bin/log2ram
rm /etc/log2ram.conf rm /etc/log2ram.conf
rm /etc/cron.daily/log2ram rm -f /etc/logrotate.d/log2ram
rm /etc/logrotate.d/log2ram
if [ -d /var/hdd.log ]; then if [ -d /var/hdd.log ]; then
rm -r /var/hdd.log rm -r /var/hdd.log