Advertisement
IssouLinux

Script backup with Rsync

May 9th, 2021 (edited)
1,176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.27 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3.  
  4. # Vérifier si un HDD est monté sur /media/seifer
  5. if [ -d "/media/seifer" ]; then
  6.     # Liste des HDD montés
  7.     hdd_list=$(ls /media/seifer | grep '^HDD')
  8.  
  9.     # Vérifier si des HDD sont présents
  10.     if [ -n "$hdd_list" ]; then
  11.         # Choix du premier HDD trouvé
  12.         first_hdd=$(echo "$hdd_list" | head -n 1)
  13.         HDD="$first_hdd"
  14.         echo -e "\e[31;1m"HDD trouvé : $HDD"\e[0m"
  15.     else
  16.         echo -e "\e[31;1m"Aucun HDD trouvé dans /media/seifer/"\e[0m"
  17.         exit 1
  18.     fi
  19. else
  20.     echo -e "\e[31;1m"Aucun HDD monté sur /media/seifer/"\e[0m"
  21.     exit 1
  22. fi
  23.  
  24.  
  25. #Sauvegarde des dépendances Python installées par pip install:
  26. #datedujour=$(date +"%Y-%m-%d")
  27. pip freeze > /tmp/my_pip_packages.txt
  28. mv -f /tmp/my_pip_packages.txt /media/seifer/$HDD/
  29. #Pour installer ces dépendances:
  30. #pip install -r my_pip_packages_$datedujour.txt
  31.  
  32. #Pour lister les modules Perl installés:
  33. #instmodsh
  34. #Pour les installer en lot:
  35. #ajouter "sudo cpanm" en suffixe:  sed -e 's/^/sudo cpanm/' perl_list
  36. #lancer l'installation en copiant/collant la liste avec CTRL+X+E
  37. #Pour installer un par un: sudo cpanm Module::Name
  38. sudo renice -n 20 -p $(pidof bash)
  39.  
  40. #Sauvegarde des crontabs:
  41. crontab -l > /tmp/crontabs && sudo mv -f /tmp/crontabs /media/seifer/$HDD/
  42.  
  43. #Sauvegarde des Cinnamon settings:
  44. #Pour charger les settings sur un nouveau système:
  45. #dconf load /org/cinnamon/ < cinnamon_settings
  46. dconf dump /org/cinnamon/ > /tmp/cinnamon_settings && sudo mv -f /tmp/cinnamon_settings /media/seifer/$HDD/
  47.  
  48. #Sauvegarde des paquets installés:
  49. apt-clone clone `uname -n` && mv *.apt-clone.tar.gz /media/seifer/$HDD/
  50.  
  51. #Pour installer les paquets de cette liste:
  52. #sudo apt-clone restore xxxx.apt-clone.tar.gz
  53.  
  54. #Sauvegarde des vidéos sans synchronisation avec la source:
  55. sudo rsync --progress --human-readable -av --ignore-errors --ignore-existing -p --stats --force /home/seifer/Vidéos/ /media/seifer/$HDD/Vidéos
  56. #Sauvegarde de la liste des films si source modifiée:
  57. sudo rsync --progress --human-readable -av --ignore-errors  -p --stats --force /home/seifer/Vidéos/Liste_Films_Dispos_sur_HDD /media/seifer/$HDD/Vidéos
  58.  
  59. #Sauvegarde des .sh de /usr/bin/
  60. sudo rsync --progress --human-readable -av --del --ignore-errors -p --stats --force /usr/bin/*sh /media/seifer/$HDD/usrSLASHbin
  61.  
  62. #Sauvegarde du autoexec.cfg de CSGO:
  63. #sudo rsync --progress --human-readable -av --del --ignore-errors -p --stats --force /home/seifer/.steam/steam/steamapps/common/'Counter-Strike Global Offensive'/csgo/cfg/autoexec.cfg /media/seifer/$HDD/
  64.  
  65. #Sauvegarde de /etc:
  66. sudo rsync --progress --human-readable -av --del --ignore-errors -p --stats --force /etc/ /media/seifer/$HDD/backup_etc
  67.  
  68. #Sauvegarde de /usr/share/
  69. sudo rsync --progress --human-readable -av --del --ignore-errors -p --stats --force /usr/share/ /media/seifer/$HDD/usrSLASHshare
  70.  
  71. #Sauvegarde des clés wifi:
  72. sudo grep -R psk /etc/NetworkManager/system-connections > /tmp/wifi_keys.txt && mv -f /tmp/wifi_keys.txt /media/seifer/$HDD/
  73.  
  74. #Sauvegarde de tout Home sauf /Vidéos et /VirtualBox_VMs/Win7
  75. sudo rsync --progress --human-readable -av --del --ignore-errors -p --stats --force --exclude /Vidéos --exclude /VirtualBox_VMs/Win7  /home/seifer/ /media/seifer/$HDD/backup_home
  76.  
  77. #Sauvegarde de tout Home sauf /Vidéos
  78. #sudo rsync --progress --human-readable -av --del --ignore-errors -p --stats --force --exclude /Vidéos /home/seifer/ /media/seifer/$HDD/backup_home
  79.  
  80.  
  81. #-av // C'est un moyen rapide de dire que vous voulez la récursion et de préserver pratiquement tout (le "v" est pour la verbosité)
  82. #-p // provoque la mise à jour des permissions sur la destination pour qu'elles soient identiques aux permissions sur la source.
  83. #--stats // affiche quelques statistiques de transfert de fichiers, ce qui permet de vérifier l'efficacité de la sauvegarde
  84. #--del // permet de supprimer les fichiers sur "destination" qui n'existent plus sur "source"
  85. #--ignore-errors // efface même s'il y a eu des erreurs E/S
  86. #--force // force la suppression de répertoires même non-vides
  87.  
  88. # Add error handling
  89. if [ $? -ne 0 ]; then
  90. echo -e "\e[32;1mLa sauvegarde a échouée!\e[0m"
  91. sudo umount /media/seifer/$HDD
  92.     exit 1
  93. fi
  94. sudo umount /media/seifer/$HDD
  95. echo -e "\e[32;1mSauvegarde terminée avec succès!\e[0m"
  96. exit 0
  97.  
  98.  
  99.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement