Так из того, что до сих пор не было сделано, это бэкап. Это плохо(
Доделал, чем с вами и делюсь)
За основу был взят скрипт отсюда, спасибо за простой и не напряжный вариант.
Единственно, пришлось немного поправить скрипты и пути, были небольшие опечатки.
файл crontab для пользователя postgres:
crontab -e -u postgres
0 8-20/2 * * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups hourly gpi
0 2 * * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups daily gpi
0 4 1 * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups monthly gpi
файл скрипта.
bash-4.1$ cat /var/lib/pgsql/backups/archpgbase
#!/bin/sh
arcdir=$1
bindir=/usr/bin
PASS=237511
USAGE= "Usage: arcdb hourly|daily|mountly [SQLhost]"
if [ "$4" = "" ]; then
SQLhost='127.0.0.1'
fi
echo "SQLhost: $SQLhost"
if ! [ -d $1 ]; then
echo $USAGE
exit 1
fi
echo "Target dir: $1"
if [ "$3" = "" ]; then
echo $USAGE
exit 1
fi
echo "Database: $3"
case $2 in
hourly)
find $arcdir/$2/$3/ -type f -ctime 1 -delete
;;
daily)
find $arcdir/$2/$3/ -type f -ctime 31 -delete
;;
monthly)
find $arcdir/$2/$3/ -type f -ctime 365 -delete
;;
*)
echo $USAGE
exit 1
;;
esac
if ! [ -e $arcdir/$2/$3 ]; then
mkdir $arcdir/$2/$3
fi
export PGPASSWORD=123456
$bindir/pg_dump -h $SQLhost -U postgres -c $3 | gzip >>$arcdir/$2/$3/`date +%y%m%d%H%M`.gz
Доделал, чем с вами и делюсь)
За основу был взят скрипт отсюда, спасибо за простой и не напряжный вариант.
Единственно, пришлось немного поправить скрипты и пути, были небольшие опечатки.
файл crontab для пользователя postgres:
crontab -e -u postgres
0 8-20/2 * * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups hourly gpi
0 2 * * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups daily gpi
0 4 1 * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups monthly gpi
файл скрипта.
bash-4.1$ cat /var/lib/pgsql/backups/archpgbase
#!/bin/sh
arcdir=$1
bindir=/usr/bin
PASS=237511
USAGE= "Usage: arcdb hourly|daily|mountly [SQLhost]"
if [ "$4" = "" ]; then
SQLhost='127.0.0.1'
fi
echo "SQLhost: $SQLhost"
if ! [ -d $1 ]; then
echo $USAGE
exit 1
fi
echo "Target dir: $1"
if [ "$3" = "" ]; then
echo $USAGE
exit 1
fi
echo "Database: $3"
case $2 in
hourly)
find $arcdir/$2/$3/ -type f -ctime 1 -delete
;;
daily)
find $arcdir/$2/$3/ -type f -ctime 31 -delete
;;
monthly)
find $arcdir/$2/$3/ -type f -ctime 365 -delete
;;
*)
echo $USAGE
exit 1
;;
esac
if ! [ -e $arcdir/$2/$3 ]; then
mkdir $arcdir/$2/$3
fi
export PGPASSWORD=123456
$bindir/pg_dump -h $SQLhost -U postgres -c $3 | gzip >>$arcdir/$2/$3/`date +%y%m%d%H%M`.gz
создаем директории в /var/lib/pgsql/backups/
monthly
daily
hourly
отдаем пользователю постгресса во владениее папки
chown -R postgres /var/lib/pgsql/backups
делаем скрипт исполняемым
chmod +x /var/lib/pgsql/archpgbase
все. все просто и понятно)
Комментариев нет:
Отправить комментарий