67 lines
1.8 KiB
Bash
Executable File
67 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ -f /etc/default/pg_backup ] ; then
|
|
. /etc/default/pg_backup
|
|
else
|
|
PG_BACKUP_ENABLED=True
|
|
PG_SERVICE=postgresql
|
|
USE_NAGIOS=no
|
|
LOG_DIR=/var/log/postgresql
|
|
LOG_FILE=$LOG_DIR/postgresql-backup.log
|
|
PG_BCK_BIN=/usr/local/sbin/postgresql-backup
|
|
fi
|
|
|
|
# Remote backup performed by duplicity. When active, do not run via cron
|
|
if [ -x /etc/cron.daily/duplicity_backup ] ; then
|
|
DATE=$( date )
|
|
echo "$DATE: duplicity backups active. Exiting" >> $LOG_FILE
|
|
exit 0
|
|
fi
|
|
|
|
# Remote backup performed by BackupPC. If it is active, do not run via cron
|
|
if [ -f /var/log/backuppc.log ] ; then
|
|
TMSTMP=$( date +%s )
|
|
. /var/log/backuppc.log
|
|
LAST_BACKUP_TIME=$( expr $TMSTMP - $BACKUP_TIMESTAMP )
|
|
if [ $LAST_BACKUP_TIME -lt 86400 -a $BACKUP_RESULT == 'OK' ] ; then
|
|
DATE=$( date )
|
|
echo "$DATE: BackupPC is active, doing nothing" >> $LOG_FILE
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
export PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
|
|
PG_SVC=$( service $PG_SERVICE status >/dev/null )
|
|
PG_RUNNING=$?
|
|
|
|
if [ $PG_BACKUP_ENABLED == 'True' ] ; then
|
|
if [ "$PG_RUNNING" -ne "0" -a "$PG_RUNNING" -ne "3" ] ; then
|
|
DATE=$( date )
|
|
echo "$DATE: The postgresql service is not running" >> $LOG_FILE
|
|
exit 1
|
|
else
|
|
if [ ! -d $LOG_DIR ] ; then
|
|
mkdir -p $LOG_DIR
|
|
fi
|
|
DATE_START=$( date )
|
|
echo "$DATE_START: Starting the backup procedure" >> $LOG_FILE
|
|
$PG_BCK_BIN >> $LOG_FILE 2>&1
|
|
DATE_END=$( date )
|
|
echo "$DATE_END: Backup procedure finished" >> $LOG_FILE
|
|
fi
|
|
else
|
|
DATE=$( date )
|
|
echo "$DATE: Postgresql backups administratively disabled" >> $LOG_FILE
|
|
fi
|
|
|
|
if [ "${USE_NAGIOS}" == "yes" ] ; then
|
|
N_LOGDIR=/var/log/nagios-checks
|
|
if [ ! -d $N_LOGDIR ] ; then
|
|
mkdir -p $N_LOGDIR
|
|
fi
|
|
fi
|
|
|
|
exit 0
|
|
|
|
|