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

Сценарий BASH резервного копирования CentOS

Я просто написал этот сценарий для резервного копирования всего в файл tar.gz. Выглядит нормально? Как я могу заставить tar-файл передать себя на другой сервер после выполнения? FTP от себя? Я собираюсь поместить этот скрипт в еженедельную cron.

#!/bin/bash

rm ~/backup.tar.gz #removes old backup
BACKUP_DIRS=$HOME #$HOME is builtin, it goes to /home/ and all child dirs
tar -cvzf backup.tar.gz $BACKUP_DIRS

# run tar -zxvf to extract backup.tar.gz

Если у вас не так много файлов, которые изменяются, вы можете использовать rsync вместо создания большого tar-файла. Rsync будет отправлять только изменения, поэтому он намного эффективнее, чем то, что вы предлагаете. Может быть, для начала посмотрим на что-то вроде этого:

http://lifehacker.com/196122/geek-to-live--mirror-files-across-systems-with-rsync?tag=softwarersync

В зависимости от размера сервера вы создаете очень много дубликатов. На вашем месте я бы сохранял только те файлы, которые были изменены. Вы также должны указать дату и время для файла.

Вот что бы я сделал.

  • Делайте полную спину 1 раз в месяц или в неделю
  • Дополнительные резервные копии на все остальные дни
  • отметка даты и времени файла для облегчения восстановления

Самый простой способ проверить дату изменения файла:

date -r $file +%F

поэтому в основном вы можете обернуть это функцией, и если функция не соответствует дате последней резервной копии, добавьте ее в архив / резервную копию. В противном случае двигайтесь дальше.

HTH

FTP - это дьявол. SCP с парами ключей RSA - хороший способ безопасного перемещения файлов с сервера на сервер. Что касается сценария, он выглядит нормально.