Быстро скопировать весь сайт
Зачастую нам требуется перенести большой сайт со старого сервера на новый, при этом сайт очень большой. К примеру это Битрикс24 портал.
С кучей медиа контента в сотни гигабайт, а места на сервере и так мало и даже для 1 бэкапа места уже не хватает.
Хотелось бы найти самый быстрый способ переноса сайта, из плюсов данного способа:
для этого у нас должные быть доступы по ssh к серверам.
На сервере куда нам нужно скопировать сайт мы создаем папку ( можно сразу на место расположения сайта)
я создам папку ( во втором примере она создастся сама)
Теперь все что нам остается на сервере от с которого мы копируем выполнить 1 команду.
Если же нам нужно скопировать скажем только файлы за последние 6 дней ( к примеру обновить на dev сервере контент с продушена, не копируя все файлы подряд.
find - искать рекурсивно от каталога, в данном случае"."
-type f - только файлы ( каталоги создадутся поскольку будут в путях к этим файлам)
-mtime -6 за последние 6 дней
-print0 - просто вывод find в 1 без переноса строки
В результате в папке /tmp/11 получим древовидную структуру с файлами за последние 6 дней. В моем случае это было 20 файлов против 4Гб мелких файлов.
С кучей медиа контента в сотни гигабайт, а места на сервере и так мало и даже для 1 бэкапа места уже не хватает.
Хотелось бы найти самый быстрый способ переноса сайта, из плюсов данного способа:
- Копирование по интернету должно идти в 1 поток, то есть 1 файл. ( так значительно быстрее чем множество мелких файлов, зачастую на несколько порядков)
- Минимальный размер архива с обоих сторон, желательно размером в 0 кб
- Возможность переноса сайта с сервера на котором занято 100% дискового пространства.
- Так же минимальный размер бэкапа на сервере куда заливается сайт, желательно так-же 0 кб
- Минимальный размер файла, при больших проектах это имеет значение.
для этого у нас должные быть доступы по ssh к серверам.
На сервере куда нам нужно скопировать сайт мы создаем папку ( можно сразу на место расположения сайта)
я создам папку ( во втором примере она создастся сама)
mkdir /tmp/11
Теперь все что нам остается на сервере от с которого мы копируем выполнить 1 команду.
tar cvfz - /home/bitrix/ext_www/ministerstvo24.ru/upload/mail/ |ssh root@11.111.111.11 "cd /tmp/11;tar xvfz -"где
root@11.111.111.11логин и айпи сервера куда нужно перенести сайт. ( пароль введете в диалоговом окне)
Если же нам нужно скопировать скажем только файлы за последние 6 дней ( к примеру обновить на dev сервере контент с продушена, не копируя все файлы подряд.
cd /var/www/site.ru/upload; find . -type f -mtime -6 -print0 | tar --null --files-from=/dev/stdin -cf - | ssh root@11.111.111.11 tar -xf - -C /tmp/11Тут немного поясню.
find - искать рекурсивно от каталога, в данном случае"."
-type f - только файлы ( каталоги создадутся поскольку будут в путях к этим файлам)
-mtime -6 за последние 6 дней
-print0 - просто вывод find в 1 без переноса строки
В результате в папке /tmp/11 получим древовидную структуру с файлами за последние 6 дней. В моем случае это было 20 файлов против 4Гб мелких файлов.
Перенос 1С-биртик сайта с исключением каталогов.
tar -cvpzf - --directory /home/bitrix/www --ignore-failed-read --exclude='./bitrix/tmp' --exclude='./bitrix/updates' --exclude='./bitrix/backup/*\.gz*' --exclude='./bitrix/backup/*\.tar*' --exclude='./bitrix/cache' --exclude='./bitrix/managed_cache' --exclude='./bitrix/stack_cache' --exclude='./upload' --exclude='./stats' --exclude='./bitrix/www/bitrix/.settings.php' --exclude='./bitrix/php_interface/dbconn.php' . |ssh root@192.168.0.246 "cd /home/bitrix/www;tar xvfz -"
Оставить комментарий