Compare commits

..

No commits in common. "master" and "0.0.2" have entirely different histories.

View File

@ -1,91 +0,0 @@
#!/bin/bash
#Backupskript - Backup with rsync and ssh
#Version: 0.1. (2019-12-17)
#
### Konfigurationen
## Ordner müssen mit / enden.
#Verzeichnis des Skriptes finden
PFAD=$(dirname "$(readlink -e "$0")");
HOST=`hostname`;
#SSH (key file based login required)
SSH_TARGET="domain.local";
SSH_USER="sshuser";
SSH_DIR="/directory/";
#Ursprungsverzeichnis des Backup
SOURCE=(` cat "${PFAD}/backup_dirs.conf" `);
#Pfad zu Datei mit auszuschließenden Dateien/Ordnern
EXCLUDE=${PFAD}"/backup_excl.conf";
#Pfad zu Logdatei
LOG_FILE=${PFAD}"/backup_ext_"${HOST}".log";
#Pfad zu Lock-Datei
LOCK_FILE=${PFAD}"/backup_ext_"${HOST}".lock";
###Skript beginnt, unterhalb dieser Zeile nichts ändern
NOW_START=$(/bin/date +%Y%m%d-%H%M%S);
##Test Log/Lock-Datei
if [ -e ${LOCK_FILE} ]; then
NOW_MSG=$(/bin/date +%Y%m%d-%H%M%S);
`echo ${NOW_MSG}": Backup läuft bereits. Breche ab." >> ${LOG_FILE}`;
unset NOW_MSG;
exit;
else
touch ${LOCK_FILE};
fi
if [ ! -f ${LOG_FILE} ];then
touch ${LOG_FILE};
fi
##Funktionen
#Log und Notify-Nachricht
notify_log() {
NOW_MSG=$(/bin/date +%Y%m%d-%H%M%S);
if [ "${LOG_FINISH}" ]; then
`echo ${NOW_MSG}": "${NOTIFY_LOG_MSG} | mail -s "[VOLMAR]: Backup nach nc.hw12.org erfolgreich" tba@timaba.de`;
unset LOG_FINISH;
fi
`echo ${NOW_MSG}": "${NOTIFY_LOG_MSG} >> ${LOG_FILE}`;
unset NOTIFY_LOG_MESSAGE;
unset NOW_MSG;
}
#Lock-Datei löschen und Skript beenden
lock_delete_end() {
rm ${LOCK_FILE};
exit;
}
#Prüfen ob bereits Backups existieren
SSH_LOGIN="${SSH_USER}@${SSH_TARGET}";
if [ "${SSH_DIR}" ]; then
LASTBACKUP=`ssh ${SSH_LOGIN} ls -d ${SSH_DIR}[[:digit:]]* | /usr/bin/sort -r | /usr/bin/head -1 `;
NOTIFY_LOG_MSG="Letztes Backup [${SSH_TARGET}]: "${LASTBACKUP};
notify_log;
fi
# Hardlinks definieren, wenn vorheriges Backup gefunden.
if [ "${LASTBACKUP}" ]; then
INC="--link-dest="${LASTBACKUP};
fi
#Neuen Ordner anlegen
`ssh ${SSH_LOGIN} mkdir -p ${SSH_DIR}${NOW_START}`;
##rsync
EXCLUDIRS="--exclude-from="${EXCLUDE};
for SOURCE in "${SOURCE[@]}"
do
START_BACKUP="rsync ${EXCLUDIRS} ${INC} -avze ssh ${SOURCE[@]} ${SSH_LOGIN}:${SSH_DIR}${NOW_START} ";
`echo ${START_BACKUP}`;
done
NOTIFY_LOG_MSG="Backup beendet.";
LOG_FINISH="1";
notify_log;
lock_delete_end;