]> git.nbdom.net Git - nb.git/commitdiff
bin/backup-datas
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Thu, 21 Nov 2024 15:19:21 +0000 (16:19 +0100)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Thu, 21 Nov 2024 15:19:21 +0000 (16:19 +0100)
bin/backup-datas [new file with mode: 0755]
etc/profile.d/mysql.sh [new file with mode: 0644]

diff --git a/bin/backup-datas b/bin/backup-datas
new file mode 100755 (executable)
index 0000000..0102d7a
--- /dev/null
@@ -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 (file)
index 0000000..36d7d36
--- /dev/null
@@ -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
+
+}
+