Synology NAS durch Debian Homeserver ersetzen

Warum Debian? Was muss ich vorher wissen? Wo geht's nach der Installation weiter?
Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 06.02.2020 16:28:10

Hat exim denn Vorteile gegenüber einfachen SMTP Clients wie msmtp?

Etwas einzurichten, was selbst Mails senden kann, ist wahrscheinlich ein bisschen overkill. Ich habe erst überlegt einfach einen meiner Aliasse zu nehmen bei meinem Emailprovider, aber weil man irgendwo das Passwort speichern muss, nehme ich vlt. lieber irgendeine Wegwerf-Adresse.

Benutzeravatar
Lord_Carlos
Beiträge: 5057
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Lord_Carlos » 06.02.2020 16:51:10

Ne, aber ich musste am ende nur eine config Datei anpassen.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
jph
Beiträge: 741
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von jph » 07.02.2020 12:40:13

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
06.02.2020 14:48:26
Exim ist bei Debian schon installiert. Eigentlich musst du es nur beibringen richtige emails zu versenden.
Was nicht weiter schwierig ist, wenn man den Dreh einmal raus hat.

Code: Alles auswählen

# dpkg-reconfigure exim4-config
Du wählst danach „Versand über Sendezentrale (Smarthost); keine lokale Zustellung“. Der Smarthost kann bspw. der SMTP deines Mailaccounts sein. Wie du dich bei dem authentifizierst, kannst du in https://wiki.debian.org/Exim#Smarthost_ ... entication nachlesen.

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 07.02.2020 14:27:42

Hmm irgendwie sehe ich immer noch nicht ganz durch mit exim.
Das ist ein MTA?
Letzten endes brauche ich sowas wie mailx, um Meldungen und logs aus zum Beispiel Scripten zu schicken.
Ich habe das so verstanden, dass ich dafür s-nail nutzen könnte. Wie das aber wieder mit exim zusammen arbeiten kann habe ich weder im Debian noch im arch wiki gefunden.

Ich habe den Verdacht, dass exim vlt. zu viel kann? Ich will halt keinen extra Dienst im Netzwerk anbieten oder ähnliches.

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 07.02.2020 18:19:06

Ich habe für das backup auf meinen Borg-Server schon mal ein nahezu fertiges Skript. Eigentlich fehlt zum testen nur noch die systemd units fertig zu machen und das mal mit lokalen testrepos auszuprobieren. Außerdem fehlt noch das mail Feature.

Code: Alles auswählen

#!/bin/bash
IFS=$'\t\n'

#
# Getting time stamps
#

