#!/bin/bash set -e set -u #set -x ############################################################################## # backup_sqlite.sh # # http://www.rsnapshot.org/ # # This is a simple shell script to backup a sqlite database with rsnapshot. # # This script simply needs to dump a file into the current working directory. # rsnapshot handles everything else. # # The assumption is that this will be invoked from rsnapshot. # See: # https://rsnapshot.org/rsnapshot/docs/docbook/rest.html#backup-script # # Please remember that these backup scripts will be invoked as the user # running rsnapshot. Make sure your backup scripts are owned by root, # and not writable by anyone else. # If you fail to do this, anyone with write access to these backup scripts # will be able to put commands in them that will be run as the root user. # If they are malicious, they could take over your server. # # chown root:root backup_sqlite.sh # chmod 700 backup_sqlite.sh # ############################################################################## umask 0077 # backup the database /bin/find /var -iname *.db -exec bash -c ' /usr/bin/file {} | /bin/grep -q "SQLite 3" && /usr/bin/sqlite3 {} ".backup $(/usr/bin/basename {})" ' \; # make the backup readable only by root #/bin/chmod 600 filename.db exit