genea:gramps:synchro-gramps-web

Synchroniser média et base locale avec Gramps web

Ressources

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="<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}/<path-to-gramps-db>/${tree_id}"
local_media_dir="${local_base_dir}/<path-to-media>"
dist_user="<user-on-server>"
dist_ip="<ip-server-address>"
dist_base_dir="~/<gramps-web-docker-compose-directory-path>"
dist_db_dir="${dist_base_dir}/<gramps-web-db-directory-path>/${tree_id}/"
dist_media_dir="${dist_base_dir}/<gramps-web-media-directory-path>/"
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="<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}/<path-to-gramps-db>/${tree_id}"
local_media_dir="${local_base_dir}/<path-to-media-dir>"
local_bkp_dir="${local_base_dir}/<path-to-backup-dir>"
 
dist_user="<user-on-server>"
dist_ip="<ip-server-address>"
dist_base_dir="~/<gramps-web-docker-compose-directory-path>"
dist_db_dir="${dist_base_dir}/<gramps-web-db-directory-path>/${tree_id}/"
dist_media_dir="${dist_base_dir}/<gramps-web-media-directory-path>/"
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
  • genea/gramps/synchro-gramps-web.txt
  • Dernière modification : 2025/11/29 09:11
  • de jpmilcent