Найпростішим способом автоматизувати це завдання було б поєднання дампів MySQL і роботи з кроном. Ви можете знайти багато інформації на цю тему на цьому та інших веб-сайтах, але заради завершення:
Створіть файл mysqldump.sh
Яка буде містити команду дампа mysql, яку ми заплануємо в роботі cron (замінимо користувача, пароль і шлях відповідно до вашого оточення):
mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz
Редагувати: Якщо ви хочете, щоб сценарій зберігав резервну копію у віддаленому місці, просто встановіть відповідний пристрій або поділіться і використовуйте шлях монтажу в сценарії.
Перевірте сценарій
Переконайтеся, що сценарій має дозволи на виконання:
chmod +x /path/to/mysqldump.sh
Виконати сценарій:
sh /path/to/mysqldump.sh
І перевірте, чи працює він правильно (файл резервної копії буде створено у вказаній папці резервного копіювання).
Створіть і заплануйте нову роботу з cron
У командному рядку введіть
sudo crontab -e
І додайте наступний рядок у нижній частині файлу:
30 23 * * * /path/to/mysqldump.sh
Це буде виконувати сценарій щодня о 23:30.
Розгорніть цей простий сценарій
Існує буквально безліч речей, які ви можете зробити, щоб вдосконалити цей простий метод резервного копіювання:
- Резервне копіювання до іншої системи
- Контроль місця на диску
- Повідомлення електронною поштою
- ...
Так що не закінчуйте тут і експериментуйте! :-)
Використовуйте інструменти резервного копіювання або хмарні сервіси резервного копіювання
Хоча вищезазначений метод є одним з найпростіших і може бути розширений у відповідності з вашими конкретними потребами, варто згадати, що існують інші альтернативи:
- резервні інструменти, такі як AutoMySQLBackup, додаток з відкритим кодом, який може полегшити процес налаштування електронного сповіщення, стиснення, шифрування, обертання та типу (наприклад, інкрементального) ваших резервних копій. Що стосується травня 2018 року, він доступний для сервера Ubuntu через APT.
- хмарні сервіси резервного копіювання, такі як BackupBird, myRepono, Bitcan тощо, що може бути цікаво, якщо ви керуєте декількома серверами баз даних і хочете централізовано керувати всіма їхніми резервними копіями.
Будь ласка, майте на увазі, що я жодним чином не пов'язаний з жодним із вищезазначених рішень та послуг, і я перелічу їх лише для довідки, тому використовуйте їх на свій страх і ризик.
Корисні посилання / посилання:
Cron -> https://en.wikipedia.org/wiki/Cron
MySQL Dump -> https://dev.mysql.com/doc/refman/5.7/uk/mysqldump.html
date +%F
- це автоматично вибере комбінацію року + місяця + дати, відповідної місцевості користувача (наприклад, я отримаюYYYY-MM-DD
).