.png)
Пожалуйста, учтите, что я не системный администратор, поэтому у меня ограниченный опыт работы с соответствующими инструментами. Я знаю, что есть похожие вопросы, но я не могу найти ничего, что соответствовало бы моим потребностям.
В похожем вопросе кто-то предложилрезервное копирование2лно выглядит устаревшим и недостаточно документированным. (Мне нужно что-то вродеэтотно постепенно)
Поэтому я хотел бы понять, какие готовые решения являются наилучшими или создать простой скрипт bash для этой задачи. (к сожалению, я не очень хорош в bash)
Цель
Я хотел бы сделать инкрементное резервное копированиеpublic_htmldir моего сайта.
Идея заключается в том, чтобы хранить инкрементную резервную копию ежедневно и хранить только 1 месяц (но сохранять предыдущий месяц):
2015-10/ -> contains a full/incremental backup of last month
2015-11/ -> contains a full/incremental backup of current month
так в начале декабря.2015-10удалить и2015-12создаться.
Сценарий
Я нахожусь на общем сервере с ограниченным cli-инструментом (rsync/tar) и только 16 ГБ.
Мне нужно сделать резервную копию моего сайта magento.
Поскольку код размещен на , git
я заинтересован в ежедневном резервном копировании только папки media (исключить media/product/cache
)
Сейчас я использую этот скрипт для создания ежедневной резервной копии папки мультимедиа (но она не инкрементная).
#!/bin/bash
# Daily backup script
# Create some needed variable
day=$(date +%F)
File="/home/me/backup/files_$day.tar.gz"
File_media="/home/me/backup/catalog_images_$day.tar.gz"
Folder="/home/me/"
Exclude_media_cache="public_html/media/catalog/product/cache"
# Backup Media
echo "-- Creating Catalog Image Backup ..."
tar -pczf $File_media -C $Folder public_html/media/catalog --exclude="$Exclude_media_cache"
решение1
Это слишком распространенная проблема, чтобы быть скриптами оболочки. Используйте один из многих инструментов, разработанных для этой цели.
Я рекомендуюrdiff-backup
для таких вещей.
Чтобы контролировать количество создаваемых инкрементных резервных копий и, таким образом, контролировать дисковое пространство, используйте его --remove-older-than
флаг.