====== Synchroniser média et base locale avec Gramps web ====== ====== Ressources ====== * [[https://memos.clapas.org/informatique/serveurs/installation-logiciels-via-docker#gramps-web| Installation Gramps Web via Docker, synchro manuelle]] ====== Scripts Bash de Synchro ===== **from-local-to-web.sh** #!/usr/bin/env bash # Encoding : UTF-8 # Send Gramps local db and media to distant Gramps Web # Gramps Tree id tree_id="" # Local directories base path local_base_dir="/home/jpm/Data/Généalogie/Gramps" # Local Gramps Databases directory path local_db_dir="${local_base_dir}//${tree_id}" local_media_dir="${local_base_dir}/" dist_user="" dist_ip="" dist_base_dir="~/" dist_db_dir="${dist_base_dir}//${tree_id}/" dist_media_dir="${dist_base_dir}//" dry_run="" while getopts d option do case "${option}" in d)dry_run="--dry-run";; esac done if ! [[ -f "${local_db_dir}/lock" ]]; then echo "Send local DB and media to Gramps Web" rsync -av --exclude .gitignore "${local_db_dir}/" ${dist_user}@${dist_ip}:${dist_db_dir} ${dry_run} rsync -av --delete --exclude .gitignore "${local_media_dir}/" ${dist_user}@${dist_ip}:${dist_media_dir} ${dry_run} else echo "Gramps DB is locked ! Please close Gramps before sync." fi **from-web-to-local.sh** #!/usr/bin/env bash # Encoding : UTF-8 # Sychronise Gramps web to local db and media # Gramps Tree id tree_id="" # Local directories base path local_base_dir="/home/jpm/Data/Généalogie/Gramps" # Local Gramps Databases directory path local_db_dir="${local_base_dir}//${tree_id}" local_media_dir="${local_base_dir}/" local_bkp_dir="${local_base_dir}/" dist_user="" dist_ip="" dist_base_dir="~/" dist_db_dir="${dist_base_dir}//${tree_id}/" dist_media_dir="${dist_base_dir}//" dry_run="" while getopts d option do case "${option}" in d)dry_run="--dry-run";; esac done echo "Backup current local db in ${local_bkp_dir}" tar -cjvf "${local_bkp_dir}/$(date +'%Y-%m-%d_%H-%M-%S')_gramps.tar.bz2" -C "${local_db_dir}" . if ! [[ -f "${local_db_dir}/lock" ]]; then echo "Sync distant DB with local DB" rsync -av --exclude .gitignore ${dist_user}@${dist_ip}:${dist_db_dir} "${local_db_dir}/" ${dry_run} rsync -av --checksum --exclude .gitignore ${dist_user}@${dist_ip}:${dist_media_dir} "${local_media_dir}/" ${dry_run} else echo "Gramps DB is locked ! Please close Gramps before sync." fi