nano /opt/bakup.sh

#!/bin/sh
 
BAK_DIR="/home/disk1/sql_bases/s1c"
DATE=`date +%d.%m.%Y-%H%M`
 
ssh root@bs "mkdir $BAK_DIR/$DATE"
 
 
for base in ` su -l postgres -c "psql -U postgres -Aqt -c 'select datname from pg_database;'"`
do
su -l postgres -c "pg_dump $base" | ssh root@bs "gzip > $BAK_DIR/$DATE/$base.sql.gz"
done
 
ssh root@bs "/home/disk1/sql_bases/clean.sh $BAK_DIR"

nano /etc/cron.d/backup-postgresql

# backup postgres
0 1 * * * root /opt/bakup.sh

на бекап сервере cat clean.sh

#!/bin/bash
 
if [ $# -lt 1 ]
then
 echo Something wrong with parameters
  exit
  fi
 
x=1  # Счетчик файлов
path=$1 #"/home/disk1/sql_bases/s1c-nd" # Путь к удаляемым файлам
 
for i in `ls -t $path`
        do
          if [ $x -le 14 ]
                then
                ((x++))
                continue
          fi
        rm -rf $path/$i
  done

* восстановление

cat /opt/restore.sh
#!/bin/sh
 
BAK_DIR="/home/s1c-tt"
DATE="15.01.2018-0100"
 
 
su -l postgres -c "dropdb $1"
su -l postgres -c "createdb $1"
ssh root@bs "gunzip < $BAK_DIR/$DATE/$1.sql.gz" | su -l postgres -c "psql $1"