From 391ef207f7ebb66c45f66279460bdb239d3796a8 Mon Sep 17 00:00:00 2001 From: Jeremy Dubois Date: Mon, 16 Jul 2018 11:53:23 +0200 Subject: [PATCH 01/10] Add PATH, which is needed for BSD systems --- zzz_evobackup | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zzz_evobackup b/zzz_evobackup index a6ef7dc..b8dfa35 100755 --- a/zzz_evobackup +++ b/zzz_evobackup @@ -8,6 +8,8 @@ # Licence: AGPLv3 # +PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin + ## lang = C for english outputs export LANGUAGE=C export LANG=C From 853f6dff215e071029545a7260c73d327d320d10 Mon Sep 17 00:00:00 2001 From: Jeremy Dubois Date: Mon, 16 Jul 2018 11:54:11 +0200 Subject: [PATCH 02/10] /srv is not on BSD systems --- zzz_evobackup | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/zzz_evobackup b/zzz_evobackup index b8dfa35..b477d53 100755 --- a/zzz_evobackup +++ b/zzz_evobackup @@ -178,7 +178,7 @@ HOSTNAME=$(hostname) BEGINNING=$(/bin/date +"%d-%m-%Y ; %H:%M") if [ "$SYSTEM" = "linux" ]; then - rep="/bin /boot /lib /opt /sbin /usr" + rep="/bin /boot /lib /opt /sbin /usr /srv" else rep="/bsd /bin /sbin /usr" fi @@ -218,7 +218,6 @@ rsync -avzh --stats --delete --delete-excluded --force --ignore-errors --partial /root \ /var \ /home \ - /srv \ -e "ssh -p $SSH_PORT" \ "root@$SRV:/var/backup/" \ | tail -30 >> /var/log/evobackup.log From d69a015025494c96768cedca4f1fef51ccc13d1c Mon Sep 17 00:00:00 2001 From: Jeremy Dubois Date: Mon, 16 Jul 2018 16:04:43 +0200 Subject: [PATCH 03/10] Revert "/srv is not on BSD systems" This reverts commit 853f6dff215e071029545a7260c73d327d320d10. Paths in systems variable are always backed up, that is not the case of /srv. We have to manually remove /srv when we do not want it. --- zzz_evobackup | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zzz_evobackup b/zzz_evobackup index b477d53..b8dfa35 100755 --- a/zzz_evobackup +++ b/zzz_evobackup @@ -178,7 +178,7 @@ HOSTNAME=$(hostname) BEGINNING=$(/bin/date +"%d-%m-%Y ; %H:%M") if [ "$SYSTEM" = "linux" ]; then - rep="/bin /boot /lib /opt /sbin /usr /srv" + rep="/bin /boot /lib /opt /sbin /usr" else rep="/bsd /bin /sbin /usr" fi @@ -218,6 +218,7 @@ rsync -avzh --stats --delete --delete-excluded --force --ignore-errors --partial /root \ /var \ /home \ + /srv \ -e "ssh -p $SSH_PORT" \ "root@$SRV:/var/backup/" \ | tail -30 >> /var/log/evobackup.log From 664a424aee24c471085062e40b6b3b62f8c46c64 Mon Sep 17 00:00:00 2001 From: Jeremy Dubois Date: Wed, 25 Jul 2018 19:03:40 +0200 Subject: [PATCH 04/10] Send traceroute stderr to stdout OpenBSD sends its first line of information into stderr --- zzz_evobackup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zzz_evobackup b/zzz_evobackup index b8dfa35..3ce9347 100755 --- a/zzz_evobackup +++ b/zzz_evobackup @@ -152,7 +152,7 @@ uname -a > /home/backup/uname ## Dump network routes with mtr and traceroute (warning: could be long with aggressive firewalls) for addr in 8.8.8.8 www.evolix.fr travaux.evolix.net; do mtr -r $addr > /home/backup/mtr-${addr} - traceroute -n $addr > /home/backup/traceroute-${addr} + traceroute -n $addr > /home/backup/traceroute-${addr} 2>&1 done ## Dump process with ps From f369615a2ff7933b3231efb957bfdbf0395ce212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20S=C3=89RIE?= Date: Tue, 14 Aug 2018 14:46:03 +0200 Subject: [PATCH 05/10] Exclude the sys database from mysql dump --- zzz_evobackup | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zzz_evobackup b/zzz_evobackup index 3ce9347..b2187e9 100755 --- a/zzz_evobackup +++ b/zzz_evobackup @@ -61,7 +61,7 @@ mkdir -p -m 700 /home/backup ## example with two dumps for each table (.sql/.txt) for all databases # for i in $(echo SHOW DATABASES | mysql --defaults-extra-file=/etc/mysql/debian.cnf -P 3306 \ -# | egrep -v "^(Database|information_schema|performance_schema)" ); \ +# | egrep -v "^(Database|information_schema|performance_schema|sys)" ); \ # do mkdir -p /home/mysqldump/$i ; chown -RL mysql /home/mysqldump ; \ # mysqldump --defaults-extra-file=/etc/mysql/debian.cnf --force -P 3306 -Q --opt --events --hex-blob --skip-comments \ # --fields-enclosed-by='\"' --fields-terminated-by=',' -T /home/mysqldump/$i $i; done @@ -69,7 +69,7 @@ mkdir -p -m 700 /home/backup ## example with compressed SQL dump for each databases # mkdir -p /home/mysqldump/ # for i in $(mysql --defaults-extra-file=/etc/mysql/debian.cnf -P 3306 -e 'show databases' -s --skip-column-names \ -# | egrep -v "^(Database|information_schema|performance_schema)"); do +# | egrep -v "^(Database|information_schema|performance_schema|sys)"); do # mysqldump --defaults-extra-file=/etc/mysql/debian.cnf --force -P 3306 --events --hex-blob $i | gzip --best > /home/mysqldump/${i}.sql.gz # done From cb186dc775a8482a561e2028d15828a9a390bb02 Mon Sep 17 00:00:00 2001 From: Gregory Colpart Date: Mon, 20 Aug 2018 23:00:45 +0200 Subject: [PATCH 06/10] Force chmod 700 for all mkdir --- zzz_evobackup | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zzz_evobackup b/zzz_evobackup index b2187e9..60b2506 100755 --- a/zzz_evobackup +++ b/zzz_evobackup @@ -62,12 +62,12 @@ mkdir -p -m 700 /home/backup ## example with two dumps for each table (.sql/.txt) for all databases # for i in $(echo SHOW DATABASES | mysql --defaults-extra-file=/etc/mysql/debian.cnf -P 3306 \ # | egrep -v "^(Database|information_schema|performance_schema|sys)" ); \ -# do mkdir -p /home/mysqldump/$i ; chown -RL mysql /home/mysqldump ; \ +# do mkdir -p -m 700 /home/mysqldump/$i ; chown -RL mysql /home/mysqldump ; \ # mysqldump --defaults-extra-file=/etc/mysql/debian.cnf --force -P 3306 -Q --opt --events --hex-blob --skip-comments \ # --fields-enclosed-by='\"' --fields-terminated-by=',' -T /home/mysqldump/$i $i; done ## example with compressed SQL dump for each databases -# mkdir -p /home/mysqldump/ +# mkdir -p -m 700 /home/mysqldump/ # for i in $(mysql --defaults-extra-file=/etc/mysql/debian.cnf -P 3306 -e 'show databases' -s --skip-column-names \ # | egrep -v "^(Database|information_schema|performance_schema|sys)"); do # mysqldump --defaults-extra-file=/etc/mysql/debian.cnf --force -P 3306 --events --hex-blob $i | gzip --best > /home/mysqldump/${i}.sql.gz @@ -80,7 +80,7 @@ mkdir -p -m 700 /home/backup # --opt --events --hex-blob --skip-comments -T /home/mysqldump/MYBASE MYBASE ## example with mysqlhotcopy -# mkdir -p /home/mysqlhotcopy/ +# mkdir -p -m 700 /home/mysqlhotcopy/ # mysqlhotcopy BASE /home/mysqlhotcopy/ ## example for multiples MySQL instances @@ -114,7 +114,7 @@ mkdir -p -m 700 /home/backup ## > use admin ## > db.createUser( { user: "mongobackup", pwd: "PASS", roles: [ "backup", ] } ) # test -d /home/backup/mongodump/ && rm -rf /home/backup/mongodump/ -# mkdir -p /home/backup/mongodump/ +# mkdir -p -m 700 /home/backup/mongodump/ # mongodump --quiet -u mongobackup -pPASS -o /home/backup/mongodump/ # if [ $? -ne 0 ]; then # echo "Error with mongodump!" From 83155a8de437a9083fc22df3ace2559786f2ab27 Mon Sep 17 00:00:00 2001 From: Gregory Colpart Date: Sat, 25 Aug 2018 00:00:31 +0200 Subject: [PATCH 07/10] unlimited width for ps command --- zzz_evobackup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zzz_evobackup b/zzz_evobackup index 60b2506..dbc682a 100755 --- a/zzz_evobackup +++ b/zzz_evobackup @@ -156,7 +156,7 @@ for addr in 8.8.8.8 www.evolix.fr travaux.evolix.net; do done ## Dump process with ps -ps aux >/home/backup/ps.out +ps auwwx >/home/backup/ps.out if [ "$SYSTEM" = "linux" ]; then ## Dump network connections with netstat From 81e79b1aaaa7c7f2dfe834ecc5ba6c09b4be2808 Mon Sep 17 00:00:00 2001 From: Gregory Colpart Date: Sat, 25 Aug 2018 00:01:26 +0200 Subject: [PATCH 08/10] add packages available for restauration --- zzz_evobackup | 1 + 1 file changed, 1 insertion(+) diff --git a/zzz_evobackup b/zzz_evobackup index dbc682a..4a0114d 100755 --- a/zzz_evobackup +++ b/zzz_evobackup @@ -165,6 +165,7 @@ if [ "$SYSTEM" = "linux" ]; then ## List Debian packages dpkg -l >/home/backup/packages dpkg --get-selections >/home/backup/packages.getselections + apt-cache dumpavail >/home/backup/packages.available else ## Dump network connections with netstat netstat -finet -atn >/home/backup/netstat.out From eb85dc6175d8b063af7c968b6d02e8f85fb9ffdb Mon Sep 17 00:00:00 2001 From: Alexis Ben Miloud--Josselin Date: Wed, 21 Nov 2018 14:32:38 +0100 Subject: [PATCH 09/10] Add clusterized elasticsearch snapshots --- zzz_evobackup | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/zzz_evobackup b/zzz_evobackup index 4a0114d..6ac5a75 100755 --- a/zzz_evobackup +++ b/zzz_evobackup @@ -128,6 +128,21 @@ mkdir -p -m 700 /home/backup ## See: https://wiki.evolix.org/HowtoElasticsearch#snapshots-et-sauvegardes # curl -s -XDELETE "localhost:9200/_snapshot/snaprepo/snapshot.daily" -o /tmp/es_delete_snapshot.daily.log # curl -s -XPUT "localhost:9200/_snapshot/snaprepo/snapshot.daily?wait_for_completion=true" -o /tmp/es_snapshot.daily.log +## Clustered version here +## It basically the same thing except that you need to check that NFS is mounted +# if ss | grep ':nfs' | grep -q 'ip\.add\.res\.s1' && ss | grep ':nfs' | grep -q 'ip\.add\.res\.s2' +# then +# curl -s -XDELETE "localhost:9200/_snapshot/snaprepo/snapshot.daily" -o /tmp/es_delete_snapshot.daily.log +# curl -s -XPUT "localhost:9200/_snapshot/snaprepo/snapshot.daily?wait_for_completion=true" -o /tmp/es_snapshot.daily.log +# else +# echo 'Cannot make a snapshot of elasticsearch, at least one node is not mounting the repository.' +# fi +## If you need to keep older snapshot, for example the last 10 daily snapshots, replace the XDELETE and XPUT lines by : +# for snapshot in $(curl -s -XGET "localhost:9200/_snapshot/snaprepo/_all?pretty=true" | grep -Eo 'snapshot_[0-9]{4}-[0-9]{2}-[0-9]{2}' | head -n -10); do +# curl -s -XDELETE "localhost:9200/_snapshot/snaprepo/${snapshot}" | grep -v -Fx '{"acknowledged":true}' +# done +# date=$(date +%F) +# curl -s -XPUT "localhost:9200/_snapshot/snaprepo/snapshot_${date}?wait_for_completion=true" -o /tmp/es_snapshot_${date}.log ## RabbitMQ : export config #rabbitmqadmin export /home/backup/rabbitmq.config >> /var/log/evobackup.log From f1be9e713236b3c1595a755ebbf70164b78c1791 Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Thu, 29 Nov 2018 17:04:40 +0100 Subject: [PATCH 10/10] Check if disk is mounted in bkctld check --- Vagrantfile | 2 +- bkctld | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Vagrantfile b/Vagrantfile index 7bcd5af..9fa28e9 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -23,7 +23,7 @@ mkdir -p /usr/lib/nagios/plugins/ SCRIPT $deps = <