ОК разбрахме те ;)
Къде MySQL записва данните си зависи най-вече от
дистрибуцията, която ползваш, но това в случая е без
значение, тъй като за архивиране на бази данни се прави dump
на базата в sql формат. Архивирането на самите файлове също
е възможно но не е препоръчителния вариант.
За dump на база данни MySQL разполага със собствен клиент,
наречен mysqldump ;)
В общи линии синтаксиса е както следва:
mysqldump -h$host -u$user -p$password --all-databases \
--opt > /path/to/$date.sql
За повече подробности man mysqldump.
За архивиране на файлове най-често се използва tar. Отново в
общи линии синтаксиса е такъв:
tar cPzf /path/to/$date.tar.gz /path/to/files/*
Всичко това може да си опишеш в bash скрипт, който да викаш
с cron и така да автоматизираш архивирането.
Колкото до това името на архивния файл да бъде datestamp, то
можеш в скрипта да зададеш стойност на променливата $date
така:
date=`date +%Y%m%d`
В случая datestamp ще бъде във формат YYYYMMDD. Отново за
повече информация man date.
И накрая искам да ти обърна внимание на следното:
Не е никак удачно да архивираш информация на същия дял, на
който е самата информация. Ако гръмне hard-а заминават и
данните и архива. Най-малко архивирай на друг дял от диска,
още по-добре на друг hard диск и при първа възможност
копирай на външен носител (ZIP, CD-R, CD-RW, whatever). А
най-добре да архивираш направо на външен носител.
А, и още нещо - внимавай с правата на bash скрипта тъй като
паролата за четене от базите данни е в прав текст. И си
създай нов потребител на MySQL с права само за четене на
базите, които ще архивираш.
|