Главная Новости TC Image Скрипты Программы Утилиты Плагины Файлы
Синхронизация каталогов и FTP-серверов
1. Цель
Эта функция может использоваться для обновления персональной домашней страницы на интернет-сервере. Страницы редактируются на локальной машине, закачиваются же только изменённые страницы. Вы должны быть весьма осторожны, чтобы правильно выполнять эту работу! Поэтому очень внимательно прочтите, пожалуйста, всё нижеследующее.
2. Проблема с датой/временем файлов при работе с FTP
Обычно, когда вы копируете файл из одного локального каталога в другой, сохраняются его дата и время его последнего изменения. Однако когда вы загружаете файлы на FTP-сервер, зачастую нет функциональной возможности сообщить серверу, каковы дата/время файла! Поэтому файлу на FTP-сервере всегда будет присвоено текущее местное время сервера! В этом и заключается проблема, поскольку даже после загрузки локальный и удалённый каталог будут различаться! Лишь некоторые серверы поддерживают какую-либо из команд для установки даты/времени удалённого файла (MDTM, MFMT, SITE UTIME).
3. Как эта проблема решена в Total Commander
Если сервер не поддерживает ни одной из команд MDTM, MFMT, SITE UTIME, то после успешной пересылки функция синхронизации устанавливает метку даты/времени локального файла по дате/времени удалённого файла. Теперь два файла будут выглядеть одинаково! Однако это может вызывать другие проблемы: вы не можете синхронизировать этот локальный каталог с любым другим каталогом на той же самой машине или с другим FTP-сайтом, поскольку всякий раз, когда вы пересылаете файл, его дата/время изменяются! Поэтому важно знать, что, если вы выполняли синхронизацию между каталогом и FTP, вам нельзя использовать синхронизацию этого каталога с ещё каким-то каталогом! Новое: Total Commander НЕ изменяет дату/время локального файла, если отмечена опция "игнорировать дату".
4. Другие проблемы и их решения
Проблема: FTP сервер и ваш компьютер могут находиться в разных часовых поясах! Например, сервер может быть расположен в Калифорнии, в то время как вы — в Нью-Йорке или даже в Европе!
Решение: Перед сравнением укажите разницу часовых поясов в часах между вашим местоположением и сервером. Если сервер западнее, разница положительна. Пример: От Нью-Йорка до Калифорнии разница составляет +3 часа, а от Германии — +9 часов. Примечание: Если для получения списка файлов используется команда MLSD, большинство серверов будут возвращать время по UTC (всемирному координированному времени), что освобождает от привязки к часовым поясам. В этом случае разницу времени необходимо установить в ноль!
Проблема: Прежде чем запустить синхронизацию каталогов, вы закачали файлы, либо используя непосредственно Total Commander, либо с помощью других утилит. Теперь даже одинаковые файлы будут выглядеть различными!
Решение: Во избежание повторной входящей или исходящей закачки всех файлов, которые на самом деле одинаковы, выберите все файлы, про которые вы точно знаете, что они одинаковы. Щёлкните по ним правой кнопкой мыши, затем выберите "Дата/время локального файла как на сервере". Теперь файлы будут выглядеть одинаковыми.
Проблема: Unix-машины различают верхний и нижний регистр в именах файлов. В то же время Windows-машины, могут лишь отображать имена в смешанном регистре, но не различают файлы, у которых имя одно, а регистр — разный.
Решение: Когда Total Commander загружает файл на FTP-сервер, а файл с таким же именем, но в другом регистре уже существует на сервере, переданный файл получит имя уже существующего файла. Это позволяет избежать сосуществования двух одноимённых файлов в одном каталоге. Если вы хотите загрузить файл, имя которого отличается только регистром, вам следует сначала удалить существующий файл (например, выбрав в его контекстном меню пункт Удалить). Для файлов, которые отсутствуют на сервере, вы можете указать, следует ли загружать файл с неизменным именем или же с именем, преобразованным в нижний регистр.
Проблема: Unix-машины сохраняют текстовые файлы по-иному, нежели DOS/Windows-машины. Unix-машины сохраняют конец строки в одном символе, в то время как DOS/Windows использует два символа (возврат каретки/перевод строки). Поэтому текстовые файлы (в том числе HTML) на Unix-машинах меньше по размеру, чем на DOS-машинах!
Решение: Когда Total Commander обнаруживает два файла с идентичными датой/временем, но различным размером, он определяет концы строк локальных файлов и вычисляет исходя из этого размер текстового файла в Unix-стиле. Если размеры соответствуют, функция синхронизации отобразит вот такой значок: