From 1a0a993256b598f12a80fd88761053d4c1c79ff5 Mon Sep 17 00:00:00 2001 From: Simon C Date: Tue, 19 Jan 2021 21:04:00 +0100 Subject: [PATCH] feat: Ajout d'un script de backup --- README.md | 7 ------ run | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 7 deletions(-) create mode 100755 run diff --git a/README.md b/README.md index 4df0ec4..80a233b 100644 --- a/README.md +++ b/README.md @@ -14,13 +14,6 @@ Pour construire le site : hugo -D ``` -## Logs - -``` -ssh obelix -docker run -**t --rm -v /home/pi/backups/histoiredunpied:/backup -v histoiredunpied-log-volume:/logs alpine:3.11.5 ash -``` - ## Exemple de site Voici quelques sites pour s'inspirer : diff --git a/run b/run new file mode 100755 index 0000000..d0a423e --- /dev/null +++ b/run @@ -0,0 +1,66 @@ +#!/bin/bash + +# -e Exit immediately if a command exits with a non-zero status. +# -u Treat unset variables as an error when substituting. +set -eu + +DOCKER_CONTEXT=vert +START=`date +%s` +BACKUP_DATE=`date +%Y%m%d` + +logs_backup() { + mkdir -p backups + ssh $DOCKER_CONTEXT mkdir -p backups/histoiredunpied + docker --context $DOCKER_CONTEXT run -t --rm -v $HOME/backups/histoiredunpied:/backup -v histoiredunpied-log-volume:/logs alpine:3.11.6 ash -c "cd /logs && tar cvf /backup/${BACKUP_DATE}_histoiredunpied_logs.tar ." + ssh $DOCKER_CONTEXT "sudo chown kosssi:docker $HOME/backups/histoiredunpied/${BACKUP_DATE}_histoiredunpied_logs.tar" + scp $DOCKER_CONTEXT:$HOME/backups/histoiredunpied/${BACKUP_DATE}_histoiredunpied_logs.tar backups +} + +logs_restore() { + ssh $DOCKER_CONTEXT mkdir -p backups/histoiredunpied + scp backups/${BACKUP_DATE}_histoiredunpied_logs.tar $DOCKER_CONTEXT:$HOME/backups/histoiredunpied/ + docker --context $DOCKER_CONTEXT run -t --rm -v $HOME/backups/histoiredunpied:/backup -v histoiredunpied-log-volume:/logs alpine:3.11.6 ash -c "cd /logs && tar xvf /backup/${BACKUP_DATE}_histoiredunpied_logs.tar --strip 1" +} + +logs_update() { + docker --context $DOCKER_CONTEXT exec -it histoiredunpied-logs ash /bin/stats.sh generate +} + +help() { + echo "💡 Aide" + echo "-------" + echo + echo "Commandes :" + echo "- ./run logs backup 📥 Sauvegarde les logs" + echo "- ./run logs restore 📤 Restore les logs" + echo "- ./run logs update 🌠 Mise à jour de GoAccess" + echo +} + +if [ $# -ge 1 ]; then + if [ $1 == "logs" ]; then + if [ $# -ge 2 ]; then + if [ $2 == "backup" ]; then + echo "📥 Sauvegarde les logs" + logs_backup + elif [ $2 == "restore" ]; then + echo "📤 Restore les logs" + logs_restore + elif [ $2 == "update" ]; then + echo "🌠 Mise à jour de GoAccess" + logs_update + else + help + fi + else + help + fi + else + help + fi +else + help +fi + +END=`date +%s` +echo "✨ Done in $((END-START))s"