#!/bin/bash # Variables mydir=$PWD # Intro echo -e "\n Danke, dass du Backuppy nutzt, um deine Backups zu erstellen! \n" sleep 2 echo -e "Der Installer wird dich nun einige Dinge abfragen, um dein Backup-Skript an deine Anforderungen anzupassen. \n" sleep 2 # Installer # creates the file 'Backuppy.sh' touch Backuppy.sh echo "#!/bin/bash" >> Backuppy.sh chmod +x Backuppy.sh # which Rsync options are available and which one you want to use echo -e "rsync bietet verschiedene Optionen an, um das Ganze jedoch zu vereinfachen, habe ich die Optionen -a, -q und -p aktiviert. \n Wenn du mehr einstellen willst, kannst du das in der Datei 'Backuppy.sh' machen. \n" sleep 2 # asks if you want to exclude files/directories from backup and creates an exclude file in case of Yes echo -e "Nun muss ich noch wissen, ob du ein oder mehrere Dateien/Verzeichnisse vom Backup ausschliessen möchtest. Dann kannst du das in der 'exclude.txt' anpassen. \n Dort kannst du dann im Format '/Verzeichnis' '/Datei.txt' Verzeichnisse und Dateien ausschliessen.\n Möchtest du Dateien/Verzeichnisse ausschliessen oder nicht? [J/N]" read exclude if [ $exclude = "J" ]; then echo -e "Perfekt, dann kannst du nach der Fertigstellung der Installation von Backuppy deine auszuschliessenden Dateien/Verzeichnisse in der Datei 'exclude.txt eintragen. \n" touch exclude.txt sleep 2 fi if [ $exclude = "N" ]; then echo -e "Gut, dann erstelle ich die Datei 'exclude.txt' gar nicht erst, da du sie ja nicht brauchst. \n" rm exclude.txt sleep 2 fi # Asks for the source directory which should be saved echo -e "Nun kommen wir zu einem der wichtigesten Teile der Installation von Backuppy:" sleep 1 echo -e "Welches Verzeichnis möchtest du sichern (z.B. das Homeverzeichnis)? Bitte gib einen absoluten Pfad (z.B. '/home/username/') an." read sourcedir echo -e "du hast folgenden Quellpfad eingetippt: $sourcedir wenn dieser Pfad nicht stimmen sollte, dann passe ihn in der Datei 'backuppy.sh' an" sleep 2 # fasks for the destination directory in which the backup should be saved echo -e "Nun muss ich noch wissen, wo Backuppy dein Backup ablegen soll, das Zielverzeichnis also. \n Bitte tippe dieses gewissenhaft und auf die Weise wie beim Quellverzeichnis ein." read targetdir echo -e "du hast folgenden Zielpfad eingetippt: $targetdir wenn dieser Pfad nicht stimmen sollte, dann passe ihn in der Datei 'backuppy.sh' an" sleep 2 # alias entry in .bashrc or .zshrc #zshrc echo "$SHELL" if [ $SHELL = "/usr/bin/zsh" ]; then echo "alias backuppy='sudo $mydir/Backuppy.sh'" >> ~/.zshrc fi #bashrc if [ $SHELL = "/usr/bin/bash" ]; then echo "alias backuppy='sudo $mydir/Backuppy.sh'" >> ~/.bashrc fi # collects all the information needed to execute the rsync command and creates it. echo -e "Nun sind wir fast am Ende des Installers angelangt. Ich erstelle nun den rsync-Befehl für dich und zeige ihn dir nachher nochmal. \n Wenn dir da etwas auffallen sollte, brich den Installer einfach ab und fange nochmal von Vorne an. \n Achtung: ich empfehle dir, Backuppy in diesem Fall nochmal komplett neu zu installieren. \n" sleep 2 echo -e "rsync -aqp --exclude-from=$mydir/exclude.txt $sourcedir $targetdir \n" sleep 2 # enter the rsync command in Backuppy.sh echo "rsync -aqp --exclude-from=$mydir/exclude.txt $sourcedir $targetdir" >> Backuppy.sh # Outro echo -e "Perfekt, jetzt sind wir fertig. Nun kannst du Backuppy im Terminal mit dem Befehl 'backuppy' starten. Möglicherweise musst du dann noch dein Passwort eintippen, damit Backuppy ordnungsgemäss arbeiten kann."