Поскольку я не совсем администратор сервера, но мне всегда не терпится узнать что-то новое.
Мне нужно позаботиться о выделенном сервере. На этом сервере 2 виртуальные машины и на каждой виртуальной машине сайт (веб-приложение).
Обе виртуальные машины имеют только интерфейс командной строки CentOS 7. Я подключаюсь через физический сервер по SSH. Когда я вхожу туда, я подключаюсь по ssh к любой виртуальной машине.
Я нашел сценарий bash для tar и сжатия папки / var / www и загрузил его на FTP-сервер. Это работает нормально, но загруженные файлы всегда повреждены. Этот скрипт также делает распакованный дамп баз данных mysql. Этот файл тоже поврежден.
Итак, мой вопрос: помимо исправления того, что повреждает файлы (сама резервная копия, загрузка или FTP-сервер), это хороший способ ?? Как насчет файлов conf (apache2, mysql, другие). Могу я просто добавить их в процедуру резервного копирования?
Я думаю, что для этого есть несколько более чистых и практичных инструментов / скриптов. Я также пробую много веб-администраторов, таких как webmin, ajenti, centos webpanel. Но мне не нравится использовать графический интерфейс на сервере.
TL; DR: нужно знать, есть ли хороший способ резервного копирования / var / www, mysql dump и других файлов (таких как apache2 и mDB conf) на FTP, Dropbox, Cloud.
Спасибо за ваше время. Извините за мой английский.
Это хороший метод резервного копирования, в зависимости от ваших потребностей, с некоторыми плюсами и минусами.
Тем не менее, это довольно распространенный метод, поэтому, если вы можете жить с плюсами и минусами, используйте его.**
Проблема с повреждением FTP
Я предполагаю, что файлы FTP повреждены, потому что они не загружаются в режиме BINARY, а вместо этого передаются в режиме ASCII. Также обратите внимание, что FTP небезопасен, и ваши учетные данные и резервные копии потенциально могут быть перехвачены.
Несжатый дамп MySQL
Сжать резервную копию. Резервное копирование займет больше времени, но вы наверняка компенсируете это время на копирование. Вы можете добиться этого с помощью такой команды:
mysqldump -u root -pPASS --all-databases | gzip -9 > mysql.sql.gz
Резервное копирование других конфигов
Да, вы можете просто добавить их в резервную копию. Если вы делаете резервную копию /var/www
теперь измените вашу команду примерно так:
tar cf backup.tar mysql.sql.gz /var/www /etc/apache2/conf* /etc/my.cnf /var/spool/cron /etc/ssh
В приведенном выше примере выполняется резервное копирование / var / www, каталогов конфигурации Apache, файла конфигурации MySQL, пользовательских crontab в / var / spool / cron и конфигурации SSHD. При необходимости вы можете добавлять в список файлы / каталоги.
Затем после того, как резервное копирование будет выполнено, перенесите резервную копию в удаленную систему и удалите ее.
Надеюсь, это поможет!
*Если вы можете его поддержать или у вас есть удаленная система, на которую вы можете делать резервную копию, посмотрите rsync.
По сути, вы можете написать команду для резервного копирования всех файлов / каталогов, как указано выше, за исключением того, что они надежно копируются в удаленную систему и также передаются более эффективно. Если у вас есть файлы, которые не изменились между резервными копиями, они не будут скопированы. Если у вас большой файл (например, файл журнала), то копируются только измененные части, что позволяет сэкономить много данных.
Система резервного копирования должна быть доступна через SSH (с использованием ключей или пароля) и иметь установленный rsync. Тогда вы сможете гораздо эффективнее управлять своими резервными копиями. Для дополнительной безопасности вы можете сделать резервную копию файлов на сервере резервного копирования и сохранить историю.
** В зависимости от ОС вашего хоста вы можете изучить программное обеспечение для резервного копирования на уровне блоков, которое может создавать резервные копии вашей системы или виртуальных машин в реальном времени, которые можно использовать для восстановления виртуальной машины с нуля.