Da es hier https://de.manjaro.org/index.php?topic=1766.0 schon sehr gut angenommen wurde, findet ihr auch hier das Script:
da ich schon seit langem meine Backups per rsync auf eine externe USB Platte durchführe, habe ich jetzt ein Script geschrieben, das mit einem einfachen Auswahlmenü folgende Sicherungen mit rsync mit folgendem Ablauf erlaubt:
Medium wird gemountet
Prüfung, ob Medium erfolgreich gemountet wurde
Prüfung, ob die Testdatei auf dem Medium vorhanden wurde
Auswahlmenü für die Sicherung
  Sicherung komplett System
  Sicherung /home
  Sicherung komplett System und separat /home
  Abbruch
Unmounten des Sicherungsmediums
Alle Sicherungsparameter können am Beginn des Scripts entsprechend gesetzt werden.
Das Script muss per chmod ausführbar gemacht werden. Aufruf erfolgt mit sudo ...
Das Script ist durch die wenigen Variablen
Code: Alles auswählen
#Sicherungsparameter setzen
UUID='adcd639e-589c-4ea4-829b-87d334b67a12' #UUID des Sicherungsmediums - UUID feststellbar durch sudo blkid
BackupMntDir='/mnt' # Einhängepunt für BackupDrive
ToHomeBackupDir='/backup' #Zielverzeichnis für Home Backup
ToSystemBackupDir='/full_system_backup' #Zielverzeichnis für Systembackup
TestFile=backup_hdd.txt #Textdatei auf der Backup HD zum Testen - Datei manuell angelegt
Die UUID findet Ihr heraus mit
Code: Alles auswählen
sudo blkid
Code: Alles auswählen
/dev/sda1: UUID="8058363558362A74" TYPE="ntfs" PARTUUID="62bf8bb1-01"
/dev/sda2: LABEL="Boot" UUID="9A56B7C456B79F85" TYPE="ntfs" PARTUUID="62bf8bb1-02"
/dev/sda3: UUID="90FA8EBDFA8E9F5A" TYPE="ntfs" PARTUUID="62bf8bb1-03"
/dev/sda4: LABEL="Manjaro64" UUID="f8fcfdec-f283-4949-af91-4bf71e1a36bf" TYPE="ext4" PARTUUID="62bf8bb1-04"
/dev/sdb1: LABEL="DATA" UUID="3A9E14A89E145F27" TYPE="ntfs" PARTUUID="d8811f7c-01"
/dev/sdd1: UUID="adcd639e-589c-4ea4-829b-87d334b67a12" TYPE="ext4" PARTUUID="d1369cb6-01"
Code: Alles auswählen
adcd639e-589c-4ea4-829b-87d334b67a12
Im folgenden noch einmal das komplette Backupscript zum Kopieren, jedoch unter Benutzung der UUID des Speichermediums.
Code: Alles auswählen
#!/bin/bash
# Mit diesem Script kann man mit rsync folgende Sicherungen erstellen:
# Systemsicherung komplett entsprechend rsync Ach Wiki
# Sicherung nur /Home
# Kombinierte Sicherung - erst System komplett und dann /home
#
#
#Ablauf:
#Vorgaben für Backup in Variablen festlegen
#mount Externe HD
#Prüfung, ob Mount erfolgreich
#Prüfung, ob Testdatei auf der ext. HD vorhanden ist - Bewusst auf BackupHD angelegt
#Auswahl auf Backup-Umfang
#rsync Backuplauf je nach Auswahl
#Wartezeit
#umount Externe HD
#Sicherungsparameter setzen
UUID='adcd639e-589c-4ea4-829b-87d334b67a12' #UUID des Sicherungsmediums - UUID feststellbar durch sudo blkid
BackupMntDir='/mnt' # Einhängepunt für BackupDrive
ToHomeBackupDir='/backup' #Zielverzeichnis für Home Backup
ToSystemBackupDir='/full_system_backup' #Zielverzeichnis für Systembackup
TestFile=backup_hdd.txt #Textdatei auf der Backup HD zum Testen - Datei manuell angelegt
clear
#Verzeichnis mounten und prüfen, ob es funktioniert hat
mount /dev/disk/by-uuid/$UUID $BackupMntDir
if [ $? -eq 0 ]; then
  echo ---
  echo ---
  echo "Backup HD erfolgreich gemountet"
  echo ---
  echo ---
else
  echo ---
  echo ---
  echo "Backup HD NICHT gemountet"
  echo ---
  echo ---
  exit
