Ganz zufällig habe ich heute bemerkt, dass meine varlog-Service-Unit nix gescheites (um nicht Mist zu sagen) macht .... und seit Stunden komme ich nicht dahinter, warum das so ist
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Verkürzt auf den wichtigen Kern sieht das Script wie folgt aus:
Code: Alles auswählen
NewVarLogDir="/media/var/$HOSTNAME/log"
case $action in
start)
if [ -z "$(grep /var/log /proc/mounts)" ]; then # already mounted?
[ -d /var/TrueLogDir ] || mkdir -p /var/TrueLogDir
chmod 755 /var/TrueLogDir; chown root:root /var/TrueLogDir
mount --bind /var/log /var/TrueLogDir
mount --bind $NewVarLogDir /var/log
chmod 755 /var/log; chown root:root /var/log
cp -Rpu /var/TrueLogDir /var/log >/dev/null 2>&1
fi
;;
exit 0
2. über-mounten von /var/log durch Harddisk-Dir
3. kopieren des "geretteten" Inhaltes von /var/log auf das neue Harddisk->/var/log
Gestartet wird das Script via Service-Unit:
Code: Alles auswählen
[Unit]
Description=Start/stop logfile saving, redirect to HardDisk or tmpfs
Before=systemd-journald-dev-log.socket umount.target shutdown.target
Conflicts=shutdown.target
[Service]
Type=forking
Restart=no
TimeoutSec=5min
KillMode=process
RemainAfterExit=yes
ExecStart=/usr/local/bin/varlog start
ExecStop=/usr/local/bin/varlog stop
[Install]
WantedBy=multi-user.target
Code: Alles auswählen
journalctl --header | grep "File Path\|state" -i
File Path: /run/log/journal/078b3b81f451482fbdd572b3b015e2e5/system.journal
State: ONLINE
File Path: /var/log/journal/078b3b81f451482fbdd572b3b015e2e5/system.journal
State: OFFLINE
![Hail :hail:](./images/smilies/icon_hail.gif)
Interessant ist noch dieser Effekt, zur Laufzeit (bei diesen falschen Gegebenheiten) ein Restart des Journals....
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Code: Alles auswählen
systemctl restart systemd-journald
journalctl --header | grep "File Path\|state" -i
File Path: /var/log/journal/078b3b81f451482fbdd572b3b015e2e5/system.journal
State: ONLINE