Быстро перенести файлы с одного хостинга на другой

Тема в разделе "Администрирование серверов", создана пользователем Qwest-fx, 19 авг 2014.

Модераторы: mefish, stooper
  1. Qwest-fx

    Qwest-fx Постоялец

    Регистр.:
    3 апр 2007
    Сообщения:
    129
    Симпатии:
    39
    Появилась задача перенести много файлов в основном картинки
    с одного ftp на другой, по привычке в filezilla поставишь число потоков и всё.
    Но сейчас задача, чуть другая. Т.к. X сервера нет, и это как-то глупо ставить иксы чтобы скачать/заказать файлы.

    Как скачать себе файлы, я нашёл
    Вот, возможно кому-то пригодится

    Осталось решить как отправить всё.
    При перекачивании возникли ошибки, файлы с русскими буквами.
    Как отправить файлы на другой ftp, тоже несколько потоков?
    Как скачать файлы с неправильной кодировкой имени?
     
    Шумадан нравится это.
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.722
    Симпатии:
    2.097
    если на сервере есть установлено хоть что либо которое подразумевает упаковку, даже тот же php, лучше завернуть всё в либо tar либо другой архив, качнуть архив и на другом сервере распаковать
     
    Джуга, Ctrogan, hbs и ещё 1-му нравится это.
  3. Kenny

    Kenny newbie

    Регистр.:
    17 авг 2006
    Сообщения:
    456
    Симпатии:
    141
    Лучше всего scp, если есть доступ через ssh.
     
    Шумадан и metsys нравится это.
  4. Qwest-fx

    Qwest-fx Постоялец

    Регистр.:
    3 апр 2007
    Сообщения:
    129
    Симпатии:
    39
    Нет доступа к ssh
    я предпочитаю rsync -Saz и так далее, если есть доступ.
    По поводу упаковки, покажите мне хостинг который даст много памяти чтобы в архивы собирать гигагайты? Да ещё и с помощью php. Это сколько времени надо, чтобы с помощью php сжать 4 гига, картинок, и потом их скачать, а распаковывать потом как?
    Не надо придумывать и выкручиваться, есть vps есть ssh доступ.
    Нужно с помощью этой vps заливать/качать, т.е. использовать как посредника с быстрым интернетом. cli only
    Надеюсь, что кто-то приведет пример использовать lftp в обратном направлении, в многопоточном режиме
     
    Шумадан нравится это.
  5. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.722
    Симпатии:
    2.097
    если у вас достаточно места на сервере, то не обязательно упаковывать, достаточно сделать tar и его скачать одним файлом. если есть ssh, то достаточно запустить команду
    Код:
    tar -zcvf archive-name.tar.gz directory-name
    - это с упаковкой
    Код:
    tar -cvf archive-name.tar directory-name
    - это без упаковки

    и даже на достаточно хлипком хостинге, пхп шелл, при условии, что таймаут на выполнение скриптов большой - эти команды успешно делали своё дело. если это нужно сделать единожды - проще способа не придумать

    использование фтп или sftp для скачивания большого колличества файлов - нерационально
     
    Swman, Джуга, Ctrogan и 2 другим нравится это.
  6. metsys

    metsys

    Регистр.:
    27 апр 2014
    Сообщения:
    380
    Симпатии:
    384
    А что это за rsync -Saz без консоли ssh ?
    Шумадан и Кенни дали Вам вполне годные варианты. Если они Вас не устраивают, это частный случай, который требует частного решения, а возможно и реализации.
    Возможно найдете что то в этой статье http://habrahabr.ru/company/xakep/blog/210480/
    или пилите свой многопоточный файловый менеджер на пхп.
     
    Шумадан нравится это.
  7. Qwest-fx

    Qwest-fx Постоялец

    Регистр.:
    3 апр 2007
    Сообщения:
    129
    Симпатии:
    39
    Всё что написано выше это замечательно, и даже то что, tar есть уже в php
    PHP:
    <?php
    try {
        
    $a = new PharData('archive.tar');
        
    $a->buildFromDirectory('test/');
    } catch (
    Exception $e) {
        echo 
    "Exception : " $e;
    }
    Но всё же, мне нужно было, что-то на примере этого

    Работает в обратном направление, т.е. отправляет на ftp файлы.

    И если у Вас есть VPS/Dedicated с хорошим интернетом, то перенести сайты с огромным числом файлов, не составляет труда.
    Главное запустить команду в screen, и после проверить логи.
    Подытоживая тему, хотелось услышать именно консольные инструменты для работы параллельно/многопоточно по протоколу ftp в *nix подобных системах.
    Возможно эти строчки кому-то помогут.
     
  8. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.722
    Симпатии:
    2.097
    консольные шелл или реализация аплоадера на php?
    шелл
    на похапе
    важно отметить, что при передаче большого количества файлов, даже в многопоточном режиме вы будете терять на каждом файле время на открытие и закрытие фтп соединения, что в итоге добавит к общему времени копирования.
     
  9. Trepepe

    Trepepe Создатель

    Регистр.:
    17 фев 2007
    Сообщения:
    20
    Симпатии:
    8
    rsync -avuz /var/www/example.com/ root@108.175.12.239:/var/www/example.com/
    самый быстрый способ - файлы сжимаются при передаче
     
    ncuxo3 нравится это.