Я запланировал задание cron для резервного копирования баз данных mysql в ubuntu9.10. Я использовал следующие записи в файле cron.
37 4 * * * root /usr/bin/mysqldump -u root -p<mysql-password> --all-databases > /usr/backup/mysqlbkup/all-databases.sql
Резервное копирование всех баз данных помещается в один файл, называемый all-database.sql. Это то, что я хотел. Но если я хочу восстановить одну базу данных, мне придется восстановить все базы данных. Есть ли хитрость для резервного копирования всех баз данных mysql в каталог с индивидуальным именем?
Я предлагаю вам прочитать: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
. Вы можете создавать дамп различных баз данных с помощью: mysqldump [ options] --databases DB1 [DB2 DB3 ...]
Просто добавьте cronjob для каждой базы данных:
37 4 * * * root /usr/bin/mysqldump -u root -p<mysql-password> --databases database1 > /usr/backup/mysqlbkup/databases1.sql
38 4 * * * root /usr/bin/mysqldump -u root -p<mysql-password> --databases database2 database3 > /usr/backup/mysqlbkup/databases2_3.sql
Конечно, вы можете создать один сценарий bash для всех разных баз данных. и запустите этот скрипт из crontab. Кроме того, я бы распаковал это.
Гудлак
Да, есть.
Для тех, кто имеет несколько баз данных, скажем, 50 - 100, ввод его один за другим будет болезненным занятием
Вам нужно будет создать файл bash / shell, то есть файл с расширением «.sh», после чего вы сделаете его исполняемым, изменив его мод
chmod 777 <file_name>.sh
, затем введите свой код выше с этими несколькими изменениями;
что мы делаем здесь, это запрос mysql для списка базы данных ( s) и помещая вывод в цикл для каждого хода
database=`mysql --user=<enter username> --password=<enter password> -e "SHOW DATABASES"`
for db in $database; do
echo "$db"
mysqldump --user="<enter username>" --password="<enter password>" --databases "$db" > <path_to_store_your_database>/"$db".sql
gzip "$db"
done
Наконец, вы добавите файл в crontab
и составите расписание резервного копирования. Вы также можете запустить команду вручную, набрав:
bash <name of the file>.sh
или
sh <name of the file>.sh