# $3: Date
function backup_all_dbs {
for i in $(psql -qtAF '|' -U postgres -l 2> /dev/null) ; do
+ NF=$(echo $i | awk -F '|' '{print NF}')
+ if [ $NF -ne 6 ]; then continue; fi
DBNAME=$(echo $i | cut -d '|' -f 1)
DBUSER=$(echo $i | cut -d '|' -f 2)
case $DBNAME in
# save all databases, either postgresql (currently on www) or ejabberd (currently on boot)
function backup () {
+ echo "backup script on $HOST"
+ echo "Please do not change this script directly, use git and related makefile at"
+ echo "but http://git.onelab.eu/?p=infrastructure.git;a=blob;f=scripts/ple-backup-cleanup.cron"
# postgresql
ps -C postmaster >& /dev/null && backup_all_dbs $BACKUP_DIR $HOST $DATE \
|| echo "No postgresql database to backup on $HOST"
# trash old files in $BACKUP_DIR
# formerly in /etc/cron.weekly/clean-backup.sh
function cleanup () {
+ echo "cleanup script on $HOST"
+ echo "Please do not change this script directly, use git and related makefile at"
+ echo "but http://git.onelab.eu/?p=infrastructure.git;a=blob;f=scripts/ple-backup-cleanup.cron"
DATE=$(date +%s)
ONE_WEEK=$((7*24*60*6))
DATE_OLD=$(($DATE - $ONE_WEEK))