itgraine
@itgraine

Как организовать резервное копирование сайтов на VPS?

Здравствуйте!
Подскажите как проще организовать резервное копирование сайтов и их баз данных? Какие пакеты для этого нужны? У меня настроен lamp на ubuntu 16.04 без панели управления.
Нужно делать автоматически копии файлов и mysql каждые три дня или неделю, и чтобы новые копии заменяли старые.
  • Вопрос задан
  • 372 просмотра
Решения вопроса 1
IvanDanko
@IvanDanko
Такой вариант копирования с помощью Cron подойдет https://vps.ua/wiki/install-linux-vps/cron/backup/ ?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
Вы это сейчас делаете руками? Что мешает это оформить в обычный bash скрипт?
Ну да ладно, вот https://habr.com/post/51966/ :)
Ответ написан
Комментировать
Sanes
@Sanes
На Ansible сценарий пишется буквально за час.

Примерно так
---
 - hosts: 'all'
   gather_facts: no
   vars_files:
    - 'vars/main.yml'

   tasks:
    - name: 'Sync'
      synchronize: src=/var/www/{{ username }}/ dest=/var/backups/{{ username }} owner=no group=no delete=yes
      tags: 'update'

    - name: 'DB backup'
      mysql_db: state=dump name={{ username }} target=/var/backups/{{ username }}/{{ username }}.sql login_user=root login_password={{ mysql_root_pass }}
      tags: 'update'

    - name: 'Sync restore'
      synchronize:
       src: /var/backups/{{ username }}
       dest: /var/www/
       delete: yes
       rsync_opts:
        - "--exclude=.sql"
      become: yes
      become_user: "{{ username }}"
      tags: 'restore'

    - name: 'Del MySQL database'
      mysql_db: name={{ username }} login_user=root login_password={{ mysql_root_pass }} state=absent
      tags: 'restore'

    - name: 'Add MySQL DB'
      mysql_db: name={{ username }} encoding=utf8 login_user=root login_password={{ mysql_root_pass }} state=present
      tags: 'restore'

    - name: 'DB restore'
      mysql_db: state=import name={{ username }} target=/var/backups/{{ username }}/{{ username }}.sql login_user=root login_password={{ mysql_root_pass }}
      tags: 'restore'

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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