在bash脚本中自动化pg_dump

我重新学习了bash,经过多年没有使用它,需要找出一种方法来自动化单个数据库的pg_dump到一个目录。

目前我手动ssh到框中,su到postgres用户,然后运行pg_dump database> outfile。

这工作正常,但我厌倦了手动做这个。

我真的生锈了bash,并想找出一个办法来做到以下几点。

1.)编写一个脚本,将pg_dump我的数据库到一个特定的目录2.)脚本应该输出outfile名称作为主机名 – date(以允许多个备份)3.)希望提供某种forms的error handling。

我已经看了Postgres的维基,发现了一个相当复杂的脚本来做这个,但是想知道是否有一些快速和肮脏的工作将完成。

任何提示或正确的方向点将不胜感激。

谢谢你们,伙计!

不考虑pg_dump任何特定语法:

 #!/bin/bash $TODAY=`date --iso-8601` $BACKDIR=/backup pg_dump [options] > $BACKDIR/$HOSTNAME-$TODAY if [ "$?"-ne 0]; then echo "Help" | mail -s "Backup failed" [email protected]; exit 1; fi 

这是我想出来的,它非常简单,但它的工作原理。 虽然我认为Sven的答案在基本error handling方面做得更好。

 #!/bin/sh hostname=`hostname` # Dump DBs date=`date +"%Y%m%d_%H%M%N"` filename="/var/backups/app/${hostname}_${db}_${date}.sql" pg_dump databasename > $filename gzip $filename exit 0 

让我知道你的想法!