fi
#countdown
printf "\nPrüfung ob Testdatei vorhanden in: "
TIMER=3
until [ $TIMER = 0 ]; do
  printf "$TIMER..."
  TIMER=`expr $TIMER - 1`
  sleep 1
done
echo ---
#Prüfung, ob die testdatei vorhanden ist
cd $BackupMntDir
if [ -e $TestFile ]; then
  echo ---
  echo ---
  echo "$UUID Erfolgreich eingehängt - TestDatei $TestFile vorhanden"
  echo ---
  echo ---
else
  echo ---
  echo ---
  echo "$UUID wurde nicht einhangen - TestDatei $TestFile fehlt"
  echo ---
  echo ---
  #countdown
  TIMER=3
  printf "\nKurze Pause: "
  until [ $TIMER = 0 ]; do
printf "$TIMER..."/mnt/backup
TIMER=`expr $TIMER - 1`
sleep 1
  done
echo ---
  exit
fi
echo ---
echo --- Auswahl Backup - Umfang ---
echo ---
#Auswahlmenü
PS3='Backup Auswahl: '
options=("System" "Home" "System und Home" "Quit")
select opt in "${options[@]}"
do
  case $opt in
    "System")
      echo ---
      echo ---
  echo ---
  #countdown
  TIMER=3
  printf "\n System Backup start in : "
  until [ $TIMER = 0 ]; do
printf "$TIMER..."
TIMER=`expr $TIMER - 1`
sleep 1
  done
  echo ---
  rsync -aAXv /* $BackupMntDir$ToSystemBackupDir --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*",/lost+found} --delete --log-file=rsynclog_full.txt
  #rsync Backup zurücksichern:
  #rsync -aAXv $BackupMntDir$ToSystemBackup / --delete
  echo ---
  echo ---
  echo --- Beendet System Backup ---
  echo ---
  echo ---
      break
      ;;
    "Home")
  echo ---
  echo ---
      echo ---
  echo ---
  #countdown
  TIMER=3
  printf "\nHome Backup start in: "
  until [ $TIMER = 0 ]; do
printf "$TIMER..."
TIMER=`expr $TIMER - 1`
sleep 1
  done
  echo ---
  echo ---
  echo ---
  rsync -av /home $BackupMntDir$ToHomeBackupDir --delete --log-file=rsynclog_home.txt
ÂÂ
  echo ---
  echo ---
  echo Beendet Home Backup
  echo ---
  echo ---
      break
      ;;
    "System und Home")
  echo ---
  echo ---
      echo "Backup System und Home läuft"
      echo ---
  echo ---
  echo ---
  echo ---
  #countdown
  TIMER=3
  printf "\nSystem Backup start in: "
  until [ $TIMER = 0 ]; do
printf "$TIMER..."
TIMER=`expr $TIMER - 1`
sleep 1
  done
  echo ---
   rsync -aAXv /* $BackupMntDir$ToSystemBackupDir --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*",/lost+found} --delete --log-file=rsynclog_full.txt
  #rsync Backup zurücksichern:
  #rsync -aAXv $BackupMntDir$ToSystemBackupDir / --delete
  echo ---
  echo ---
  echo --- Beendet System Backup ---
  echo ---
  echo ---
  #countdown
  TIMER=3
  printf "\nHome Backup start in: "
  until [ $TIMER = 0 ]; do
printf "$TIMER..."
TIMER=`expr $TIMER - 1`
sleep 1
  done
  echo ---
  echo ---
  echo ---
  rsync -av /home $BackupMntDir$ToHomeBackupDir --delete --log-file=rsynclog_home.txt
  echo ---
  echo ---
  echo Beendet Home Backup
  echo ---
  echo ---
  break
      ;;
    "Quit")
  echo --
  echo "Backup abgebrochen"
  echo ---
      break
      ;;
    *) echo Falsche Eingabe;;
  esac
done
echo ---
#countdown
TIMER=10
printf "\nBackuplauf beendet in: "
until [ $TIMER = 0 ]; do
  printf "$TIMER..."
  TIMER=`expr $TIMER - 1`
  sleep 1
done
umount -l $BackupMntDir
echo ---
echo --- Fertig ---
echo ---
"System" sichert alles incl. /home nach
"Home" sicher nur /home nachToSystemBackupDir='/full_system_backup'
System + Home sichert in einem Rutsch zuerst wie oben beschrieben "System" und anschließend wie oben beschrieben "Home". Die Sicherungdateien von /home sind also zweimal vorhanden.ToHomeBackupDir='/backup'
Gruß
caho