LQPP/lf-backup.sh
< LQPP
#!/bin/sh
LOGFILE="/var/log/liquid_feedback/lf-backup.log"
TIMESTAMP=$( date '+%R_%F' )
FILENAME="/var/lib/liquid_feedback/backup/lqpp_${TIMESTAMP}"
REMOTE="lqpp-backup@localhost:~"
RECIPIENT="lqpp-backup"
# log to console, logfile and syslog
log () {
echo "$1"
echo "${TIMESTAMP}: $1" | tee -a "${LOGFILE}" | logger -t "lf-backup"
}
# print error message and quit
die () {
log "ERROR: $1"
exit 1
}
log "Start lf-backup..."
echo "Dump..."
MSG=$( sudo -u postgres pg_dump --disable-triggers --data-only --column-inserts liquid_feedback_pp > "${FILENAME}.sql" 2>&1 )
[ $? -ne 0 ] && die "Could not create database dump: ${MSG}"
echo "Pack..."
MSG=$( tar -cjf "${FILENAME}.tar.bz2" "${FILENAME}.sql" "/opt/liquid_feedback" "/var/www" "/etc" 2>&1 )
[ $? -eq 0 ] || die "Could not pack backup: ${MSG}"
echo "Encrypt..."
MSG=$( gpg --encrypt --recipient "${RECIPIENT}" "${FILENAME}.tar.bz2" 2>&1 )
[ $? -eq 0 ] || die "Could not encrypt backup: ${MSG}"
echo "Send..."
MSG=$( scp "${FILENAME}.tar.bz2.gpg" "${REMOTE}" 2>&1 )
[ $? -eq 0 ] || die "Could not send backup: ${MSG}"