在 bash 脚本中自动化 pg_dump

在 bash 脚本中自动化 pg_dump

多年没有使用 bash 之后,我重新学习了它,并且需要找到一种方法来自动将单个数据库的 pg_dump 到目录中。

目前我手动通过 ssh 进入该框,su 到 postgres 用户,然后运行 ​​pg_dump database > outfile。

这很好,但是我已经厌倦了必须手动执行此操作。

我对 bash 确实很生疏,想找到一种方法来执行以下操作。

1.) 编写一个脚本,将 pg_dump 我的数据库到特定目录 2.) 该脚本应将输出文件名输出为主机名-日期(以允许多次备份) 3.) 希望提供某种形式的错误处理。

我查看了 Postgres wiki,发现了一个非常复杂的脚本可以做到这一点,但我想知道是否有一些快速而简单的脚本可以完成这项工作。

如能得到任何提示或正确的指导,我们将不胜感激。

谢谢大家!

答案1

不考虑任何特定语法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

答案2

这是我想到的办法,虽然很简单,但很管用。不过我认为 Sven 的答案在基本错误处理方面做得更好。

#!/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

让我知道你的想法!

相关内容