Add monit and a few utility scripts

This commit is contained in:
Paul-Henri Froidmont 2018-01-02 05:03:19 +01:00
parent b09ac86a62
commit 830f6a5609
12 changed files with 537 additions and 14 deletions

View file

@ -0,0 +1,13 @@
#!/bin/bash
for dir in {{docker_compose_files_folder}}/*
do
if [ -d ${dir} ]
then
echo "docker-compose $1 ${dir}"
cd "${dir}"
docker-compose $1
echo --------------------------------------------------------------
fi
done;

View file

@ -0,0 +1,55 @@
#!/bin/sh
set -e
REPOSITORY=ssh://backup@phf.ddns.net:2222/./backup
export BORG_PASSPHRASE='{{backup_borg_passphrase}}'
echo 'Dumping NextCloud database'
docker exec nextcloud_db_1 sh -c "mysqldump -u nextcloud -p{{nextcloud_mysql_password}} nextcloud > /backups/database.dmp"
echo 'Dumping matrix database'
docker exec matrix_db_1 sh -c "pg_dump -U synapse synapse > /backups/database.dmp"
echo 'Copying murmur database'
docker stop murmur_murmur_1
cp /var/lib/murmur/murmur.sqlite /backups/murmur/murmur.sqlite
docker start murmur_murmur_1
echo 'Creating GitLab backup'
docker exec gitlab_gitlab_1 gitlab-rake gitlab:backup:create
echo 'Starting Borg backup'
borg create -v --stats --compression lz4 \
${REPOSITORY}::'{hostname}-{now:%Y-%m-%d}' \
/root \
/etc \
/var \
/backups \
--exclude '/var/lib/nextcloud/db' \
--exclude '/var/lib/plex/transcode' \
--exclude '/var/lib/prometheus' \
--exclude '/var/lib/gitlab/data'
# Route the normal process logging to journalctl
2>&1
# If there is an error backing up, reset password envvar and exit
if [ "$?" = "1" ] ; then
export BORG_PASSPHRASE=""
exit 1
fi
# Use the `prune` subcommand to maintain 14 daily, 8 weekly and 12 monthly
# archives of THIS machine. The '{hostname}-' prefix is very important to
# limit prune's operation to this machine's archives and not apply to
# other machine's archives also.
borg prune -v --list ${REPOSITORY} --prefix '{hostname}-' \
--keep-daily=14 --keep-weekly=8 --keep-monthly=12
# Unset the password
export BORG_PASSPHRASE=""
touch /backups/backup-ok
exit 0

View file

@ -0,0 +1,39 @@
#!/bin/bash
set -e
SOURCE_HOST=62.210.202.162
#Sync Media
rsync -aAvh --progress root@${SOURCE_HOST}:/var/lib/plex/data/ /media --delete
#Sync Backups
rsync -aAvh --progress root@${SOURCE_HOST}:/backups/ /backups --delete
#Sync Deluge
mkdir -p {{docker_compose_files_folder}}/deluge
rsync -aAvh --progress root@${SOURCE_HOST}:{{docker_compose_files_folder}}/torrent/config/ {{docker_compose_files_folder}}/deluge/config --delete
rsync -aAvh --progress root@${SOURCE_HOST}:/var/lib/deluge/ /var/lib/deluge --delete
#Sync emby
mkdir -p {{docker_compose_files_folder}}/emby
rsync -aAvh --progress root@${SOURCE_HOST}:{{docker_compose_files_folder}}/emby/config/ /etc/images/emby/config --delete
#Sync Mailu
rsync -aAvh --progress root@${SOURCE_HOST}:/var/lib/mailu/ /var/lib/mailu --delete
#Sync matrix
mkdir -p {{docker_compose_files_folder}}/matrix
mkdir -p /var/lib/matrix
rsync -aAvh --progress root@${SOURCE_HOST}:{{docker_compose_files_folder}}/matrix/synapse/ {{docker_compose_files_folder}}/matrix/synapse --delete
rsync -aAvh --progress root@${SOURCE_HOST}:/var/lib/matrix/media_store/ /var/lib/matrix/media_store --delete
#Sync nextcloud
rsync -aAvh --progress root@${SOURCE_HOST}:/var/lib/nextcloud/ /var/lib/nextcloud --exclude "db" --delete
#Sync Wiki
rsync -aAvh --progress root@${SOURCE_HOST}:/var/lib/wiki/ /var/lib/wiki --delete
#Sync certificates
mkdir -p {{docker_compose_files_folder}}/proxy/nginx
rsync -aAvh --progress root@${SOURCE_HOST}:{{docker_compose_files_folder}}/proxy/nginx/certs/ {{docker_compose_files_folder}}/proxy/nginx/certs --delete

View file

@ -0,0 +1,16 @@
#!/bin/bash
for dir in {{docker_compose_files_folder}}/*
do
if [ -d ${dir} ]
then
echo "Updating ${dir}"
cd "${dir}"
docker-compose pull
[ ${dir} = 'nextcloud' ] && docker-compose build --pull
docker-compose up -d
echo --------------------------------------------------------------
fi
done;