rendered paste body#!/bin/bash# Adeppi bash functions# /usr/local/adeppi/functionsget_date_seconde (){ date +"%Y-%m-%d-%Hh%M-%S"}make_zip (){ directory="$1" filename="$2" zip_filename="$filename.zip" 7z a "$zip_filename" "$directory" chmod a+r "$zip_filename"}make_squashfs (){ directory="$1" filename="$2" squashfs_filename="$filename.sqfs" mksquashfs "$directory" "$squashfs_filename" chmod a+r "$squashfs_filename"}rsync_backup (){ source_dir="$1" target_dir="$2" rsync -a --delete "$source_dir/" "$target_dir/"}mount_squashfs (){ filename="$1" mnt_dir="$2" # echo 'filename="'$filename'"' # echo 'mnt_dir="'$mnt_dir'"' mkdir -p "$mnt_dir" mount -o loop -t squashfs "$filename" "$mnt_dir" # echo '--'}mount_all_squashfs (){ files_dir="$1" mnt_dir_radical="$2" if [ ! -z "$(ls "$files_dir")" ] ; then cd "$files_dir" for filename in *.sqfs ; do mnt_dir="$mnt_dir_radical${filename%.sqfs}" mount_squashfs "$filename" "$mnt_dir" done fi}sauvegarde_documents (){ postfix="$1" save_date="$(get_date_seconde)" filename="$DOC_SAVES_FILES_DIR/$save_date$postfix" make_zip "$DOC_SHARED_DIR" "$filename" make_squashfs "$DOC_SHARED_DIR" "$filename" sleep 0.2s mount_squashfs "$filename.sqfs" "$SAVES_MNT_DIR/documents_$save_date$postfix"}garder_premieres_sauvegardes (){ nb_keeping="$1" postfix="$2" if [ ! -z "$(ls "$DOC_SAVES_FILES_DIR")" ] then # Le dossier n'est pas vide cd "$DOC_SAVES_FILES_DIR" squashfs_postfix="$postfix.sqfs" nb_daily_file=0 for filename in * do if [ $filename = "${filename%$squashfs_postfix}$squashfs_postfix" ] then (( nb_daily_files += 1 )) fi done if [ $nb_daily_files -gt $nb_keeping ] then # Plus que $nb_keeping fichiers for filename in * do if [ $filename = "${filename%$squashfs_postfix}$squashfs_postfix" ] \ && [ $nb_daily_files -gt $nb_keeping ] then save_name="${filename%.sqfs}" squashfs_filename="$save_name.sqfs" zip_filename="$save_name.zip" mnt_folder="$SAVES_MNT_DIR/documents_$save_name" umount -d "$mnt_folder" sleep 0.1s rmdir "$mnt_folder" rm "$squashfs_filename" rm "$zip_filename" (( nb_daily_files -= 1 )) fi done fi # Plus que $nb_keeping fichiers fi # Le dossier n'est pas vide}