Скрипт BASH для резервного копирования CentOS

Скрипт 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

решение1

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

решение2

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

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

решение3

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

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

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

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

date -r $file +%F

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

НТН

Связанный контент