У меня есть приложение на VPS (Ubuntu Server 18.04), и хост может делать еженедельные резервные копии всей системы.
Но этого недостаточно, поэтому я хочу делать свои собственные резервные копии (кроме того, у меня было размещает резервные копии файлов, которые в прошлом терпели неудачу), но не всей системы.
Добавочные резервные копии должны быть в структуре папок / директорий (все несколько мест в одной папке даты, но остаются инкрементными):
Автоматизировать процесс, чтобы выполняется ежедневно
Я читал о rsync и chron, но я не Не знаю:
Я также должен был прочитать некоторый документ, чтобы подготовиться для достижения цели, давайте запустимся! Без знают тип данных и частоты доступа, можно использовать rsync для синхронизации папки, в которой Вы хотите скопировать к временному каталогу для выполнения инкрементного резервного копирования, я предлагаю использовать tar для сжатия 7zip для шифрования и для удаленной копии rclone.
Таким образом, что я желание сделать сделанный этой задачей, предполагая, что папки копируют, является/home/user и/home/user2, временный каталог является/media/Backup/folder_name __ date1. Я запущу сценарий с двух rsync заданий один, чтобы папка получила следующую структуру:
mkdir -pv /media/Backup/folder_name__`date +%Y%m%d`
Backup/
└── folder_name__20180910
├── user
└── user1
команда rsync, чтобы сделать так:
rsync -a /home/user /media/Backup/folder_name__20180910
rsync -a /home/user1 /media/Backup/folder_name__20180910
ВНИМАНИЕ: если исходный путь будет концом с / то не будет создавать папку назначения, но синхронизировать все данные в корневой папке назначения.
Теперь у Вас была точная копия в месте, Вы уверены, что данные не будут, получил доступ во время процесса резервного копирования, это важно, чтобы гарантировать качество данных и также позволить tar, работающему правильно, это основывает возрастающее на метке времени файлов. давайте создадим наш архив:
tar --create \
--file=/path/where/you/like/folder_name__20180910.tar \
-C /media/Backup/ \
--listed-incremental=/var/log/db.snar \
folder_name__20180910
ВАЖНЫЙ: tar базы данных создает, должно быть то же также в будущем, если это изменится, то у Вас всегда будет полное
Теперь у нас есть наше первое резервное копирование! давайте зашифруем его!
password=`date | md5sum | cut -c1-15`
echo ${password} > /root/folder_name__20180910.pwd && chmod 400 /root/folder_name__20180910.pwd
/root/folder_name__date1.pwd
7z a -mhe=on -p`echo ${password}` \
-t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on \
/path/where/you/like/folder_name__20180910.7z \
/path/where/you/like/folder_name__20180910.tar
здесь мы генерируем случайный пароль от md5sum даты (можно использовать различный способ сделать это), сохраняют пароль в файле, соответствуют архиву и сохраняют его в к / корневой папке после этого, мы создаем сжатый архив.
последний шаг, копия это удаленно на облачном сервисе, я предполагаю, что Вы читаете документацию, и учетная запись в rclone настроена как remotecopydata и если Вы хотите remotecopypassword
rclone copy /path/where/you/like/folder_name__20180910.7z remotecopydata:Backup
rclone copy /path/where/you/like/folder_name__20180910.7z remotecopypassword:Backup
Bash Для автоматизации в избить быстрый и грязный способ, которым Вы могли просто адаптировать команду в этом сообщении в файле, это должно работать! Для добавления некоторого управления читает документацию удара по tlpd.org или ищут также здесь, большой вопрос на команде удара к тому, как сделать что-то.
Позволять скрипту, запущенному автоматически каждый день в полночь:
crontab -e
и добавьте:
MAILTO=amail@boxes.org
0 0 * * * /path/to/your/scrypt.sh
MAILTO = позволяют всем сообщениям из сценария, отправленного в настроенную электронную почту. Добавьте некоторое управление к сценарию, прежде чем выполнено это автоматически
Это - все, я надеюсь, что Вы найдете это сообщение полезным!
Я предлагаю, чтобы Вы установили rsnapshot. В конфигурационном файле можно установить следующее:
backup /etc/ localhost/
установил бы/etc/, который будет сохранен в localhost/папку. Таким образом можно также создать резервную копию других каталогов и поместить их в другом месте (хотя я предлагаю, чтобы Вы создали местоположение резервирных копий для каждого хоста, который Вы планируете скопировать).
rsnapshot делает возрастающие резервные копии и оставляет свободное место при помощи символьных ссылок. Таким образом каждое резервное копирование является полным резервным копированием рассматриваемого каталога, не используя дополнительное пространство.
Для автоматизации этого установите cronjob. Выполненный sudo crontab -e
и добавьте правила как это:
0 4 * * * /usr/bin/rsnapshot alpha
0 3 * * 3 /usr/bin/rsnapshot beta
0 2 1 * * /usr/bin/rsnapshot gamma
Это ежедневно делает альфа-резервное копирование, бета копируют один раз в неделю по средам, и гамма резервное копирование один раз в месяц. Конечно, установите это однако, Вы хотите. Документация имеет рекомендации, включая порядок (за день) между альфой, бетой и гаммой. Ни одно из этого (до сих пор) не требует сценариев удара. rsnapshot
и cron
обработает все здесь.
Однако последней вещью, которую Вы хотите, является шифрование и загружающий на облако. Я честно не знаю, как сделать это - извините! Если бы я отступил до Dropbox, то я должен был бы постоянно удалять файлы... что-то, что уже делает rsnapshot.
Я предполагаю, что можно использовать tar
и gzip
заархивировать и сжаться и затем gpg
зашифровать. Но, если у Вас есть другой компьютер или NAS дома или работа, я предлагаю, чтобы Вы просто скопировали свои файлы в него. Или, как конфигурационный файл (/etc/rsnapshot.conf
) говорит, можно резервировать другой компьютер удаленно. т.е.:
backup root@example.com:/etc/ example.com/
Существуют опции для Вас смонтировать (т.е. присоединение) внешний диск, создать резервную копию и затем размонтировать его, также.
Так или иначе я знаю, что это не каждая вещь, которую Вы попросили, но я надеюсь, что она помогает.