upload historical files
This commit is contained in:
parent
81d27ff2d8
commit
11dc78fba2
89
backup.sh
Executable file
89
backup.sh
Executable file
@ -0,0 +1,89 @@
|
||||
#!/bin/bash
|
||||
#Backupskript - Local backup with rsync for small server
|
||||
#Version: 0.0.2 (2019-01-12)
|
||||
#
|
||||
### Konfigurationen
|
||||
## Ordner müssen mit / enden.
|
||||
#Verzeichnis des Skriptes finden
|
||||
PFAD=$(dirname "$(readlink -e "$0")");
|
||||
HOST=`hostname`;
|
||||
|
||||
#Ursprungsverzeichnis des Backup
|
||||
SOURCE=(` cat "${PFAD}/dirlist.conf" `);
|
||||
|
||||
#Pfad zu Datei mit auszuschließenden Dateien/Ordnern
|
||||
EXCLUDE=${PFAD}"/excludes";
|
||||
|
||||
#Pfad zu Logdatei
|
||||
LOG_FILE="/var/log/backup/backup_"${HOST}".log";
|
||||
|
||||
#Pfad zu Lock-Datei
|
||||
LOCK_FILE=${PFAD}"/backup_"${HOST}".lock";
|
||||
|
||||
#Zielpfad des Backup
|
||||
DEST_PATH="/mnt/md0/backups/pax/";
|
||||
|
||||
###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 "PAX: Backup erfolgreich" pax+root@hw12.org`;
|
||||
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.
|
||||
if [ "${DEST_PATH}" ]; then
|
||||
LASTBACKUP=`ls -d ${DEST_PATH}[[:digit:]]* | /usr/bin/sort -r | /usr/bin/head -1 `;
|
||||
NOTIFY_LOG_MSG="Letztes Backup: "${LASTBACKUP};
|
||||
notify_log;
|
||||
fi
|
||||
|
||||
# Neuen Ordner anlegen.
|
||||
DESTINATION=${DEST_PATH}${NOW_START};
|
||||
`mkdir -p ${DESTINATION}`;
|
||||
|
||||
# Hardlinks definieren, wenn vorheriges Backup gefunden.
|
||||
if [ "${LASTBACKUP}" ]; then
|
||||
INC="--link-dest=${LASTBACKUP}"
|
||||
fi
|
||||
|
||||
# Rsync aufrufen.
|
||||
EXCLUDIRS="--exclude-from="${EXCLUDE};
|
||||
for SOURCE in "${SOURCE[@]}"
|
||||
do
|
||||
END="rsync -az ${EXLUDIRS} ${INC} ${SOURCE[@]} ${DESTINATION}";
|
||||
${END};
|
||||
done
|
||||
|
||||
NOTIFY_LOG_MSG="Backup beendet.";
|
||||
LOG_FINISH="1";
|
||||
notify_log;
|
||||
lock_delete_end;
|
||||
6
dirlist.conf
Executable file
6
dirlist.conf
Executable file
@ -0,0 +1,6 @@
|
||||
/etc
|
||||
/var/www
|
||||
/opt
|
||||
/var/lib/mysql
|
||||
/mnt/md0/nextcloud
|
||||
|
||||
Loading…
Reference in New Issue
Block a user