Как сделать бэкап сайта посредством FTP

Иногда возникает необходимость сделать резервное копирование сайта (BACKUP), например, для локального хранения копии сайта, для переноса клиентского сайта на другой хостинг и т.д. Но как быть, если под рукой есть только FTP доступ?

Копия сайта (Dump) подразумевает дамп файловой системы и дамп БД. Соответственно, нам потребуется доступ к файловому менеджеру и msql.

При наличии лишь доступа к FTP (а это главное условие для нашей ситуации), мы можем скопировать сайт к себе локально, однако, если сайт на какой-нибудь CMS, то пофайловое копирование сайта может занять час и больше (удаленно архивировать файлы простые FTP-менеджеры не умеют).

Не ясен вопрос и с дампом БД. Если хостинг разрешает прямой доступ к msql, мы можем поискать его, поочередно добавляя к адресу нашего сайта приставки:

/admin/mysql/
/admin/phpmyadmin/
/admin/pma/
/db/
/dbadmin/
/myadmin/
/mysql/
/mysqladmin/
/mysql-admin/
/phpm/
/phpmy/
/phpMyA/
/phpmyad/
/phpMyAdmi/
/phpmyadmin/
/PMA/
/web/phpMyAdmin/

Если мы попали на страницу авторизации msql - нам повезло, мы сможем снять дамп БД для последующей работы!

Как видите, процедура снятия полного дампа сайта при наличии лишь доступа к FTP не выглядит радужной. Однако, не все так печально, как кажется. Полный дамп сайта (файловой системы и БД) снимается с хостинга буквально за пару минут: необходимы лишь некоторые инструменты, которые мы закинем на хостинг по FTP. Никакого громоздкого кода!

Как сделать Dump файловой системы сайта посредством FTP

Вы можете попробовать скачать файлы сайта (выделением и перетаскиванием) в FTP менеджере. Но нужно брать во внимание два обстоятельства:

  1. Сайт может копироваться полчаса, час и более;
  2. Очень велика вероятность, что на середине менеджер зависнет, оборвется связь с сервером, файлы скачаются не целиком и т.д.
Пофайловое копирование сайта
Пофайловое копирование сайта может занять час и более

Целесообразно упаковать содержимое файловой системы в архив и скачать одним файлом. Но FTP-менеджеры не умеют работать с архивами. Найти выход можно с помощью ftp-клиентов (например, ftpadmin или net2ftp), а можно не использовать постороннее ПО, а загрузить пару скриптов на копируемый сайт посредством FTP.

Используем библиотеку PclZip для работы с ZIP архивами

Библиотека PcLZip на PHP умеет работать с ZIP архивами (упаковывать и распаковывать файлы на сервере). Это один файл PHP весом чуть больше 200 Кб, который необходимо загрузить на сервер и обращаясь к этой библиотеке можно выполнять операции с упаковыванием и распаковыванием ZIP архивов на сервере.

Упаковка ZIP архивов на сервере

Например, чтобы упаковать весь сайт в архив, создадим файл add_to_archive.php и загрузим его в корень сайта (где поместим и файл библиотеки pclzip.lib.php):

<?php
define('ROOT', rtrim(str_replace('\\', '/', dirname(__FILE__)), '/'). '/');
$name_arch = ROOT. 'archive.zip';
$files_dir = rtrim(ROOT, '/');
$files_to_arch = array();
require_once(ROOT. 'pclzip.lib.php');
for($d = @opendir($files_dir); $file = @readdir($d);)
{
if($file!='.' && $file!='..')
{
$files_to_arch[]= $file;
}
}
chdir($files_dir);
$archive = new PclZip($name_arch);
$v_list = $archive->create(implode(',', $files_to_arch));
if($v_list == 0)
{
die("Error : ".$archive->errorInfo(true));
}
else
{
echo 'OK';
}
?>

Достаточно обратиться к этому файлу из своего браузера ваш_сайт.ру/add_to_archive.php: в считанные секунды получим извещение "ОК" и архив всего сайта в корне под названием "archive.zip".

Распаковка ZIP архивов на сервере

С помощью библиотеки PclZip мы можем загрузить архив на сервер по FTP и там же его распаковать. Нам потребуется создать файл extract.php с содержимым:

<?php
require_once('pclzip.lib.php');
$archive = new PclZip('archive.zip');
if ($archive->extract() == 0) {
die("Error : ".$archive->errorInfo(true));
}
?>

Теперь, чтобы разархивировать архив сайта под названием "archive.zip" в корне сайта, нам необходимо обратимся в браузере по адресу: ваш_сайт.ру/extract.php

Преимущества предложенного мною метода в том, что на архивирование и разархивирование сайта по FTP уходят считанные секунды времени!

Как сделать Dump базы данных посредством FTP

Если хостинг не разрешает прямого доступа к msql, сам msql можно загрузить по FTP и обратиться к нему из браузера. Естественно, чтобы снять дамп (копию) базы данных, нам будет достаточно компактной версии msql с базовым функционалом. Таким требованиям отвечает "Adminer" - компактный скрипт для управления базами данных от Jakub Vrana. Это 1 php файл весом не более 200 Кб!

При обращении к файлу adminer.php потребуется доступ от базы данных. А поскольку у Вас есть доступ к FTP, то такие данные можно взять в конфигурационном файле вашей CMS (например, в WordPress данные от базы данных находятся в файле wp-config.php).

Урезанная версия MySQL
Урезанная версия MySQL (Adminer) позволяет импортировать и экспортировать БД

Осталось прикрепить все файлы к статье! Быстрого Вам резервного копирования!

PcLZip
PcLZip
PcLZip.zip
Version: 2.6
33.0 KiB
145 Downloads
Детали...
Adminer
Adminer
adminer.zip
85.2 KiB
167 Downloads
Детали...
Оцените материал:
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (5 голоса, рейтинг: 4,60 из 5)
Загрузка...

Вячеслав - типичный интернетчикВячеслав Скоблей (ака files) - типичный интернетчик. Скитаюсь интернетом, пишу на PHP, увлекаюсь созданием веб-сайтов на Wordpress, решаю многочисленные проблемы, которые до появления интернета не существовали...

Специализируюсь на безопасности сайтов: защищаю сайты от атак и взломов, занимаюсь лечением вирусов на сайтах и профилактикой...

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

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

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