Обсуждение: Re(2): Crontab and PostgreSQL Backup
you can also try this:
#!/bin/sh
# Backing up each database...
pg_dumpall -o | bzip2 > /var/lib/pgsql/backups/pgdumpall_`date
"+%Y%m%d"`.bz2
# Removing backups of last seven days...
find /var/lib/pgsql/backups -mtime +7 -exec rm -f {} \;
Sherwin
gunix@telia.com writes:
>>I use PostgreSQL version 7.0.2 for Linux Conectiva 5.1 Server, and I
>> would like to know how do I do to configure and start the PostgreSQL's
>backup
>> and restore
>>using crontab?
>
>restore with crontab???
>
>Anyway.
>Put a line in crontab like:
>3 5 * * * /script/backdb.sh
>
>and the script /script/backdb.sh
>could then look like:
>
>#!/bin/bash
>DATE=`date +%Y%m%d`
>/usr/pgsql/bin/pg_dump databas > /tmp/dump.$DATE
>
>then you have a file in /tmp/dump.$DATE that you could put on tape or
>whatever
>you use. Use pg_dumpall if you want all databases.
>You might want to consider making a backup of the files (for example
>pg_hba.conf) in PGDATA directory. Read the man page for details about
>OID's.
>
>Good luck.
>Gunnar.
On Fri, Oct 06, 2000 at 07:48:03PM +0800, pgsql-admin wrote: > you can also try this: or: #!/bin/bash PREFIX=/directory DATABASE=db rm -f $PREFIX.last pg_dump -d $DATABASE -f $PREFIX.last ln -f $PREFIX.last $PREFIX.hour.`date +%H` ln -f $PREFIX.last $PREFIX.day.`date +%d` ln -f $PREFIX.last $PREFIX.month.`date +%Y%m` Run this every hour, and $PREFIX will contain backups for every hour for the last day, every day for the last month and one backup for every month. -- Ragnar Kjørstad Modus Media
here's a backup script we use
#!/bin/sh
cd /pgsql/backups
if [ ! -d $1 ]
then
mkdir $1
fi
cd $1
for i in `ls $2 | egrep -v "template1|udmsearch"`
do
/usr/local/bin/rotate_files.pl $i 7
/pgsql/bin/pg_dump -p $1 -h localhost $i > $i.0
gzip -f $i.0 &
done
On Fri, 6 Oct 2000, [iso-8859-1] Ragnar Kj�rstad wrote:
> On Fri, Oct 06, 2000 at 07:48:03PM +0800, pgsql-admin wrote:
> > you can also try this:
>
> or:
>
> #!/bin/bash
> PREFIX=/directory
> DATABASE=db
> rm -f $PREFIX.last
> pg_dump -d $DATABASE -f $PREFIX.last
> ln -f $PREFIX.last $PREFIX.hour.`date +%H`
> ln -f $PREFIX.last $PREFIX.day.`date +%d`
> ln -f $PREFIX.last $PREFIX.month.`date +%Y%m`
>
> Run this every hour, and $PREFIX will contain backups for every hour for
> the last day, every day for the last month and one backup for every
> month.
>
>
>
Jeff MacDonald,
-----------------------------------------------------
PostgreSQL Inc | Hub.Org Networking Services
jeff@pgsql.com | jeff@hub.org
www.pgsql.com | www.hub.org
1-902-542-0713 | 1-902-542-3657
-----------------------------------------------------
Facsimile : 1 902 542 5386
IRC Nick : bignose