Перейти к содержимому
www.mytechnote.ru
Меню
  • Администрирование
    • Скрипты
  • Оборудование
    • Обзоры
    • Инструкции
  • Прочее
  • Русский
    • English
    • Русский
Меню

Как делать бэкап сайта на хостинге. Пример скрипта.

Если у вас есть сайт, то вам просто необходимо регулярно делать его бэкап. Для популярных CMS, зачастую существуют модули для создания бэкапов. Но на общественном хостинге они скорее всего работать не будут, из-за ограничений по времени выполнения скриптов или ожидания веб сервера. На этот случай, некоторые хостинг провайдеры предлагают делать бэкап встроенными средствами панели управления хостингом или использовать cron/ssh. Ниже я покажу вам пример скрипта, которым я делаю бэкап этого сайта, как раз-таки при помощи планировщика заданий cron на хостинге. При этом этот бэкап на хостинге не хранится, и не занимает лишний объем далеко не безграничного пространства (да и смысла нет никакого хранить бэкап там же где он делается).

Короче наша процедура будет состоять из двух частей:

1) Собственно, создание бэкапа, для этого будет выполняться скрипт на хостинге

2) Перенос этого бэкапа в другое место, например на домашний компьютер. Здесь будет еще один скрипт, который соответственно будет выполняться на компьютере.

И так, скрипт №1:

