Непослушные файлы или конфликт кодировок при копировании через 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

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

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

HTTP авторизация для nginx

Декабрь 3, 2019 г.

Задача возникла в контексте SEO, требовалось предотвратить индексацию тестовых сайтов поисковыми системами. На практике видно, что инструкции файла robots.txt ...

Читать

Как правильно добавить строку в crontab

Май 31, 2025 г.

cron — это системный планировщик задач в Linux. Он позволяет запускать команды по расписанию, например: каждые 15 минут отправлять запрос на сайт или запускать скрипт. В статье разберём два способа как правильно добавить новую строку в crontab, на ...

Читать

Выполнение команды от имени другого пользователя

Март 17, 2022 г.

Команда su позволяет выполнить любую операцию от имени существующего пользователя. К примеру от имени пользователя nginx: [crayon-69880048c7619692104102/] Должно вывести nginx, но скорее всего ничего не получится и вы увидите сообщение ...

Читать

Настройка VPN для преодоления блокировок

Сентябрь 8, 2024 г.

Продолжается развиваться ситуация в духе "все запретить", на этот раз прикрыли youtube. Понятно, что это ожидалось, и площадка youtube вовлечена во все ...

Читать
 

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

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



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

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

  1. catcoder:

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

  2. Дмитрий:

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