Создание резервной копии с использованием скрипта — различия между версиями

Материал из ЭЛЕСТА
Перейти к: навигация, поиск
Строка 1: Строка 1:
1. Создайте скрипт<br>
+
 
1.1 Создадим файл скрипта
+
1. Создадим файл скрипта
 
  touch /etc/pgsql-backup
 
  touch /etc/pgsql-backup
1.2 Откроем файл для редактирования
+
2. Откроем файл для редактирования
 
  vi /etc/pgsql-backup
 
  vi /etc/pgsql-backup
1.3 Поместим текст
+
3. Поместим текст
 
  #!/bin/bash
 
  #!/bin/bash
 
  PGUSER=postgres
 
  PGUSER=postgres
Строка 38: Строка 38:
 
<code>pg_dump -U $PGUSER $PGBASES | gzip -c > $FILE</code> - Выходной файл с сжатием
 
<code>pg_dump -U $PGUSER $PGBASES | gzip -c > $FILE</code> - Выходной файл с сжатием
 
   
 
   
1.4 Сохраним его<br>
+
4. Сохраним его<br>
1.5 Дадим права на выполнение
+
5. Дадим права на выполнение
 
  chmod +x /etc/pgsql-backup
 
  chmod +x /etc/pgsql-backup
1.6 Создадим каталог, куда будет делаться backup
+
6. Создадим каталог, куда будет делаться backup
 
   mkdir /etc/backup
 
   mkdir /etc/backup
1.7 При выполнении скрипта будет сохраняться резервная копия схемы данных в указанный каталог
+
7. При выполнении скрипта будет сохраняться резервная копия схемы данных в указанный каталог

Версия 13:04, 15 июня 2017

1. Создадим файл скрипта

touch /etc/pgsql-backup

2. Откроем файл для редактирования

vi /etc/pgsql-backup

3. Поместим текст

#!/bin/bash
PGUSER=postgres
PGPASS=postgres
KEEP=14
DIR=/etc/backup
PGPASSWORD=$PGPASS
export PGPASSWORD
NOW=$(date +"%Y-%m-%d")
PGBASES="jupiter"
do
  BACKUPS=`find $DIR -name "$PGBASES.*.gz" | wc -l | sed 's/\ //g'`
  while [ $BACKUPS -ge $KEEP ]
  do
    ls -tr1 $DIR/$PGBASES.*.gz | head -n 1 | xargs rm -f 
    BACKUPS=`expr $BACKUPS - 1` 
  done
  FILE=$DIR/$PGBASES.$NOW-$(date +"%T").backup.gz
  pg_dump -U $PGUSER $PGBASES | gzip -c > $FILE
done
PGPASSWORD=
export PGPASSWORD
exit 0

PGUSER=postgres - Имя пользователя
PGPASS=postgres - Пароль для доступа к базе данных
KEEP=14 - Количество бэкапов, которое требуется сохранять
DIR=/etc/backup - Каталог, куда сохранять бэкапы
NOW=$(date +"%Y-%m-%d") - Формат записи даты и времени бэкапа
PGBASES="jupiter" - Имя базы данных
BACKUPS=`find $DIR -name "$PGBASES.*.gz" | wc -l | sed 's/\ //g'`
FILE=$DIR/$PGBASES.$NOW-$(date +"%T").backup.gz
pg_dump -U $PGUSER $PGBASES | gzip -c > $FILE - Выходной файл с сжатием

4. Сохраним его
5. Дадим права на выполнение

chmod +x /etc/pgsql-backup

6. Создадим каталог, куда будет делаться backup

 mkdir /etc/backup

7. При выполнении скрипта будет сохраняться резервная копия схемы данных в указанный каталог