Zum Inhalt

rsync zu Synology und mit einem YubiKey vereinfachen und absichern

Im 👉 letzten Beitrag habe ich beschrieben, wie man mit einem Shell-Skript eine Datensicherung von einem Mac mit dem Tool rsync auf ein Synology NAS erstellt.

Mit einem YubiKey lässt sich die Authentifizierung am Synology sehr einfach durch rsync durchführen. Das Mounten des freigegebenen Synology Ordners auf dem Mac ist nicht mehr erforderlich. rsync erhält direkten Zugriff auf die Synology durch den auf dem Hardwaretoken hinterlegten Key, natürlich nach Eingabe die korrekten PINs.

rsync -avn -e 'ssh -p 22' /home/benutzer/Documents/ benutzersynology@192.168.179.123:/var/services/homes/benutzersynology/Documents

Im Vergleich zum vorherigen Skript, verbleibt nur der Abschnitt "Check Synology Availability" erhalten.

Zu erwähnen ist, dass die Option --iconv=UTF8,UTF8-MAC einen Fehler aufwirft und deshalb entfernt wurde.

Gib mir gerne einen Kaffee ☕ aus ❗️

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj

Das Skript lässt sich dadurch um einige Zeilen verkürzen.

#!/usr/bin/env bash

# The script is designed to be used with Apple`s Mac OS X

# Mount shared Synology folder on Mac OS X (= local client) on temp folder on Desktop
# Use login credentials stored in Apple`s own password manager
# Copy folders and files via RSYNC

# Inspired by FAUN`s script :-)
# https://gist.github.com/faun/1c0ffb639b4ba419d07f

# LOGFILE location
LOGFILE="${HOME}/rsync/airbackupyubikey-to-synology-documents-"$(date +%Y-%m-%d_%H-%M-%S)".log"

touch ${LOGFILE}
exec 1> ${LOGFILE} 

# Script name
SCRIPTNAME=$(basename -- "$0")
echo "SCRIPTNAME = ${SCRIPTNAME}" >&1

# Working Directory = Location of Shell Script
SCRIPTLOCATION=`pwd`
echo "SCRIPTLOCATION = ${SCRIPTLOCATION}" >&1


# Stop the script from continuing if there's an error
#set -e

# Remote file user
# User with permission to access Synology drive folder
REMOTE_USER='benutzersynology'

# Remote file server
# IP Address, URL, etc. = Synology identifier
REMOTE_SERVER='192.168.179.123'


# Check Synology Availability
# If Synology is not pingable, script will stop
echo "$(date +%Y-%m-%d_%H-%M-%S) - Check Synology Availability - Send PING" >&1
echo "Synology Address = ${REMOTE_SERVER}" >&1

ping -c1 ${REMOTE_SERVER} >&1
if [ $? -eq 0 ]
  then 
    echo "$(date +%Y-%m-%d_%H-%M-%S) - Synology available - continue" >&1
  else
    echo "$(date +%Y-%m-%d_%H-%M-%S) - Synology NOT available - STOPP Script" >&1
    echo "$(date +%Y-%m-%d_%H-%M-%S) - BACKUP Failed" >&1
    exit 1
fi



#####################
# RSYNC Section
#####################

###
# 1st Backup Folder Definition
###
# Source
# What folder should be synced to Synology
SOURCE1="${HOME}/Documents/"

# Target Directory On Synology
TARGET1="${REMOTE_USER}@${REMOTE_SERVER}:/var/services/homes/benutzersynology/Documents"

# Exclude from RSYNC file
# Path to your exclude file 
# normale the same as the script location
#EXCLUDEFILE="${SCRIPTLOCATION}/rsync-macos-excludefile"

# BACKUP Directory
# Into this directory all files are copied which are deleted during the rsync run by the option --delete.
# This option creates a high system load and a very long runtime of the script.
BACKUPDIRECTORY="${HOME}/rsync/"

echo "$(date +%Y-%m-%d_%H-%M-%S) - Start 1st RSYNC Process" >&1

# Comment to display variable in LOGFILE
echo "SOURCE1 = ${SOURCE1}" >&1
echo "TARGET1 = ${TARGET1}" >&1
#echo "EXCLUDEFILE = ${EXCLUDEFILE}" >&1
echo "BACKUPDIRECTORY = ${BACKUPDIRECTORY}" >&1

rsync -avhbP -e 'ssh -p 22' --stats --delete --log-file=${LOGFILE} --backup-dir=${BACKUPDIRECTORY} ${SOURCE1} ${TARGET1}



# Delete files in ${BACKUPDIRECTORY} on local client older than
find ${BACKUPDIRECTORY}* -mtime +7 -exec rm -r {} \; >&1

# Delete empty folders on local client older than
find ${BACKUPDIRECTORY}* -empty -type d -delete >&1


exit 0

Skript mit Mausklick starten

Mit Apple's Automator kann ein Programm für das Skript erstellt werden und mit einem Mausklick gestartet werden.

YubiKey Informationen

Informationen wie ein YubiKey einzurichten ist und die Synology NAS entsprechend konfiguriert werden muss, finden sich auf der 👉 Themenseite YubiKey hier im Blog.

Gib mir gerne einen Kaffee ☕ aus ❗️

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj

Source

Photo by Aneta Pawlik on Unsplash