Непослушные файлы или конфликт кодировок при копировании через FTP

Сайты иногда переезжают с одного хостинга на другой. И когда это случается, приходится выполнить как минимум две операции — копирование файлов и копирование базы данных на промежуточный хост.

Этот промежуточный хост, обычно, рабочая станция под управлением MS Windows, тогда как подавляющее большинство сайтов размещаются на Unix-совместимых серверах. И тут может возникнуть ситуация когда FTP клиент не сможет скопировать часть файлов на промежуточный хост, из за того что кириллическая кодировка имен файлов в UNIX системе (традиционно KOI8-R) не позволит создать файлы на промежуточном хосте.

Обычно это файлы изображений, которые залил при редактировании статей сайта администратор или редактор сайта по протоколу http. В тот момент кодировки верно состыковались, и UNIX перекодировал имена файлов в свою кириллическую кодировку.

В принципе, если ничего другого не остаётся, то можно скопировать эти картинки по http. Пройтись по списку не переданных файлов в вашем ftp клиенте и файл за файлом скачать их с помощью браузера. Но таких файлов может быть довольно много, и путь этот тернист :).

Если же есть доступ по ssh протоколу — а он есть практически всегда на коммерческом хостинге, то проще будет прибегнуть к следующему незамысловатому приему. Упакуйте папку с файлами сайта (или только с пользовательскими файлами сайта), и уже этот архив скачайте по ftp. Можно для упаковки использовать утилиту TAR, тогда команда для упаковки файлов в текущем каталоге будет выглядеть примерно так:

tar -cvvf site-files.tar ./

Потом архив закачивается по FTP на конечный веб-сервер и там уже разворачивается обратной командой:

tar -xvvf site-files.tar

В итоге, кодировка без проблем переживет переезд в контейнере архивного файла. Подразумевается, что кодировки на веб-серверах совпадают.

Написать комментарий

Мало букафф? Читайте есчо !

Подсчет времени выполнения скрипта в UNIX

Сентябрь 12, 2018 г.

Для того чтобы подсчитать время выполнения, нам понадобится получать время в текущий момент и вычислять разницу. Обе задачи вполне решаемы в консоли UNIX. Дату мы получим в виде числа секунд и микросекунд с начала UNIX эпохи [crayon-5ce7cebc6bd8d760394675/] ...

Читать

Создание бекапов базы mySQL из консоли unix

Февраль 13, 2018 г.

Ещё одна шпаргалка по администрированию UNIX серверов. На этот раз рассмотрим несколько полезных команд для создания бекапа базы данных из консоли. Нам понадобится команда mysqldump, которая позволяет создавать sql скрипт базы или её части. Создание ...

Читать

 

Комментарии к «Непослушные файлы или конфликт кодировок при копировании через FTP»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Непослушные файлы или конфликт кодировок при копировании через FTP”

  1. catcoder:

    Очень помогла подсказка. Клиент залил на тестовый сайт кучу картинок с названиями на кириллице, и когда пришло время переносить сайт на основную площадку, вылезла неприятность.
    Ваш способ очень сэкономил время и нервы.
    Спасибо!

  2. Дмитрий:

    Огромное спасибо за правильную команду :)