Day="$(date '+%Y-%m-%d')"
WeekDay="$(date '+%A')"
Time="$(date '+%H:%M:%S')"
TimeStamp=$Day" "$Time
TimeStampName=$Day"T"${Time//":"/"-"}

#
# Setting Variables
#

BorgRepo="ssh://user@myserver:22/repo/path"
export BORG_PASSPHRASE="SuperSecret" #Exporting the passphrase circumvents password check during execution
SnapshotName=$TimeStampName"_borg-BackupServer"
BackupName=$TimeStampName
MountDir="/mnt/backup/BackupServer"
LogFile="backup.log" #Not saved only send via email. Filled via journalctl.

#
# Backup section
#

# Create snapshot and mount it for backup to avoid conflicts and data corruption by changing files during backup
zfs snapshot pool@${SnapshotName}
mount --bind /pool/.zfs/snapshot/$SnapshotName $MountDir

# Create archive of snapshot
borg --show-version -v create --stats --compression lz4 $BorgRepo::$BackupName $MountDir
BackupExit=$?

# Unmount and destroy snapshot
umount $MountDir
zfs destroy pool@${SnapshotName}

#
# Perform a check of repository on Mondays
#


if [ $WeekDay = "Montag" ]; then
	borg -v check $BorgRepo
fi

#
# Pruning section
#

borg -v prune --list $BorgRepo -d 14 -w 6 -m 10
PruneExit=$?

#
# Define globla exit code
#

# Use highest exit code as global exit code
GlobalExit=$(( BackupExit > PruneExit ? BackupExit : PruneExit ))

if [ ${GlobalExit} -eq 0 ]; then
	echo "Backup and Prune finished successfully."
elif [ ${GlobalExit} -eq 1 ]; then
	echo "Backup and/or Prune finished with warnings."
else
	echo "Backup and/or Prune finished with errors."
fi

#
# Report section
#

# Create a log file for this run from journalctl
journalctl --since="$TimeStamp -u backup.service | tee -i $LogFile"
# Send the log via email (Baustelle)
#mailx -a "From: "$HOST" Backup <"$HOST"@meinedomain.tld>" -s "Backup | "$HOST admin@meinedomain.tld < $LOG

export BORG_PASSPHRASE=""
exit ${GlobalExit}

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 07.02.2020 19:39:43

So mit dem folgenden Service und dem passenden Timer läuft das Testweise erst mal durch.

Code: Alles auswählen

[Unit]
Description=Test Borg Script

[Service]
Type=oneshot
ExecStart=/home/user/backup.sh

Code: Alles auswählen

[Unit]
Description=Run Test Borg Script every 10 minutes

[Timer]
OnCalendar=*:0/10
Das einzige, was ich noch nicht testen kann, ist ob die Idee mit dem mount der Snapshots so funktioniert und halt das versenden der Mail ist noch nicht implementiert.

Die Idee ist, das Skript einmal täglich frühs laufen zu lassen.
Es wird dann immer ein Snapshot des ganzen pools erstellt, der dann aus dem .zfs Ordner zum lesen gemountet wird.
Davon erstellt borg dann ein backup und lädt es per ssh auf den Backup Server.
Wenn das fertig ist, wird der Snapshot ausgehangen und gelöscht.
Immer Montags soll dann auch mal ein Check gemacht werden.
Danach läuft dann noch prune über das Repository.
Zum Abschluss werden die journalctl Einträge dieses Durchlaufs in ein logfile gepackt und per Email verschickt.

Durch den Timer sollte es auch kein Problem geben, wenn der Durchlauf länger als einen Tag dauert, was mit chron glaube ich zum Problem geworden wäre. Was mir noch nicht ganz klar ist, was passiert, wenn das Backup abbricht. Ich nehme an, ich kann die zwischenstände nicht nutzen, wenn ich ein neues Archiv anlege beim nächsten Durchlauf. Vielleicht muss man das dann noch um einen test am Anfang erweitern.

Für das Backup auf USB-HDD kann ich denke ich die Vorlage von borgbackup weitestgehend übernehmen.

Benutzeravatar
Lord_Carlos
Beiträge: 5057
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Lord_Carlos » 07.02.2020 23:16:27

Wenn du nicht die ganze Zeit Daten loescht kannst du die ZFS snapshots auch ein wenig behalten. z.B. zfs auto snapshot so einstellen das es taeglich snapshots macht, und 7 behaelt. Dann kannst du immer einfach 7 Tage zurueck gehen.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 07.02.2020 23:34:43

Das zfs-auto-snapshot möchte ich daneben laufen lassen mit den Standardregeln.
Aber für die Backups dachte ich, es wäre gut unabhängige Snapshots zu nutzen, damit sich lange Backups und das Snapshot Skript nicht in die Quere kommen.

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 19.02.2020 11:06:08

Mal ein kleines Update.
Der Server funktioniert erst mal. Ich habe leider viel Zeit damit verbracht die suboptimale Kühlung der Festplatten in meinem Gehäuse zu optimieren. Bei halber Belegung habe ich jetzt erst mal einen Zustand gefunden, der Okay ist. Heute bekomme ich noch mal Aluklebeband, damit versuche ich meine Optimierungen noch mal zu verbessern und finalisieren.

Den ZFS Pool habe ich noch nicht aufgesetzt, weil ich so viel mit den Platten rumgespielt habe.

Dafür habe ich den TVHeadend Server und easyepg schon mal laufen und funktionsfähig im Einsatz. Einzig die ganze Sleep und Wakeup Geschichte bin ich noch nicht angegangen.

Außerdem habe ich mir noch Dropbear eingerichtet, um meine Systemplatte zu entschlüsseln.

Bezüglich der Platten habe ich aktuell auch noch ein kleines Problem:
Und zwar würde ich die gerne runterfahren lassen, wenn die nicht benutzt werden. Leider funktioniert das ganze nicht wirklich, wenn das Zeitfenster größer als 20 Minuten ist. Mit hdparm -S240 gehen die Platten aus, mit hdparm -S241 schon nicht mehr.

Weil ich gelesen habe, dass SMART daran Schuld sein könnte, habe ich auch Folgendes ausprobiert: smartctl --offlineauto=off /dev/sda. Hat aber nicht geholfen.

Beim Reboot sind die Einstellungen auch weg, aber da habe ich schon gelesen, man kann eine systemd unit schreiben.

Mailx funktioniert übrigens, wenn ich s-nail installiere und einfach nur eine minimal .mailrc anlege mit dem Inhalt
account test {
set v15-compat
set from="admin <admin@provider.tld>"
set mta=smtp://user:password@smtp.provider.tld:587 smtp-use-starttls
}

Antworten