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"