Um die Schreibvorgänge auf meiner SSD etwas zu verringern wollte ich gerne das die Logfiles in ein tmpfs geschrieben werden und ab und zu auf die Platte gesichert werden.
Dazu habe ich in der /etc/fstab ein tmpfs auf /var/log gemountet
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
Beim Herunterfahren/Reboot des Rechners wird das Logverzeichnis /var/log in ein Verzeichnis auf der Festplatte gesichert.
Beim Boot wird dann das gesicherte Verzeichnis wieder nach /var/log zurückgeschrieben.
#!/bin/bash LOG_PATH="/var/log" BACKUP_PATH="/mnt/log_backup" rsync -au --delete $LOG_PATH/ $BACKUP_PATH # Erfolg oder Fehler melden in eine separate Log-Datei if [ $? -eq 0 ]; then echo "$(date): Backup zu $BACKUP_PATH erfolgreich." >> $BACKUP_PATH/rsync_activity.log else echo "$(date): Backup zu $BACKUP_PATH fehlgeschlagen!" >> $BACKUP_PATH/rsync_activity.log fi
#!/bin/bash LOG_PATH="/var/log" BACKUP_PATH="/mnt/log_backup" rsync -au --delete $BACKUP_PATH $LOGPATH/ # Erfolg oder Misserfolg melden if [ $? -eq 0 ]; then echo "$(date): Wiederherstellung nach $LOG_PATH erfolgreich." >> $LOG_PATH/rsync_activity.log else echo "$(date): Wiederherstellung nach $LOG_PATH fehlgeschlagen!" >> $LOG_PATH/rsync_activity.log fi
[Unit] Description=Save logs from RAM-Disk to HDD DefaultDependencies=no Before=shutdown.target [Service] Type=oneshot ExecStart=/usr/local/bin/save_logs.sh RemainAfterExit=true [Install] WantedBy=halt.target reboot.target shutdown.target
[Unit] Description=Restore logs to RAM-Disk from HDD DefaultDependencies=no After=local-fs.target [Service] Type=oneshot ExecStart=/usr/local/bin/restore_logs.sh RemainAfterExit=true [Install] WantedBy=multi-user.target
systemctl daemon-reload systemctl enable log_save.service systemctl enable log_restore.service
Und in der Cron Config vom eis einen cronjob angelegt, damit die Logs immer wieder mal auf die HDD/SSD geschrieben werden.
CRON_5_NAME='Sync Logs' CRON_5_ACTIVE='yes' CRON_5_TIMES='3 18 * * *' CRON_5_USER='root' CRON_5_COMMAND='/usr/local/bin/save_logs.sh'