Каков наиболее эффективный способ реализации задачи cron для резервного копирования базы данных MySQL и отправки ее по электронной почте самому себе?

485
James Valente

Какой самый эффективный способ автоматически создать резервную копию базы данных MySQL, распаковать ее и отправить по электронной почте в конкретную учетную запись?

Я немного параноидален по поводу потери базы данных моего форума, и я обычно занят в течение недели и часто забываю делать еженедельное резервное копирование (вместо этого, делать раз в две недели или ежемесячно, что не так уж плохо, но менее часто, чем я) хотел бы). Настроить его с помощью cronjob и электронной почты (или FTP / SFTP, как я только что понял, что одна из баз данных будет слишком большой для размещения в электронном письме) будет намного проще, а также менее подвержено риску. чтобы я забыл.

Как я сейчас на это смотрю

mysqldump dbname> YYYY-MM-DD_dbname.sql gzip YYYY-MM-DD_dbname.sql Либо отправьте YYYY-MM-DD_dbname.sql.gz в качестве вложения в адрес электронной почты, либо отправьте его по FTP на другой сервер и отправьте электронное письмо, сообщающее мне, что резервное копирование и передача прошла успешно.

Есть ли лучший способ сделать это? Какие-нибудь примеры того, как вы это сделали?

0

1 ответ на вопрос

1
David Z

Я не думаю, что вы можете сделать намного лучше, чем у вас есть. Я бы, наверное, использовал что-то вроде следующего:

  • создать дамп базы данных
  • сжать или сжать другим способом (технически необязательно)
  • использовать scpили rsyncскопировать файл на другой сервер
  • запустить контрольную сумму на удаленном сервере, чтобы проверить копию (необязательно)
  • удалить исходный дамп базы данных (необязательно)
  • отправить электронное письмо с указанием успеха

Или, если какой-либо шаг этого не удастся, выйдите и немедленно отправьте электронное письмо с объяснением ошибки. (Я предполагаю, что у вас есть необходимые инструменты доступны, например, rsyncили scp, sha1sumили md5sum, gzip, mailили sendmailили эквивалент)

Я бы не пометил часть контрольной суммы как необязательную. В тот день, когда дБ вылетает, и вы все счастливы, потому что у вас есть недавняя резервная копия, только чтобы узнать, что она повреждена, я не хотел бы испытать это. Кроме того, я бы, вероятно, использовал xz вместо gzip, только потому, что полученный файл меньше по размеру. tamtakos 13 лет назад 0
@tamtakos: если вы пропустите шаг контрольной суммы, если с остальными шагами ничего не происходит, дамп базы данных будет перенесен. Это делает это необязательным. (В противоположность, скажем, шагу `scp`, который нельзя пропустить) Я думаю, вы хотите сказать, что контрольная сумма должна быть настоятельно рекомендована, и с этим я согласен. David Z 13 лет назад 0

Похожие вопросы