From ca1af7927e998099a9468186105711216e3d8c23 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Thu, 21 Nov 2024 16:19:21 +0100 Subject: [PATCH] bin/backup-datas --- bin/backup-datas | 30 ++++++++++++++++++++++++++++++ etc/profile.d/mysql.sh | 30 ++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100755 bin/backup-datas create mode 100644 etc/profile.d/mysql.sh diff --git a/bin/backup-datas b/bin/backup-datas new file mode 100755 index 00000000..0102d7ab --- /dev/null +++ b/bin/backup-datas @@ -0,0 +1,30 @@ +#!/usr/bin/env -S bash -l + +main() { + local dir=/var/backups + local usage="backup-datas [-dir PATH] [-days DAYS]" + + while [ $# -gt 0 ]; do + case "$1" in + -days) keep_days="$2"; shift ;; + -dir) rootdir="$2"; shift ;; + *) echo "$usage" 1>&2; return 1 ;; + esac + shift + done + + echo $dir + return + + [ -e /var/lib/ldap ] && \ + echo ldap_backup -dir $dir/ldap -days $days + + [ -e /var/lib/postgresql ] && \ + echo pg_backup -dir $dir/postgres -days $days + + [ -e /var/lib/mysql ] && \ + echo mysql_backup -dir $dir/mysql -days $days +} + +main $@ +#( umask 077 diff --git a/etc/profile.d/mysql.sh b/etc/profile.d/mysql.sh new file mode 100644 index 00000000..36d7d362 --- /dev/null +++ b/etc/profile.d/mysql.sh @@ -0,0 +1,30 @@ +mysql_backup() { + local keep_days=7 + local dir=/var/backups/mysql + local preff="$(date +'%F-%H%M')" + local usage="mysql_backup [-dir PATH] [-days DAYS]" + + while [ $# -gt 0 ]; do + case "$1" in + -days) keep_days="$2"; shift ;; + -dir) dir="$2"; shift ;; + *) echo "$usage" 1>&2; return 1 ;; + esac + shift + done + + cd / + mysql -e 'select 1' >/dev/null 2>&1 || return 0 + + ( + umask 077 + [ -d "$dir" ] || mkdir -p "$dir" || return + mysqldump --all-databases --system=all | bzip2 -9 -c > "$dir/"$preff-mysqldump.sql.bz2 + ) + + if [ -n "$keep_days" -a "$keep_days" -gt 0 ]; then + find $dir/*-mysqldump.sql* -type f -mtime +$keep_days -delete + fi + +} + -- 2.47.3