Fixed some bugs and added a new feature

In this version I fixed a bug with the .zshrc or .bashrc and translated the comment lines into English. In further versions I'll translate the whole program into English.
Also I added a new 'feature' that allows the install script to create the additional files automatically.
This commit is contained in:
PhotoLinux 2021-04-08 08:35:44 +02:00
parent 2afe07e1ad
commit cb6b2ecf61
5 changed files with 33 additions and 28 deletions

Binary file not shown.

View file

@ -1,2 +0,0 @@
#!/bin/sh

View file

@ -1,3 +1,19 @@
# Backuppy # Backuppy
No backup - no pity. So that this is not the case, you make backups. Backuppy tries to simplify this. No backup - no pity. So that this is not the case, you make backups. Backuppy tries to simplify this.
Name: Backuppy
Description: Make daily backups with Backuppy to avoid losing your data.
Usage: start it with: 'backuppy'
Author: Joël Schurter
Licence: GPL3
More infos: see constants and readme.md
# ToDo
- translate Backuppy to English
- make a graphical installer & Tool
# Dependencies
rsync - 'sudo apt install' rsync or 'sudo pacman -S rsync' # because Backuppy makes its bakups with rsync

Binary file not shown.

41
install.sh Normal file → Executable file
View file

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# Variablen # Variables
mydir=$PWD mydir=$PWD
# Intro # Intro
@ -10,38 +10,29 @@ echo -e "Der Installer wird dich nun einige Dinge abfragen, um dein Backup-Skrip
sleep 2 sleep 2
# Installer # Installer
# fragt ab, ob der User eine Logdatei mit allen Fehlermeldungen drin haben möchte und ob da auch das Datum des Backupstarts und -Ende drin stehen soll # creates the file 'Backuppy.sh'
echo -e "möchtest du eine Logdatei haben, in welche Backuppy dann das Datum vom Backup-Start/-Ende und allfällige Fehlermeldungen eintragen wird? [J/N] \n Standardmässig ist eine Logdatei aktiviert." touch Backuppy.sh
read logfile echo "#!/bin/bash" >> Backuppy.sh
chmod +x Backuppy.sh
if [ $logfile = "J" ]; then # which Rsync options are available and which one you want to use
echo -e "Super! Standardmässig existiert die Logdatei, also muss ich nichts ändern. \n"
sleep 2
fi
if [ $logfile = "N" ]; then
echo -e "okay, dann lösche ich nun die standardmässig vorhandene Logdatei. \n"
rm Backup.log
sleep 2
fi
# welche Rsync-Optionen zur Verfügung stehen und welche man benutzen möchte
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" 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 sleep 2
# fragt, ob man Dateien/Verzeichnisse vom Backup ausschliessen will und erstellt im Falle von Ja eine Exclude Datei # 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]" 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 read exclude
if [ $exclude = "J" ]; then 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" 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 sleep 2
fi fi
if [ $exclude = "N" ]; then if [ $exclude = "N" ]; then
echo -e "Gut, dann lösche ich die exclude.txt Datei, da du sie ja nicht brauchst. \n" echo -e "Gut, dann erstelle ich die Datei 'exclude.txt' gar nicht erst, da du sie ja nicht brauchst. \n"
rm exclude.txt rm exclude.txt
sleep 2 sleep 2
fi fi
# Fragt das Quellverzeichnis, welches gesichert werden soll, ab # Asks for the source directory which should be saved
echo -e "Nun kommen wir zu einem der wichtigesten Teile der Installation von Backuppy:" echo -e "Nun kommen wir zu einem der wichtigesten Teile der Installation von Backuppy:"
sleep 1 sleep 1
echo -e "Welches Verzeichnis möchtest du sichern (z.B. das Homeverzeichnis)? Bitte gib einen absoluten Pfad (z.B. '/home/username/') an." echo -e "Welches Verzeichnis möchtest du sichern (z.B. das Homeverzeichnis)? Bitte gib einen absoluten Pfad (z.B. '/home/username/') an."
@ -49,30 +40,30 @@ 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" 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 sleep 2
# fragt das Zielverzeichnis, auf welchem das Backup gesichert werden soll, ab # 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." 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 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" 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 sleep 2
# Programmeintrag in die .bashrc oder .zshrc # alias entry in .bashrc or .zshrc
#zshrc #zshrc
echo "$SHELL" echo "$SHELL"
if [ $SHELL = "/usr/bin/zsh" ]; then if [ $SHELL = "/usr/bin/zsh" ]; then
echo "alias backuppy='sudo $mydir/backuppy.sh'" >> ~/.zshrc echo "alias backuppy='sudo $mydir/Backuppy.sh'" >> ~/.zshrc
fi fi
#bashrc #bashrc
if [ $SHELL = "/usr/bin/bash" ]; then if [ $SHELL = "/usr/bin/bash" ]; then
echo "alias backuppy='sudo $mydir/backup-tool.sh'" >> ~/.bashrc echo "alias backuppy='sudo $mydir/Backuppy.sh'" >> ~/.bashrc
fi fi
# trägt alle Informationen zusammen und erstellt so den rsync-Befehl. # 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" 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 sleep 2
echo -e "rsync -aqp --exclude-from=$mydir/exclude.txt $sourcedir $targetdir \n" echo -e "rsync -aqp --exclude-from=$mydir/exclude.txt $sourcedir $targetdir \n"
sleep 2 sleep 2
# eintragen der Configs
# enter the rsync command in Backuppy.sh
echo "rsync -aqp --exclude-from=$mydir/exclude.txt $sourcedir $targetdir" >> Backuppy.sh echo "rsync -aqp --exclude-from=$mydir/exclude.txt $sourcedir $targetdir" >> Backuppy.sh
# Outro # Outro