Назад | Перейти на главную страницу

Автоматизировать pg_dump в сценарии bash

Я заново изучаю bash после того, как много лет не использовал его, и мне нужно найти способ автоматизировать pg_dump отдельной базы данных в каталог.

В настоящее время я вручную ввожу ssh в поле, su для пользователя postgres, затем запускаю pg_dump database> outfile.

Это нормально работает, но мне уже надоело делать это вручную.

Я действительно устарел с bash и хотел бы найти способ сделать следующее.

1.) Напишите сценарий, который будет pg_dump моей базы данных в конкретный каталог 2.) Сценарий должен выводить имя файла вывода в виде hostname-date (для обеспечения возможности нескольких резервных копий) 3.) Надеюсь, предоставит некоторую форму обработки ошибок.

Я просмотрел вики 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" you@example.com; exit 1; fi

Вот что я придумал: это очень просто, но работает. Хотя я думаю, что ответ Свена лучше справляется с базовой обработкой ошибок.

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

Дайте мне знать, что вы думаете!