Я просто написал этот сценарий для резервного копирования всего в файл 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
В зависимости от размера сервера вы создаете очень много дубликатов. На вашем месте я бы сохранял только те файлы, которые были изменены. Вы также должны указать дату и время для файла.
Вот что бы я сделал.
Самый простой способ проверить дату изменения файла:
date -r $file +%F
поэтому в основном вы можете обернуть это функцией, и если функция не соответствует дате последней резервной копии, добавьте ее в архив / резервную копию. В противном случае двигайтесь дальше.
HTH
FTP - это дьявол. SCP с парами ключей RSA - хороший способ безопасного перемещения файлов с сервера на сервер. Что касается сценария, он выглядит нормально.