Мій підхід до бекапу файлів, БД під Centos
Робити бекапи рекомендується асоціацією психіатрів, тому що нервові клітини не відновлюються :). У цій статті пропоную один з можливих способів бекапу системних файлів, баз даних і директорій з сайтами.Я бекаплюсь за такою схемою:
- раз в два дні, глухий-темної ночі), робиться бекап бази (mysql)
- раз на чотири дні, глухий-темної ночі), робиться бекап сайтів (статика, сорци, темплейти і т.д.)
- кожен перший день місяця, робиться бекап системних папок, бекаплю тільки / etc /. тому в бекапи інших папок не бачу особливого сенсу
- раз в чотири дні інша машина Конект до основного сервера і забирає останні архіви
На початку кожного скрипта є набір змінних, в яких просто міняєте значення на свої.
Скрипт для бекапу mysql-бази. Мені бекапи всі бази не треба, тому я в змінної DB_LIST зберігаю список тих баз, що необхідно зберегти. Файли старше 10 днів (змінна FILES_OLDER_THAN) автоматично видаляються.
Скрипт який бекап вміст папок з сайтами. Я хочу що-б кожен архів мав вигляд www-імя_сайта-Дата.tar.gz. Перша ідея яка прийшла в голову - асоціативні масиви (хеші), в ключі зберігається імя_сайта в значенні - шлях до сайту в файлової системі. Але bash підтримує хеш-кодування починаючи з версії 4, а на сервері стоїть bash 3.2, робити апдейт я полінувався :). Друге рішення, більш примітивне, завести два окремих масиву, в одному зберігати назви сайтів (змінна WWW_NAMES), в іншому - шляхи до сайтів (змінна WWW_PATHS). Файли старше 10 днів (змінна FILES_OLDER_THAN) автоматично видаляються.
Скрипт бекапу системних папок схожий один в один на попередній, тільки в масиві SYS_NAMES зберігаються імена системних папок, а в масиві SYS_PATHS шляху до них.
і говоримо коли запускати скрипти
Скрипт який знаходиться на іншій машині, яка Конект по ssh до основного сервера і забирає останні архіви.
В скрипті є одна вада - він протягом місяця забирає один і той же файл декілька разів (системні папки, які бекапи раз на місяць), але мене це майже влаштовує і щось допілівать поки лінь.
Буду радий порад, рекомендацій бувалих адмінів.
Всі скрипти одним архівом. користуйтеся на здоров'я :).