41 lines
1.8 KiB
Bash
41 lines
1.8 KiB
Bash
## rcloner.sh
|
|
## Allgemeiner Cloner, der ein Verzeichnis mit einem Repo synchronisiert,
|
|
## dabei Dateien, die gelöscht oder überschrieben werden sollen archiviert
|
|
## und das Archiv packt.
|
|
|
|
########## 1 Einstellungen ##########
|
|
REPO="gdrive2" # Bezeichnung des rclone-Repos, Muss bereits angelegt worden sein
|
|
REPO_DIR="tmp/1" # Verzeichnis auf dem Repo, in das die Dateien gesichert werden sollen
|
|
QUELLE="$HOME/Dokumente" # Quell-Verzeichnis
|
|
ARCHIV_DIR="Archiv" # Archiv-Verzeichnis auf dem Repo
|
|
ARCHIV="$(date +%Y-%m-%d-%H-%M)" # Archiv-Zielverzeichnis
|
|
LOGBUCH="$HOME/Dokumente/log.log" # Datei, in die die Logs geschrieben werden
|
|
LOGLEVEL="INFO" # Loglevel
|
|
# Nur letztes Log erhalten
|
|
rm $LOGBUCH
|
|
touch $LOGBUCH
|
|
|
|
########## 2 Synchronisieren ##########
|
|
echo "---- Synchronisieren ----"
|
|
echo "Archiv: $ARCHIV_DIR/$ARCHIV"
|
|
rclone sync -P --log-level=$LOGLEVEL "$QUELLE/" "$REPO:/$REPO_DIR/" --backup-dir="$REPO:/$ARCHIV_DIR/$ARCHIV" --log-file=$LOGBUCH
|
|
echo "ERR: $?"
|
|
echo "" >>$LOGBUCH
|
|
echo "------------------------------------------------------------" >>$LOGBUCH
|
|
|
|
########## 3 Archiv packen ##########
|
|
echo "---- Packen ----"
|
|
rclone archive create -P --log-level=$LOGLEVEL "$REPO:/$ARCHIV_DIR/$ARCHIV/" "$REPO:/$ARCHIV_DIR/$ARCHIV.zip" --log-file=$LOGBUCH
|
|
echo "ERR: $?"
|
|
echo "" >>$LOGBUCH
|
|
echo "------------------------------------------------------------" >>$LOGBUCH
|
|
|
|
########## 4 Archiv-Verzeichnis löschen ##########
|
|
echo "---- Archiv-Verzeichnis löschen ----"
|
|
rclone purge -P --log-level=$LOGLEVEL "$REPO:/$ARCHIV_DIR/$ARCHIV/" --log-file=$LOGBUCH
|
|
echo "ERR: $?"
|
|
echo "" >>$LOGBUCH
|
|
echo "------------------------------------------------------------" >>$LOGBUCH
|
|
echo "" >>$LOGBUCH
|
|
|