################################## # Fonctions borg ################################## #Une fonction qu permet d’obtenir les information d’une archive. function bobainfo { borg info ./::$1 } #Supprimmer l'archive en paramètre function bobadel { borg delete ./::$1 } #Supprimmer la dernière archive du dépôt function bobadelast { archive=$(borg list ./ --short | tail -n 1) borg delete .::$archive } #Lister les archives du dépôt alias bobals="borg list ./ --short" #Créer un dépôt Borg. Par défaut, il sera chiffré avec un fichier clé créé dans votre home.Retour ligne automatique alias bobaini="borg init ./" #Créer un dépôt Borg sans chiffrement.Retour ligne automatique alias bobaininoenc="borg init --encryption=none ./" #Vérifier la consistence d'un dépôt alias boback="borg check -v ." #Monter une archive en paramètre function bobamount { mountpoint="$HOME/borg_$1" mkdir $mountpoint borg mount ./::$1 $mountpoint read -p "Presser une touche pour démontage" CONT fusermount -u $mountpoint && sleep 5 && rmdir $mountpoint } #Monter la dernière archive du dépôt function bobamountlast { archive=$(borg list ./ --short | tail -n 1) mountpoint="$HOME/borg_$archive" mkdir $mountpoint borg mount ./::$archive $mountpoint read -p "Presser une touche pour démontage" CONT fusermount -u $mountpoint && sleep 5 && rmdir $mountpoint } #Afficher les informations de la dernière archive function bobainflastsave { archive=$(borg list --short ./ | tail -n 1) borg info .::$archive } #Cette fonction récupère toutes les informations des archives dans un dépôt Borg. Cela peut être utile pour faire des statiques sur un dépôt.Retour ligne automatique #Attention, si le nombre d’archives est élevé et la compression forte cela peut prendre du temps. function bobainfoall { for borgarchive in $(borg list --short ./);do echo "---------------------------------------------------------------------------------------" borg info .::$borgarchive echo "---------------------------------------------------------------------------------------" done } #Exporter toutes les informations des archives dans un dépôt dans un fichier json function bobainfoalljson { for borgarchive in $(borg list --short ./);do borg info --json .::$borgarchive >> $HOME/borginfo.txt done } #Trouver un fichier dans un dépôt, affiche la liste des archives qui contient le fichier function bobasearchinarchive { for borgarchive in $(borg list --short ./);do borggrep=$(borg list --short .::$borgarchive | grep $1) if [ $? = 0 ];then echo "Chaine trouvé dans l'archive : $borgarchive" fi done } #Supprimmer en masse des archives dans un dépôt function bobadeleter { borgrepo="${PWD##*/}" file="borgdelete_$borgrepo.sh" editor="$EDITOR" #test dépôt borgrepofile="config" if [ ! -f "$borgrepofile" ]; then echo "Not in a borg repo. Unable to find $borgrepofile." return fi borgrepofile="data" if [ ! -d "$borgrepofile" ]; then echo "Not in a borg repo. Unable to find $borgrepofile." return fi #générer la liste des archives borg list --short . >> $file if [ "$?" != "0" ]; then echo "Error." return fi sed -i 's/^/"/' $file sed -i 's/$/"/' $file sed -i 's/^/#borg delete -v .::/' $file clear echo "### BORG DELETER ###" echo "" echo "Just uncomment lines you want to delete and save your file." echo "Watch out you're doing, there won't be other confirmation." sleep 5 $editor $file sh $file rm $file } # mass archive renaming function bobarenamer { TestBorgRepo if [ "$TestBorgErr" = "1" ]; then return;fi which paste || echo "Paste command not found." exit borgrepo="${PWD##*/}" file="file_$borgrepo.txt" originals="originals_$borgrepo.txt" script="borgrenamer_$borgrepo.sh" echo "Generating list of archives..." borg list --short . >> $originals if [ "$?" != "0" ]; then echo "Error generating list of archives. Exiting." && return;fi cp $originals $file $EDITOR $file sed -i 's/^/"/' $originals sed -i 's/$/"/' $originals sed -i 's/^/borg rename -v .::/' $originals sed -i 's/^/"/' $file sed -i 's/$/"/' $file paste -d" " $originals $file > $script sed -i '1s/^/\n/' $script sed -i '1s/^/\n/' $script sed -i '1s/^/BORG_PASSPHRASE=\"\"\n/' $script sed -i '1s/^/#Quick and dirty fix for repo with passphrase\n/' $script sed -i '1s/^/\n/' $script sed -i '1s/^/#Modifications in this file will be applied\, comment all to cancel\.\n/' $script sed -i '1s/^/### BORG RENAMER ###\n/' $script $EDITOR $script echo "Renaming..." sh $script rm $file rm $originals rm $script }