tar czf ~/domains/site.ru/backups/tmp/files.tgz ~/domains/site.ru/public_html/
mysqldump -h 'server.hosting.ru' -u 'user' -p'password' db_name>~/domains/mytechnote.ru/backups/tmp/mysql.sql
tar czf ~/domains/site.ru/backups/site_ru_$(date +"%Y-%m-%d").tgz ~/domains/site.ru/backups/tmp/*
rm -rf ~/domains/site.ru/backups/tmp/*

Давайте разберем этот скриптик:

В первой строчке мы сжимаем все файлы сайта и помещаем их во временную папку.

Во второй мы делаем дамп базы данных MySQL, соответсвенно вам нужно заменить параметры подключения к базе, а именно имя сервера, имя пользователя, пароль и имя базы.

В третьей строчке мы объединяем архив файлов и дамп базы в один файл.

В четвертой мы удаляем файлы из временной папки.

Для работы этого скрипта у вас должны быть созданы папки куда будет делаться бэкап (backups и backups/tmp).

Сохраняем этот скрипт куда-нибудь на хостинге, даем имя, например, backup.sh. Не забываем дать права на исполнение этому файлу.

После этого переходим к настройке cron на вашем хостинге, в зависимости от используемой провайдером панели, процедура настройки может отличаться, но принцип будет один. Нам нужно создать расписание, указать когда оно должно выполняться и в качестве программы нужно указать следующее — /bin/sh /home/ваше_имя_пользователя/путь/до/сккрипта/backup.sh

Бывают панели, где расписание не очень понятно задается, я поясню. Вы можете задать 5 цифр в настройках. Первая означает минуты, вторая часы, треться день месяца, четвертая месяц, пятая день недели. То есть если мы хотим что бы бэкап делался раз в день, в 8 утра, то ваше задание должно выглядеть так:

0 8 * * * /bin/sh /home/ваше_имя_пользователя/путь/до/сккрипта/backup.sh

На скриншоте можно посмотреть, как это выглядит у моего хостера.

С первой частью закончили, теперь приступим ко второй. Как я уже говорил, что бы не занимать лишнее место на хостинге мы будем копировать наши файлы по ftp и после копирования удалять их с хостинга. Для этого удостоверьтись, что на хостинге у вашего ftp пользователя есть доступ к папке куда складывается бэкап. Если нет, то создайте еще одного пользователя, либо дайте доступ существующему.

Cкрипт написан под Linux, но под Windows принцип будет примерно такой же, погуглите на тему bat ftp.

#!/bin/bash
ftp -in адрес_ftp << END_SCRIPT
user Ваше_имя_пользователя ваш_пароль
binary
cd /backups
lcd /mnt/wd-backup/backup/site
mget site*
mdelete site*
END_SCRIPT

 

Разберем этот скрипт.

Во второй строчке подключаемся к серверу, вам нужно указать адрес ftp сервера.

В следующей строчке вы должны указать имя и пароль вашего пользователя

В четвертой переходим в папку на ftp сервере, путь указывается относительно корня ftp, то есть относительно той папки в которую вы попадаете, когда заходите на сервер по FTP.

Далее переходим в папку на нашем компьютере.

Затем копируем все файлы, у которых название начинается на site.

После чего удаляем эти файлы.

Сохраняем этот скрипт куда нибудь, даем имя например ftp-copy.sh и даем этому скрипту право на исполнение.

chmod +x ftp-copy.sh

После этого создадим расписание, что бы скрипт запускался автоматически, для этого набираем команду crontab –e. И в открывшемся файле в самый низ, добавим строчку:

0 10 * * * /bin/sh /home/sanglyb/scripts/ftp-copy.sh

Соответственно вам нужно изменить путь до скрипта на ваш. Это задание будет запускаться каждый день в 10 утра.

Вот и все, теперь данные вашего сайта будут гораздо более сохранны. В итоге, у меня настроена так что, в 8 утра бэкап делается на хостинге и в 10 он копируется ко мне на компьютер.

Видео по теме:

Опубликовано в 01.05.201630.05.2024 от sanglyb

Навигация по записям

← Смотрим кино Звездные Войны: Эпизод IV через Telnet
Как сделать веб камеру из телефона с Android. →

2 комментария для “Как делать бэкап сайта на хостинге. Пример скрипта.”

  1. Константин:
    21.07.2017 в 13:11

    Добрый день!Первая часть

    Добрый день!

    Первая часть скрипта Cron разобрался и всё работает.

    Большое спасибо!

    Вот передача не получилось.

    У меня стоит задача сделать так:

    Есть FTP сервер  ПРИМЕР:

    http://ftp.mir.ru
    Логин : mmm77
    Пароль: 2527
     
    Мой файл находится на хостинге в папке 
    /home/r/server/сойсайт.ru/public_html/backups/
    ФАЙЛ начинается название site
    Как будет выглядеть мой cron ?
     
    #!/bin/bash
    ftp -in http://ftp.mir.ru << END_SCRIPT
    user mmm77 2527
    binary
    cd /backups  
    mget site*
    mdelete site*
    END_SCRIPT
     
    Так же интересует если  у мен на ftp нестолько папок как сделать что бы с этого хостинга файл приходил в папку /moisait_ru/ 
    Ответить
    1. sanglyb:
      26.07.2017 в 17:21

      То что в статье — вторая

      То что в статье — вторая часть — не для отдельного ftp, это хозяйство запускается на локальном компьютере, например, соответсвенно ftp сервер — это ваш хостинг. А дальше посмотрите повнимательнее на описание под кодом, там все подробно описано.

      P.S. Скоро плаанирую выложить еще один пример скрипта, для заливания с хостинга на отдельный FTP сервер. Правда пока не знаю на сколько скоро =)

      Ответить

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Подписывайтесь

Youtube
vk
telegram
github
twitter
rss
  • Форум
  • Об авторе
  • Поддержать автора

Популярные записи

Новые записи

  • Как расширить LVM раздел в Linux
  • Исправление ошибки SrsResources.dll после обновления SSRS для SCCM
  • Проблема при использовании библиотеки PassFiltEx на старых процессорах
  • Как удалить вложения из старых событий календаря в Exchange с помощью скрипта
  • Как скачать и установить Office 2024 LTSC

Архивы

  • 2026 (3)
  • 2025 (5)
  • 2024 (7)
  • 2023 (6)
  • 2022 (5)
  • 2021 (25)
  • 2020 (34)
  • 2019 (39)
  • 2018 (78)
  • 2017 (56)
  • 2016 (77)
  • 2015 (9)
© 2015-2026 www.mytechnote.ru
Использование материалов сайта возможно только с разрешения владельца или обязательна индексируемая, прямая, передающая вес ссылка на материал.