====== 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