Для создания точных дубликатов всех необходимых файлов в папке пользовательского профиля (C:\Users\Ваше имя) путем многопоточного копирования.
Зачем использовать Robocopy?
Если вы - сознательный пользователь, вы наверняка и так регулярно создаете образ жесткого диска и осуществляете резервное копирование данных с помощью средства «Архивация и восстановление» (Backup and Restore) Windows 7. Однако не помешает создать и еще одну резервную копию - на всякий случай. Это можно сделать и вручную, путем перетаскивания нужных файлов на внешний жесткий диск, но если их слишком много, процесс может затянуться.
Утилита Robocopy позволяет использовать более восьмидесяти переключателей командной строки для создания эффективного сценария резервного копирования. Чтобы облегчить вам задачу, я объясню, как использовать возможности утилиты для создания зеркальной копии всех файлов в папке вашего профиля (C:\Users\Ваше имя).
Составление команды
В качестве примера я составлю команду для копирования содержимого моей пользовательской папки «C:\Users\Greg Shultz» в папку «TheBackup» на внешнем жестком диске, примонтированном под литерой «G» (вы, разумеется, замените имена и адреса на собственные). Команда будет начинаться так:
Robocopy “C:\Users\Greg Shultz” “G:\TheBackup”
Robocopy “C:\Users\Greg Shultz” “G:\TheBackup” /MIR
Чтобы исключить из копирования скрытые системные файлы, я использую переключатель /XA:SH, а чтобы не копировать папку «AppData» со всем содержимым - переключатель /XD. Наконец, переключатель /XJD позволяет исключить все точки соединения. В результате команда теперь выглядит так:
Robocopy “C:\Users\Greg Shultz” “G:\TheBackup” /MIR /XA:SH /XD AppData /XJD
Для этого используется переключатель /R, а изменить интервал между попытками можно с помощью переключателя /W. Я сокращу количество попыток до пяти, а временной промежуток между ними - до 15 секунд. Тогда Robocopy сможет возобновить копирование, подождав некоторое время. Теперь команда выглядит так:
Robocopy “C:\Users\Greg Shultz” “G:\TheBackup” /MIR /XA:SH /XD AppData /XJD /R:5 /W:15
Robocopy “C:\Users\Greg Shultz” “G:\TheBackup” /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32
Robocopy “C:\Users\Greg Shultz” “G:\TheBackup” /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32 /V /NP /LOG:Backup.log
Теперь, когда вы знаете, как использовать переключатели, составьте нужную вам команду в Блокноте (Notepad) и сохраните файл с именем «RobocopyBackup.cmd». Чтобы открытые файлы сценария и отчета не препятствовали копированию, я создал в корневом каталоге папку «C:\BackupTool» и сохранил их туда.
Файл отчета будет сохраняться в тот же каталог после каждого запуска утилиты. Хотя это простой текстовый файл, он может оказаться чересчур объемным для Блокнота, поэтому открывать его стоит в каком-нибудь другом текстовом процессоре - например, в Wordpad.
Теперь, когда вам понадобится создать дополнительную резервную копию, просто запустите файл «RobocopyBackup.cmd» двойным щелчком, а по окончании операции изучите файл отчета «Backup.log». С помощью
— это отличнейшая вещь, очень гибкий инструмент для копирования и даже бэкапа. И самое интересное то, что она поддерживает длинные пути файлов т.е. более 256 симоволов!!! Wiki: Это утилита для репликации (не просто копирования) каталогов (папок). Она была доступна как часть Windows Resource Kit и представлена как стандартный компонент Windows Vista, Windows 7 и Windows Server 2008. Поставляется компанией Microsoft «как есть» без гарантий и техподдержки.
Разработана для отказоустойчивого копирования каталогов и деревьев каталогов. Она обладает возможностью копирования всех (или выборочных) NTFS атрибутов и свойств, имеет дополнительный код для перезапуска при применении с сетевым соединением в случае его разрывов.
Все это необхожимо если вам нужно перенести целый каталог файлов с сервера со всеми настройками прав доступа в том числе и атрибутов времени создание файлов или скопировать файлы исключив какие то файлы (по разным атрибутам или расширению) или папки. Также robocopy удобно использовать в качестве программы для файлов с компьютеров пользователей на сервер (дальше на сервере работает добавочная архивация) — самое оптимальное решение.
Параметры копирования из robocopy /help
ROBOCOPY:: Robust File Copy for Windows
Применение:: ROBOCOPY источник назначение [файл [файл]…] [Параметры]
Источник:: Исходная папка (диск:\путь или \\сервер\общий ресурс\путь).
Назначение:: Конечная папка (диск:\путь или \\сервер\общий ресурс\путь).
Файл:: Копировать файлы (имена и подстановочные знаки: по умолчанию «*.*»).
::
:: Параметры копирования:
::
/S:: Копировать вложенные папки, кроме пустых.
/E:: Копировать вложенные папки, включая пустые.
/LEV:n:: Копировать только верхние n уровней исходного дерева папок.
/Z:: Копирование файлов с возобновлением.
/B:: Копирование файлов в режиме архивирования.
/ZB:: используется режим с возобновлением; если доступ запрещен, используется режим архивации.
/EFSRAW:: Копирование всех зашифрованных файлов в режиме EFS RAW.
/COPY: флаги копирования:: что копируется для файлов (по умолчанию /COPY:DAT).
(флаги копирования: D=Данные, A=Атрибуты, T=Метки времени).
(S=Безопасность=NTFS ACLs, O=Сведения о владельце, U=Сведения аудита).
/DCOPY:T:: Копирование меток времени папки.
/SEC:: Копировать файлы с параметрами безопасности (эквивалентно /COPY:DATS).
/COPYALL:: Копировать все сведения о файле (эквивалентно /COPY:DATSOU).
/NOCOPY:: Не копировать никаких сведений о файле (удобно использовать с параметром /PURGE).
/SECFIX:: Исправлять параметры безопасности для всех файлов, даже пропущенных.
/TIMFIX:: Исправлять атрибуты времени для всех файлов, даже пропущенных.
/PURGE:: Удалять файлы и папки назначения, которых больше не существует в источнике.
/MIR:: Создать зеркало дерева папок (эквивалентно /E с /PURGE).
/MOV:: Перемещать файлы (удаление из источника после копирования).
/MOVE:: Перемещать файлы и папки (удаление из источника после копирования).
/A+: :: Добавлять заданные атрибуты скопированным файлам.
/A+: :: Удалять заданные атрибуты из скопированных файлов.
/CREATE:: Создать только дерево папок и файлы нулевой длины.
/FAT:: Создать файлы назначения только в формате 8.3 FAT.
/256:: Отключить поддержку длинных путей (> 256 знаков).
/MON:n:: Наблюдать за источником; перезапустить после n изменений.
/MOT:m:: Наблюдать за источником; перезапустить через m минут, если произошли изменения.
/RH:hhmm-hhmm:: Часы запуска - время, когда можно запускать новое копирование.
/PF:: Проверять часы запуска по файлам (не по проходам).
/IPG:n:: Интервал между пакетами (мс) для снижения нагрузки на сеть при низкоскоростных подключениях.
/SL:: копирование самих символических ссылок вместо копирования целевого объекта этих ссылок.
::
:: Параметры выбора файлов:
::
/A:: Копировать только файлы с установленным атрибутом «Архивный».
/M:: Копировать только файлы с атрибутом «Архивный» и сбросить его.
/IA: :: Включить файлы, у которых установлен какой-либо из заданных атрибутов.
/XA: :: Исключить файлы, у которых установлен какой-либо из заданных атрибутов.
/XF file [файл]… :: Исключить файлы, соответствующие заданным именам, путям и подстановочным знакам.
/XD dirs [папки]… :: Исключить папки, соответствующие заданным именам и путям.
/XC:: Исключить измененные файлы.
/XN:: Исключить более поздние файлы.
/XO:: Исключить более ранние файлы.
/XX:: Исключить дополнительные файлы и папки.
/XL:: исключить отдельно расположенные файлы и папки.
/IS:: Включить те же файлы.
/IT:: Включить оптимизированные файлы.
/MAX:n:: Максимальный размер файла - исключить файлы, размер которых более n байт.
/MIN:n:: Минимальный размер файла - исключить файлы, размер которых менее n байт.
/MAXAGE:n:: Максимальный возраст файла - исключить файлы, возраст которых превышает n дней.
/MINAGE:n:: Минимальный возраст файла - исключить файлы, возраст которых менее n дней.
/MAXLAD:n:: Наиболее поздняя дата последнего обращения - исключить файлы, которые не использовались с даты n.
/MINLAD:n:: Наиболее ранняя дата последнего обращения - исключить файлы, которые использовались после даты n.
(Если n < 1900, то n = n дней, в противном случае n - дата в формате ДДММГГГГ).
/XJ:: исключить точки соединения. (по умолчанию обычно включаются).
/FFT:: Использовать время файлов FAT (двухсекундная точность).
/DST:: Учитывать одночасовую разницу при переходе на летнее время.
/XJD:: Исключить точки соединения для папок.
/XJF:: Исключить точки соединения для файлов.
::
:: Параметры повторных попыток:
::
/R:n:: число повторных попыток для неудавшихся копий: по умолчанию - 1 миллион.
/W:n:: Время ожидания между повторными попытками: по умолчанию - 30 секунд.
/REG:: Сохранить /R:n и /W:n в реестре как параметры по умолчанию.
/TBD:: Ждать, пока будут определены имена общих ресурсов (ошибка повторной попытки 67).
::
:: Параметры ведения журнала:
::
/L:: Только список - файлы не копируются, не удаляются, не помечаются метками времени.
/X:: Сообщать обо всех дополнительных файлах, а не только о выбраных.
/V:: Подробный вывод с указанием пропущенных файлов.
/TS:: Включать в вывод метки времени исходных файлов.
/FP:: Включать в вывод полные пути файлов.
/BYTES:: Печатать размеры в байтах.
/NS:: Без размера - не заносить в журнал размер файлов.
/NC:: Без класса - не заносить в журнал классы файлов.
/NFL:: Без списка файлов - не заносить в журнал имена файлов.
/NDL:: Без списка папок - не заносить в журнал имена папок.
/NP:: Без хода процесса - не отображать число скопированных %.
/ETA:: Показывать оценку времени окончания копирования файлов.
/LOG: файл:: Записывать состояние в файл журнала (перезаписывать существующий журнал).
/LOG+: файл:: Записывать состояние в файл журнала (добавлять к существующему журналу).
/UNILOG: файл:: Записывать состояние в файл журнала в формате Юникод (перезаписывать существующий журнал).
/UNILOG+: файл:: Записывать состояние в файл журнала в формате Юникод (добавлять к существующему журналу).
/TEE:: Направлять выходные данные в окно консоли и в файл журнала.
/NJH:: Без заголовка задания.
/NJS:: Без сведений о задании.
/UNICODE:: Cостояние вывода в формате Юникод.
::
:: Параметры задания:
::
/JOB: имя_задания:: Взять параметры из указанного файла задания.
/SAVE: имя_задания:: Сохранить параметры в указанный файл задания
/QUIT:: Выйти после обработки командной строки (для просмотра параметров).
/NOSD:: Не указывается исходная папка.
/NODD:: Не указывается папка назначения.
/IF:: Включить следующие файлы
Примеры использования
Все это выполняется в командной строке (Пуск-Выполнить-CMD) или вы можете создать bat скрипт.
1. Скопировать файлы, измененные за последние 5 дней (исключая сегодня).
robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /maxage:5 /minage:1
2. Переместить все файлы:
robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /move /e
3. Скопировать файлы за исключением скрытых (/xa:h):
robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /e /xa:h
или за исключением read-only (/ia:rs):
robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /ia:rs
При копировании также можно менять атрибуты файлов, при помощи опции A+ (добавить атрибут) or A- (удалить атрибут). Скопировать все файлы и задать им атрибут read-only:
robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /e /A+:r
4. Скопировать все файлы по шаблону (расширению), пустые папки не копировать:
robocopy «E:\Documents» «\\NAS\BACKUP\Documents» *.doc *.ppt /s
5. Скопировать все файлы размером от 1000 до 60000 байт:
robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /e /max:60000 /min:1000
6. Исключить из копирования папку AppData (/XD AppData):
Robocopy «C:\Users\Administrator» «\\NAS\BACKUP\Administrator» /MIR /XA:SH /XD AppData /XJD
7. Создать 32 потока (/MT:32) копирования файлов:
Robocopy «C:\Users\Administrator» \\NAS\BACKUP\Administrator /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32
8. Скопировать файлы из одной папки в другую со стандартными атрибутами исключив файл по расширению (допустим *.doc)
Robocopy » Robocopy «C:\Users\Administrator» «\\server\userbackup» /СOPY:DAT /XF *.doc
Пример использования для бэкапа
1)
robocopy D:\исходная_папка \\192.168.0.1\целевая_папка /E /Z /COPY:TDASO /DCOPY:T /M /R:2 /W:5 /MT:64
В данном примере:
Мы копируем папку «исходная папка», находящуюся на локальном диске D:
Мы копируем эту папку на компьютер \\192.168.0.1 в папку «целевая папка»
/E: Мы копируем все подпапки и файлы
/Z: Включаем поддержку докачки (на случай обрыва связи)
/COPY:TDASO: Копируем все атрибуты и ACL прав доступа NTFS (но не копируем атрибуты аудита)
/DCOPY:T: Копируем время создания папок
/M: Копируем только файлы с установленным атрибутом «A — Архивный» и сбрасываем этот атрибут, что позволяет нам копировать только измененные файлы.
/R: Количество повторных попыток копирования файла в случае, если копирование не удалось. Причем «не удалось» срабатывает и в том случае, если доступ к файлу закрыт. По-умолчанию = 1 миллионы, т.е. бесконечно, потому копирование благополучно встанет на первом же файле, к которому не будет доступа.
/W: Задержка в секундах между попытками копирования. По-умолчанию = 30 секундам.
/MT — кол-во потоков, увеличив которые можно ускорить копирование. Будет быстрее чем обычное копирование файла точно.
2) Похожий пример, но обратите внимание — каждый раз бэкап копируется в папку с названием даты и времени. Очень удобно для создание добавочного бэкапа.
robocopy D:\исходная_папка \\192.168.0.1\целевая_папка\ %date:~0,2%.%date:~3,2%.%date:~6,4%.%time:~0,2%-%time:~3,2%
/E /Z /COPY:TDASO /DCOPY:T /M /R:2 /W:5
%date:~0,2%.%date:~3,2%.%date:~6,4%.%time:~0,2%-%time:~3,2% -
дата и время созда
ние бэкапа в качестве названия папки. В итоге получается папка вида
16.01.2016-10.19
Или так — %date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2% Результат — 2016-03-13_23-30
Много интересного вы также сможете узнать набрав команду set /?
Формат даты в командной строке:
@echo off set day=%DATE:~0,2% set month=%DATE:~3,2% set year=%DATE:~6,4% set hour=%TIME:~0,2% set minute=%TIME:~3,2% set second=%TIME:~6,2% echo %day% echo %month% echo %year% echo %hour% echo %minute% echo %second% set YYYYMMDD=%year%%month%%day% echo %YYYYMMDD%
В Windows Server 2008 R2 Microsoft значительно доработала и улучшила систему резервного копирования (как блочного, так и файлового). Появились следующие функции:
Однако в связи с наличием ряда ограничений во встроенной процедуре выполнения бэкапа в Windows Server 2008 R2 Microsoft, можно воспользоваться сторонними утилитами, специальными программами для резервного копирования , или утилитой robocopy .
Robocopy расшифровывается как “Robust File Copy”, это утилита командной строки для осуществления репликации каталогов, данная утилита во многом похожа на команду Unix – xcopy. Основное преимущество команды заключается в том, что она позволят выполнять копирование/перемещение только тех файлов, которые были изменены, что позволяет реализовать функцию инкрементального резервного копирования.
Синтаксис команды robocopy можно посмотреть, открыв командную строку и набрав:
robocopy /?
Например, мы хотим выполнить копирование всех новых фотографий на сетевой накопитель NAS. В нашем примере мы должны указать папку-источник, папку назначения и опции команды:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /MIR
Параметры “/MIR” означают, что нужно выполнить зеркальную копию, т.е. если я удалю фото в исходном каталоге, оно удалится и в моем бекапе.
Еще одной удобной функцией robocopy является возможность отложенного копирования, т.е. если папка источника или назначения не доступна, то копирование будет выполнено позднее. По-умолчанию, время ожидания 30 секунд, после которого будет еще 1000000 попуток скопировать файлы, в том случае, если мы хотим, например, выполнить повторное копирование через 15 секунд и повторить его только 5 раз, можно воспользоваться такой командой:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /MIR /R:5 /W:15Еще больше опция:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /Z /MIR /R:5 /W:15 /V /TS /FP /NP /LOG+:"C:\NASSync.log"
Приведенные параметры robocopy говорят о том, что необходимо делать подробный вывод результатов исполнения (/V), выводить метку времен (/TS), полный путь (/FP), не показывать шкалу прогресса (/NP), и выводить результаты в файл лога (/LOG+). Для NAS, которые не поддерживают файловую систему NTFS, необходимо указывать параметр /FFT.
Для того, чтобы выполнять регулярное резервное копирование, можно воспользоваться планировщиком Windows — Task Scheduler . Запускаем планировщик, создаем новое задание Create Basic Task , в мастере указываем имя задания (например, backup) и нажимаем Next . На экране Trigger , указываем как часто нужно выполнять резервное копирование. На вкладке Action указываем, что мы хотим запустить программу, нажимаем Next. Далее указываем имя программы, можно просто набрать robocopy , или указать полный путь к программе C:\ Windows\ System32\ robocopy. exe . В окне с параметрами (Add arguments (optional) ) мы должны указать аргументы команды robocopy.
Нажимаем Next и Finish.
Для того, чтобы проверить правильность работы задания, перейдем в планировщик, найдем в нем наше задание, правой кнопкой щелкнем по нему и выберем Run . После того, как задание будет выполнено, его статус можно найти в Last Run Result.
Рассмотрим различные сценарии и параметры использования robocopy.
1. Скопировать файлы, измененные за последние 5 дней (исключая сегодня).
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /maxage:5 /minage:1
2. Переместить все файлы:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /move /e3. Скопировать файлы за исключением скрытых (/xa:h):
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /xa:h
или за исключением read-only (/ia:rs):
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /ia:rs
При копировании также можно менять атрибуты файлов, при помощи опции A+ (добавить атрибут) or A- (удалить атрибут). Скопировать все файлы и задать им атрибут read-only:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /A+:r
4. Скопировать все файлы по шаблону (расширению), пустые папки не копировать:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" *.doc *.ppt /s
5. Скопировать все файлы размером от 1000 до 60000 байт:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /max:60000 /min:1000
6. Исключить из копирования папку AppData (/XD AppData):
Robocopy "C:\Users\Administrator" "\\NAS\BACKUP\Administrator" /MIR /XA:SH /XD AppData /XJD
7. Создать 32 потока (/MT:32) копирования файлов:
Robocopy "C:\Users\Administrator" \\NAS\BACKUP\Administrator /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32
В примере мы используем опцию /MT[:n], где n – это число от 1 до 128, которое определяет количество потоков. По умолчанию, если параметр /MT не указан, используется 8 потоков.
Вопрос: Robocopy GUI: копирование только новых файлов
Ответ:
Сообщение от setrg
Нужно чтобы он сканировал и копировал только новые
Код Windows Batch file | ||
|
Там есть ключ, который копирует только измененные файлы, не трогая старые.
уже обсуждалась.
Вопрос: Копирование только новых и модифицированных файлов с сохранением структуры каталогов
не помогает.
Режим вывода команд на экран (ECHO) включен.
C:\Users\user\Desktop>xcopy Z:\ОБЪЕКТЫ\1_77-2778\АОП H:\работа\2778 /s /d
Скопировано файлов: 0.
C:\Users\user\Desktop>xcopy Z:\ОБЪЕКТЫ\1_77-2778\Фото строительства H:\работа\27
78 /s /d
C:\Users\user\Desktop>xcopy Z:\ОБЪЕКТЫ\1_77-2778\Фото обследования H:\работа\277
8 /s /d
Недопустимое число параметров
Для продолжения нажмите любую клавишу. . .
Если по одной строчке, то все работает
Получается мне надо сделать скрипт на запуск 120 скриптов?
это же повесит и комп и сетевое хранилище (Z:\ - это хранилище)
Ответ:
странно, ключ по модификацию стоит, а он все равно спрашивает замещать или нет
и вообще, в чем прикол copy, xcopy, robocopy и т. д. все же делают по сути одно и тоже
Вопрос: Копирование только измененных файлов с выводом этих файлов
Добавлено через 10 минут
Можно через
xcopy /T /E .\древо1\* .\древо2\*
скопировать в древо2 древо каталогов древа1, вдруг появились в древе1 новые папки.
Потом через
xcopy /D:*дата обновления* /E /Y .\древо1\* .\древо2\* > name.txt
скопировать измененные файлы и вывести лог в txt, а потом вручную искать эти файлы и создавать древо3... НО ЗАЧЕМ?
Ответ: Morses23 ,
Сообщение от Morses23
НО ЗАЧЕМ?
Добавлено через 14 часов 51 минутуКод Windows Batch file | ||
|
Добавлено через 5 часов 6 минут
Morses23
, Понял что требовалось
Код Windows Batch file | ||
|
Вопрос: Robocopy копирование файла без расширения
Windows Batch file | ||
|
Копируемый файл kladr не имеет расширения. Если указывать имя файла, то robocopy говорит, что не может найти папку \\comp\kladr\kladr. Т.е. robocopy название файла в команде видит как путь. Переименовывать нельзя.
Настроил копирование всей папки, и, чтобы копировать только этот файл, попытался ограничить размерами файла (/min /max) - в этом случае файлы, которые лежат в корне папки, не копируются, но копируются все папки, которые расположены в этой шаре. Файл расположен в корне диска D. На диске D еще много файлов и папок. Перемещать ничего нельзя.
Как настроить копирование так, чтобы копировался только этот файл?
Ответ:
Не по теме:
я не утверждал
Сообщение от alpap
возможно
Сообщение от alpap
так диктует синтаксис robocopy
Сильно синтаксис robocopy не рассматривал, а синтаксису xcopy противоречит, решил показать на возможную опечатку,
рад что все оказалось не так и работает как надо, удачи.
Вопрос: На флешке переименовались папки, добавились новые файлы
Ответ: На форуме, спросите там.
Вопрос: Копирование новых файлов каждые 30 минут
Ответ:
Сообщение от b0gus
POSTREALITY, вот такой инвариант robocopy.exe предлагаю
Вопрос: Батник для копирования самого нового файла
Первый батник попробовал создать только вчера и вот что у меня получилось:
1. смог сделать постоянную перезапись бинарника в папку out из одного каталога, с которым в основном работаю
2. сделал поиск файла по имени и вывод даты/времени в консоли
дальше вообще никак не могу продвинуться
Буду рад любой помощи. заранее спасибо!
Ответ:
Сообщение от YuS_2
Как-то так:
Не знаю как это работает ввиду моего незнания бат-скриптов, но это работает!
Большое человеческое спасибо!
Вопрос: Копирование и удаление файлов на основе анализа содержимого двух папок
Ответ: Andrey_10 , если нужно установить для целевого файла текущую дату как в качестве даты создания, так и в качестве даты изменения, то используйте команду "TYPE":
Windows Batch file | ||
|
Вопрос: Не видно новые файлы в общей папке
Операционка W7 64
Ответ: Следующий шаг - создайте в папке файл, например index.php. Внутри него напишите шаблон вашей странички. Например, так:
А как этот фаил создать?
Каждому администратору Wintel знакома утилита Robocopy. Еще со времен Windows NT4 она вошла в Resource Kit, а начиная с Windows Vista - в состав операционной системы.
Зачем нужна Robocopy? Для того чтобы копировать файлы. Много файлов. В основном мы используем ее для миграции файловых серверов или резервного копирования.
Есть много интересных вариантов миграции файловых серверов, например, с использованием DFS-R. Но нет ничего проще и надежнее запуска
Robocopy \\SERV\D$ F:\ /e /copyall /zb /mt:8 /r:1 /W:5 /V /TS /FP /ETA /TEE /LOG:c:\temp\robocopy.txt
В финале можно закрыть пользовательский доступ к ресурсу и создать инкрементальную копию, добавив ключ /MIR.
Но так ли хороша Robocopy
? Хороша ли она настолько, чтобы доверить ей миграцию самых важных файлов?
Одним прекрасным субботним днем я мигрировал файловый сервер. Сотрудников на работе не оказалось. Первая копия была сделана еще вчера, оставалось лишь сделать инкремент и обновить ссылки в DFS.
Я запустил Robocopy, посмотрел журнал, а для перестраховки, перед переключением, решил посмотреть, сколько файлов и папок в исходном и конечном файловом ресурсе. Числа не сошлись. Неожиданно.
Но почему? Такой результат я видел впервые. Я сделал что-то не так? Кто-то из сотрудников все же изменил файлы, пока шло инкрементальное копирование? Ключ /MIR дал сбой? Какие-то файлы пропущены? Пустые? С Access Denied? Поврежденные?
Хорошо, отключаем сетевой доступ и снова копируем файлы. Не сходится! Пробуем без /MIR. Тот же результат.
Я был в недоумении. Пятнадцать лет я на 100% доверял Robocopy, и вот сегодня, впервые, она дала сбой. Некоторых файлов просто нет в месте назначения! Просто невозможно в это поверить.
Давайте подсчитаем файлы по-другому. Качаем утилиту FileList и делаем листинг файлов в исходной и конечной папке. А вот здесь число файлов совпадало. Удивительно.
А что если дело не в Robocopy? Что если Windows Explorer считает неправильно? Может быть в Windows Server 2008 R2 плохой Explorer, а в Windows Server 2012 R2 хороший? Я открыл свойства локальной и целевой папки на исходном сервере Windows Server 2008 R2. Число файлов не совпадало. Понадеемся, что в Windows Server 2012 R2 все исправлено. Открываем свойства папок на новом сервере… И…
Не совпало не только число файлов в исходной и конечной папке. Число файлов отличалось от снятых на Windows Server 2008 R2. Черная уличная магия.
И в эту минуту (наконец-то) на меня снизошло прозрение. Дело не в Robocopy, и не в версиях Explorer. Просто Explorer не умеет (!) считать, и не считает файлы и папки с именами длиннее 260 символов.
На исходном сервере файлы были расположены по пути «F:\Office1». На новом - «U:\SharedFiles\Office1».
Всего лишь из-за подпапки «SharedFiles» имена некоторых файлов и папок стали длиннее 255 символов. Для Robocopy не составило труда их скопировать. FileList легко их подсчитал. И только Explorer пропустил такие файлы при подсчете.
Сделав subst N: U:\SharedFiles и посчитав число файлов в F:\Office1 на исходном сервере и N:\Office1 на целевом, число файлов совпало.
Robocopy можно доверять.
UPD : Как правильно поправляют в комментариях, все же не 255, а