
Я только что написал этот скрипт для резервного копирования всего в файл 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
так что в принципе вы можете обернуть это в функцию и если функция не соответствует дате последнего бэкапа, добавить ее в архив/бэкап. В противном случае идите дальше.
НТН