Saint Martin's Synchronization
Синхронизация Святого Мартина

SMS - это консольное приложение, предназначенное для однонаправленной синхронизации логических дисков и/или каталогов. SMS позволяет в одном задании задавать произвольное количество каталогов-источников, подкаталогов-исключений и типов файлов для исключения или обработки. Программа позволяет сохранять старые версии файлов из указанных подкаталогов, стирать временные файлы, вести запись логов, задавать параметры работы с битом архивации. Она также выполняет проверку логической сочетаемости заданных параметров. Для предварительной проверки результата синхронизации программа может быть запущена в одном из двух тестовых режимов. Все сообщения программы, равно как и текст помощи, могут быть переведены пользователем на любой из языков западной группы.


Содержание
English version.
Новое в версии 2.2
Полное описание ключей и параметров SMS 2.2.
Основные ключи программы.
-aim:
-src:

Дополнительные ключи программы.
-excl:
-ext:
-keep:
-deltmp:
-abit:
-logs:
-test:

Локализация (перевод на ваш язык).
Примеры командных файлов и упреждающие ответы на возможные вопросы.
-Как запускать программу по расписанию.
-Как синхронизировать каталоги на двух компьютерах в локальной сети
или запустить какую-либо программу до или после синхронизации.

-Как послать отчет по e-mail.

Ошибки в этой версии программы.
Источники информации, среда разработки и аппаратное обеспечение.
Для ОЧЕНЬ опытных пользователей:
-как получить профессиональную версию программы.
Дань уважения.
Несколько пиаровских слоганов.
Скачать SMS 2.2.


Новое в версии 2.2

1.
Значительно сокращено время обработки списков файлов и каталогов.
Пример для сравнения: На рабочей станции с PIII-800 выполнялась синхронизация сетевых дисков 2-х серверов. Количество файлов в каждом - немногим более 50000, количество каталогов - немногим более 3000 (всего около 110000 записей). В версии 2.1 сбор информации по сети занимал примерно 1 мин. 40 сек., сортировка списков занимала 3 часа 10 минут, как не прискорбно. В этой версии сбор и сортировка совмещены и занимают для того же задания примерно 1 мин. 40 сек. В настоящей версии не оптимизированными по времени остаются алгоритмы логической проверки и предварительной подготовки списков. Это может быть заметно при некоторых сочетаниях параметров, если количество каталогов-источников и каталогов-исключений в одном задании достигнет нескольких сотен.

Примечание: при всех недостатках у версии 2.1 есть одно несомненное достоинство: программа в течении 3-х часов непрерывно грузит процессор на 100% и обращается к памяти, поэтому ее можно c успехом использовать для стресс-теста CPU и ОЗУ.
Скачать SMS 2.1.

2. Подкаталог-исключение может быть задан не только в каталоге-источнике, но и в целевом каталоге.

Примечание: если исключение задано в целевом каталоге, но в источнике существует подкаталог с тем же именем, то программа при проверке параметров переопределит такое исключение как подкаталог источника.

3. Добавлена следующая форма записи каталогов-источников: -src:path:just:subpath1:subpath2:...:subpathN.
В каталоге-источнике (path) обрабатываются только указанные подкаталоги (subpath1:subpath2:...:subpathN). В целевом каталоге обрабатываются или создаются только подкаталоги с теми же именами. Остальное содержимое целевого каталога не изменяется. Сочетать в одном задании эту форму записи источников с другими не допускается, то есть в одном задании таким образом можно обработать подкаталоги только одного логического диска/каталога. Префикс (e) - обработка пустых каталогов-источников - задается для всех подкаталогов сразу: -src:(e)c:\:just:games\blockout:*\*\*\personal - в противном случае пустые подкаталоги будут исключены из списка.

Возможности 2 и 3 позволяют реализовать два принципиально противоположных подхода к синхронизации: синхронизировать все содержимое целевого каталога кроме указанных подкаталогов (2); синхронизировать только указанные подкаталоги, не изменяя остальное содержимое целевого каталога (3).

4. Теперь по умолчанию программа проверяет бит архивации и сбрасывает его с копируемых файлов и каталогов в источнике, задавать ключ -abit:-s, как раньше, не нужно.

5. Для ключа -abit: добавлен параметр "no": бит архивации не проверяется при сравнении файлов (-abit:no). Соответственно, он и не сбрасывается. Это необходимо в том случае, когда к каталогу-источнику возможен доступ только для чтения, а также в том случае, когда для файлов источника периодически явным образом переопределяются права доступа (в этом случае система выставляет бит архивации). Для совместимости с предыдущей версией сохранены прежние параметры ключа, с прежней функциональностью. Их можно сочетать с параметром "no". Например: -abit:no:-s:-a - бит архивации не проверяется, но сбрасывается для копируемых файлов и создаваемых каталогов в источнике и в целевом каталоге.

6. Теперь logs-каталог может совпадать с keep-каталогом или быть его подкаталогом (но keep-каталог по-прежнему не может быть подкаталогом каталога для сохранения логов). logs-каталог и keep-каталог могут быть подкаталогами как источника, так и целевого каталога, если задан соответствующий подкаталог-исключение.

7. В файлы logsrcsorted.txt и logaimsorted.txt теперь записывается не полное содержимое целевого каталога и каталогов-источников, а то, что остается после применения соответствующих фильтров (каталогов-исключений, типов файлов и так далее). То есть в логах теперь сохраняются именно те списки, которые программа сравнивает друг с другом. Формат логов изменен для облегчения портирования в Excel, в результате чего юзабельность повысилась, а читабельность понизилась.

8. Для каталогов-источников добавлен префикс (k). Он учитывается в том случае, если задано несколько каталогов-источников в формате -src:path1:path2:...:pathN или -src:disk:\PartOfPath1\*\*\...\*\PartOfPath2\*\...\*\PartOfPathN\folder. Если задан этот префикс, то пустой каталог-источник не только исключается из списка источников, но и заносится в список каталогов-исключений, если такой каталог есть в целевом каталоге и он не пуст.
Для чего это нужно. Когда задается один пустой источник без префикса (e), синхронизация не выполняется. Это позволяет избежать потери резервной копии информации. Когда таким образом заданы несколько каталогов-источников, то пустые каталоги также удаляются из списка и синхронизация выполняется с оставшимися. При этом из целевого каталога удаляются аналоги исключенных источников и информация теряется полностью. Префикс (k) позволяет этого избежать.
Короче говоря, если один из каталогов-источников пуст и:
а) не задан ни один из префиксов - пустой каталог-источник удаляется из списка и аналогичный каталог в целевом каталоге удаляется;
б) задан префикс (e) - пустой каталог-источник не удаляется из списка и содержимое аналогичного каталога в целевом каталоге удаляется;
в) задан префикс (k) - пустой каталог-источник удаляется из списка, но аналогичный каталог в целевом каталоге остается неизменным, если он не пуст, или удаляется, если он пустой.

Примечания: нельзя задавать сразу два префикса для одного каталога, нельзя задавать список из одних пустых источников с префиксами (k).

Полное описание ключей и параметров SMS 2.2

Примечание:
В этом руководстве вместо слова "синхронизироваться" часто используется слово "копироваться", потому что первое также надоедает писать, как и выговаривать. Не забывайте, что это программа в первую очередь для синхр-р-ронизации, а не для резервного копирования.

Два обязательных ключа программы - это каталог-источник (-src:) и целевой каталог (-aim:). Простейший рабочий пример: synch -src:c:\work -aim:d:\backup. Корневые каталоги должны записываться как c:\, d:\ - не как c:, d:. По умолчанию программа проверяет бит архивации. Если он выставлен, считается, что файл изменился, и дальнейшая проверка не производится. Если файл копируется из источника или если в целевом каталоге создается копия подкаталога из источника, то по умолчанию в источнике у такого файла или подкаталога бит архивации снимается. Ограничения этой версии программы: нельзя задавать пустой корневой каталог в качестве параметра любого ключа; целевой каталог, log-каталог и keep-каталог должны существовать. Программа их не создает.
Если в имени каталога встречаются пробелы, то такой каталог нужно задавать в кавычках: "c:\program files", "c:\Documents and Settings\*\My Documents", c:\:just:"*\*\My Documents":boot.

Основные ключи программы.

-aim:
-задает целевой каталог

Параметром ключа -aim: является один целевой каталог: -aim:d:\backup, -aim:c:\

-src: -задает список каталогов-источников

Форматы записи:

1. -src:path
- один каталог или логический диск
Пример: synch -src:c:\ -aim:d:\backup
Содержимое каталога d:\backup станет аналогично содержимому диска c:\. Например, если есть каталог c:\boot, то будет создан каталог d:\backup\boot; если существует файл c:\boot.ini, он будет скопирован как d:\backup\boot.ini и так далее.

2. -src:path1:path2::...:pathN - список каталогов и/или логических дисков, разделенных одним или несколькими знаками двоеточия
Пример: synch -src:c:\games::c:\boot:e:\ -aim:d:\backup
В целевом каталоге воссоздается весь путь в имени каждого каталога-источника. Так, будут созданы каталоги d:\backup\c, d:\backup\c\games, d:\backup\c\boot, d:\backup\e. Если в целевом каталоге есть другие файлы и подкаталоги, они будут удалены, если только они не заданы, как каталоги-исключения. Например, будут удалены каталог d:\backup\boot и файл d:\backup\boot.ini

3. -src:disk:\PartOfPath1\*\*\...\*\PartOfPath2\*\...\*\PartOfPathN\folder - список найденных подкаталогов с одинаковыми именами (folder) и одинаковой степенью вложенности в дереве каталогов.
Например для того, чтобы получить список каталогов-источников типа c:\winnt\profiles\%username%\personal, можно использовать следующие виды записи:
-src:c:\winnt\profiles\*\personal (самый быстрый и предсказуемый результат);
-src:c:\*\profiles\*\personal;
-src:c:\winnt\*\*\personal;
-src:c:\*\*\*\personal (самый медленный и наименее предсказуемый результат);
и так далее.
Пример: synch -src:c:\winnt\profiles\*\personal -aim:d:\
В целевом каталоге воссоздается весь путь в имени каждого каталога-источника. Так, будут созданы каталоги d:\c, d:\c\winnt, d:\c\winnt\profiles, d:\c\winnt\profiles\Administrator, d:\c\winnt\profiles\Administrator\personal и так далее. Если в целевом каталоге есть другие файлы и подкаталоги, они будут удалены. Так будет удален подкаталог d:\c\winnt\system32, если только он не задан, как каталог-исключение.

4. -src:path:just:subpath1:subpath2:...:subpathN - список подкаталогов одного логического диска/каталога. В целевом каталоге обрабатываются только каталоги с аналогичными именами. Остальное содержимое целевого каталога не изменяется.
Пример: synch -src:c:\:just:games\blockout:*\*\*\personal -aim:d:\
В целевом каталоге будут созданы подкаталоги d:\games, d:\games\blockout, d:\winnt, d:\winnt\profiles, d:\winnt\profiles\Administrator, d:\winnt\profiles\Administrator\personal и так далее. Если в целевом каталоге есть другие файлы и подкаталоги, то они не удаляются. Например, не будет удален каталог d:\c\winnt.

Примечания: По умолчанию пустой каталог-источник удаляется из списка. Форматы 1, 2 и 3 можно сочетать друг с другом. Формат 4 нельзя сочетать с другими форматами, то есть таким образом в одном задании можно обработать подкаталоги только одного логического диска/каталога.

Префиксы каталогов-источников:

(e) - не исключать из списка пустой источник.
Примеры:
synch -src:(e)c:\work:(e)d:\ -aim:e:\
Пустой каталог c:\work не будет удален из списка и каталог e:\c\work будет опустошен. Пустой логический диск d:\ все равно будет исключен из списка, так-как данная версия программы не позволяет задавать пустые корневые каталоги в качестве параметров любого ключа. Каталог e:\d будет удален.
synch -src:(e)c:\*\*\*\personal:(e)c:\work -aim:e:\
Пустые каталоги c:\winnt\profiles\Administrator\personal и c:\work не будут исключены из списка и содержимое каталогов e:\c\winnt\profiles\Administrator\personal и e:\c\work будет удалено.

Примечание: в формате записи 4 префикс (e) задается для всех подкаталогов сразу: -src:(e)c:\:just:games\blockout:*\*\*\personal.

(k) - пустой источник исключается из списка, но если его копия есть в целевом каталоге и она не пуста, то такой источник добавляется в список каталогов-исключений в целевом каталоге. Поэтому содержимое резервного каталога не удаляется. Если резервный каталог пуст, он удаляется.
Примеры:
synch -src:(k)c:\work:(k)d:\:f:\something -aim:e:\
Если каталог c:\work пуст, он удаляется из списка. Если есть каталог e:\c\work и он не пуст, то его содержимое не изменяется. Если же последний пуст, он удаляется. Если логический диск d:\ пуст, он будет исключен из списка. Каталог e:\d все равно будет удален, так-как данная версия программы не позволяет задавать пустые корневые каталоги в качестве параметров любого ключа. Недостаток, конечно.

Примечания: префикс (k) учитывается только для форматов записи 2 и 3. Нельзя задавать сразу два префикса для одного каталога.

Дополнительные ключи программы.

-excl:
-задает список каталогов-исключений.
Каталог-исключение должен быть подкаталогом источника или целевого каталога. Если в источнике задан подкаталог-исключение и в целевом каталоге существует подкаталог с таким же именем, то его содержимое не будет изменено. Если в целевом каталоге задан подкаталог-исключение и в источнике есть подкаталог с таким же именем, то в список каталогов-исключений программа внесет последний. В одном задании ключ может встречаться произвольное количество раз.

Форматы записи:

1. -excl:path1:path2::...:pathN
- один или более каталогов-исключений, разделенных одним или несколькими знаками двоеточия.
Примеры:
synch -src:c:\ -aim:d:\ -excl:c:\recycler:c:\games:d:\work
Каталоги c:\recycler и c:\games не будут скопированы на диск d:\, так-как их содержимое не считается важным. Однако, если существуют каталоги d:\recycler и d:\games, их содержимое не будет изменено. Каталог d:\work существует только на диске d:\. Он не будет удален.
synch -src:c:\ -aim:c:\backup -excl:c:\backup:c:\backup\test
По умолчанию целевой подкаталог не может быть подкаталогом каталога-источника. В данном случае это возможно, так-как задан соответствующий каталог-исключение. Каталог c:\backup\test не будет изменен или удален.

2. -excl:disk:\PartOfPath1\*\*\...\*\PartOfPath2\*\...\*\PartOfPathN\folder - список найденных подкаталогов-исключений с одинаковыми именами (folder) и одинаковой степенью вложенности в дереве каталогов.
Пример:
synch -src:c:\users -aim:d:\users -excl:c:\users\*\temp
Все содержимое каталога c:\users будет скопировано в каталог d:\users за исключением подкаталогов типа c:\users\%username%\temp. Если такие подкаталоги существуют в целевом каталоге, они не будут удалены.

Примечание: если каталог-исключение совпадает с каталогом-источником, такой каталог-исключение удаляется из списка. Однако, если список каталогов-источников задан в формате 3 (c:\winnt\*\*\personal) и найденных каталогов в списке более одного, то вместе с исключением из списка удаляется каталог-источник.
Пример:
synch -src:c:\:just:winnt\profiles\*\personal -aim:f:\ -excl:c:\winnt\profiles\Administrator\personal

-ext: -указывает расширения файлов, которые должны ИЛИ не должны обрабатываться.
В одном задании ключ может повторяться произвольное количество раз. В одном задании можно указать, какие файлы должны ИЛИ не должны обрабатываться. Не первое и второе сразу.

Форматы записи:

-ext:*.ext1:*.ext2:...:*.extN
-будут копироваться только файлы указанных типов. Если в целевом каталоге есть файлы других типов, они будут удалены.
-ext:!.ext1:!.ext2:...:!.extN -будут копироваться файлы всех типов, кроме указанных. Если в целевом каталоге есть файлы указанных типов, они будут удалены.
Примеры:
synch -src:c:\users -aim:d:\users -ext:*.doc:*.rtf:*.txt:*.xls:*.arj
Важными считаются только файлы указанных типов. Они копируются. Файлы других типов не копируются.
synch -src:c:\users -aim:d:\users -ext:!.jpg:!.gif:!.bmp:!.wav:!.mpg
Копируются файлы всех типов, кроме указанных.

-keep: -позволяет сохранять в указанном каталоге файлы и подкаталоги, которые должны быть удалены из целевого каталога, так-как более не существуют или изменились в источнике. Для каждой сессии создается свой подкаталог с именем "keepYearMonthDayHourMinuteSecond". Если сохранять нечего, подкаталог не создается. Если количество подкаталогов превысило указанное, то самый старый подкаталог удаляется. Самый старый подкаталог определяется по дате создания. В одном задании ключ должен встречаться только один раз.

Форматы записи:

1. -keep:N:WhereToKeep
-хранить не более N подкаталогов в каталоге WhereToKeep. N может задаваться в диапазоне от 1 до 65535. По умолчанию 7.
Пример:
synch -src:c:\ -aim:d:\ -keep:10:e:\keep
Все каталоги и файлы, которые исчезли из диска c:\ или изменились, будут скопированы в подкаталог каталога e:\keep перед удалением из диска d:\. Например, будет создан подкаталог e:\keep\keep2004April24205100. Если подобных подкаталогов станет больше 10, самый старый будет удален.

2. -keep:N:WhereToKeep:just:WhatToKeep -после параметра :just: задается список подкаталогов WhatToKeep. Задаваться должны каталоги-источники или подкаталоги каталогов-источников. Этот список можно задавать как path1:path2::...:pathN, как disk:\PartOfPath1\*\*\...\*\PartOfPath2\*\...\*\PartOfPathN\folder или как их сочетание.
Пример:
synch -src:c:\ -aim:d:\ -keep:10:e:\keep:just:c:\users:c:\winnt\*\*\personal
Будут сохраняться только подкаталоги и файлы, которые исчезли или изменились в каталогах c:\users и c:\winnt\profiles\%username%\personal.

-deltmp: -позволяет удалять из источника или целевого каталога временные файлы, измененные 1 или более дней назад. Из целевого каталога удаляются все временные файлы вне зависимости от срока давности.
Временными файлами считаются файлы с расширением tmp. В одном задании ключ должен встречаться только один раз.

Формат записи:

-deltmp:N:s:a
-N задает, сколько дней должен прожить временный файл, прежде чем он будет удален. N задается в диапазоне от 1 до 65535. По умолчанию 1. s - временные файлы будут удаляться из источника. a - временные файлы будут удаляться из целевого каталога или не будут в него копироваться.
Например:
-deltmp:1:s -временные файлы, прожившие день или больше, будут удаляться из источника и не будут копироваться в целевой каталог. Если в целевом каталоге есть временные файлы, все они будут удалены.
-deltmp:1:a -временные файлы не будут удаляться из источника и не будут копироваться в целевой каталог. Если в целевом каталоге есть временные файлы, все они будут удалены.
-deltmp:1:s:a -то же, что и -deltmp:1:s.

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

Формат записи:

-abit:no:+s|-s:+a|-a
-параметр no позволяет не выполнять проверку бита архивации. Это разумно в том случае, когда к источнику имеется доступ только на чтение и когда для файлов источника переодически явным образом переопределяются права доступа (в последнем случае система выставляет бит архивации). Параметры +s|-s и +a|-a мало полезны. Они позволяют выставлять или сбрасывать бит архивации в источнике или в целевом каталоге у тех файлов и подкаталогов, которые копируются в данной сессии. Эти параметры оставлены для совместимости с прошлой версией. Они могут сочетаться с параметром no.
Примеры:
-abit:no -не проверять и не сбрасывать бит архивации.
-abit:-s:-a -проверять и сбрасывать бит архивации в источнике и в целевом каталоге.
-abit:no:+s:+a -не проверять бит архивации и зачем-то выставлять его в источнике и в целевом каталоге.
-abit:+s -проверять и выставлять бит архивации в источнике. Этот вариант можно использовать для тестирования.
-abit:-s -то же, что и полное отсутствие ключа -abit:
и так далее.

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

-logs: -позволяет сохранять в указанном каталоге логи указанного количества сессий. Для каждой сессии создается свой подкаталог с именем "logsYearMonthDayHourMinuteSecond". Если количество подкаталогов превысило указанное, то самый старый подкаталог удаляется. Самый старый подкаталог определяется по дате создания. Если сохраняются логи одной сессии, то подкаталог для них не создается. В одном задании ключ должен встречаться только один раз.

Формат записи:

-logs:N:r1|r2:WhereToSave
-хранить не более N подкаталогов с логами в каталоге WhereToSave. N может задаваться в диапазоне от 1 до 65535. По умолчанию 1. r1 и r2 - это режимы записи логов. Если задан режим r1, то сохраняются файлы logsession.txt, logtocopy.txt и logtodel.txt. Если задан режим r2, то помимо этих файлов сохраняются файлы logaimsorted.txt и logsrcsorted.txt.
logsession.txt -сообщения, которые выводятся на консоль.
logtocopy.txt -список каталогов и файлов каталога-источника, которые будут скопированы в целевой каталог.
logtodel.txt -список каталогов и файлов целевого каталога, которые будут удалены.
logaimsorted.txt -список каталогов и файлов целевого каталога.
logsrcsorted.txt -список каталогов и файлов источника.
В последние два списка вносятся те файлы и каталоги, которые будут сравниваться. В эти списки не вносится содержимое каталогов-исключений и файлы исключенных типов.
Пример:
synch -src:c:\ -aim:d:\ -logs:10:r1:e:\logs

-test: -позволяет запускать программу в одном из двух тестовых режимов. В тестовом режиме никакая информация в источнике и в целевом каталоге не изменяется. Если задан ключ -logs:, то будут сохранены логи сессии. В одном задании ключ должен встречаться только один раз.

Формат записи:

-test:keys|all
- если задан параметр keys, то будут выполнены проверка ключей, проверка параметров ключей и проверка сочетаемости параметров ключей (логическая проверка). Если задан параметр all, то кроме этого будут составлены списки содержимого источника и целевого каталога, а также списки файлов и каталогов, которые будут скопированы и удалены.
Ключ -test: очень полезен. Если вы создаете новое задание на синхронизацию, то ВСЕГДА выполняйте первый запуск в тестовом режиме.

Локализация (перевод на ваш язык).

Все сообщения и краткая справочная информация на английском включены в программу. Если после запуска программа находит в своем каталоге файлы messages.txt и help.txt, то тексты сообщений и справочная информация берутся из этих файлов. Если сообщение не найдено в файле messages.txt, оно остается на английском.

Формат сообщения в файле:

ИмяПеременной:Строка сообщения, заканчивающаяся символом перевода каретки.
Например:
FLDListBadCense:Такая форма записи нерациональна.

В файл сообщений можно вставлять любое количество пустых строк или комментариев. Регистр знаков в имени сообщения нельзя изменять. Двухбайтовую кодировку (юникод) данная версия программы не поддерживает.
Вы можете прислать переведенные на ваш язык файлы на адрес snt_martin@mail.ru. Возможно, эти файлы будут помещены на сайт программы. Поскольку автор, помимо сносного владения русским и английским языками, интуитивно понимает лишь ряд языков славянской группы в зависимости от степени их родства с русским, то вы несете полную моральную ответственность за содержимое присланных вами файлов. Автор не имеет обыкновения читать те письма, получения которых он не ожидал. Поэтому, если вы решите написать письмо, пожалуйста, начинайте тему строкой "SMS 2.2".

Примеры командных файлов и упреждающие ответы на возможные вопросы.

Как запускать программу по расписанию.

Этот пример был проверен на OS Windows NT 4.0 и Windows 2000. В системе должна работать служба планировщика заданий. Эта служба должна запускаться автоматически. Можно указать пользователя, от имени которого должны выполняться задания. В Windows 2000 разные задания могут выполняться от имени разных пользователей. Для того, чтобы выполнять задание автоматически, разумно создать командный файл. Командный файл - это текстовый файл с расширением bat или cmd. В этот файл записывается командная строка задачи на синхронизацию. Пусть такой файл называется example1.cmd.
В Windows NT 4.0 задача задается в командной строке с помощью программы at.
Например: at 01:00 /interactive /every:T,W,Th,F,S c:\tasks\example1.cmd
Эта задача будет выполняться со вторника по субботу в час ночи. Параметр /interactive позволяет задаче выводить сообщения на рабочий стол пользователя, чей аккаунт загружен в систему во время выполнения задания. Некоторые программы выводят окно с сообщением об ошибке и ждут реакции пользователя. Если не задать параметр /interactive, то такие программы не смогут завершить работу и станут копиться в памяти.
В Windows 2000 задания создаются с помощью мастера. В панели управления нужно открыть папку "Назначенные задания" и создать задачу с помощью мастера.

Примечание: Имена каталогов в командном файле следует записывать в кодировке DOS.

Как синхронизировать каталоги на двух компьютерах в локальной сети или запустить какую-либо программу до или после синхронизации.

В командном файле нужно добавить команды на подключение сетевых дисков до синхронизации и отключение сетевых дисков после синхронизации. Такие диски должны быть даны в общий доступ. У пользователя, от имени которого выполняется задание, должны быть права на чтение или запись для этих дисков. Если на рабочей станции, к которой вы подключаетесь, есть пользователь с такими же именем и паролем, как и у пользователя, от имени которого выполняется задание, или если такая рабочая станция и ваша рабочая станция входят в один домен, то при подключении не нужно указывать пароль. Иначе нужно.
Пример:
net use M: \\terminal1\z
net use L: \\terminal2\z password /USER:username
c:\SMS22\synch -src:M:\Users -aim:L:\Backup
net use m: /d
net use l: /d

Таким же образом можно выполнить другую программу до или после синхронизации. В следующем примере после синхронизации вызывается архиватор WinRar. Он архивирует каталог со старыми версиями файлов, сохраненными SMS, а затем удаляет этот каталог.
Пример:
c:\SMS22\synch -src:c:\users -aim:d:\backup -keep:10:d:\tempkeep
c:\winrar\winrar.exe m -r -agYYYYMMDDHHMMSS -ep1 d:\keep\k d:\tempkeep\
SMS сохраняет старые версии файлов во временный каталог d:\tempkeep. Число 10 не играет особой роли. Для страховки. WinRar архивирует файлы в каталог d:\keep и удаляет их из временного каталога. Я не нашел ключ, который ограничивает количество хранимых архивов, но это не существенно. Этот пример был проверен с WinRar v.3.00.
Ключи WinRar:
m -перемещать файлы в архив. После архивации файлы удаляются.
-r -архивировать содержимое подкаталогов
-agYYYYMMDDHHMMSS -добавлять к имени архива год (YYYY), месяц (MM), число (DD), час (HH), минуту (MM), секунду (SS). В данном случае имя архива будет, например, k20040425111255.rar
-ep1 -не добавлять к пути в архиве материнский каталог. В данном случае tempkeep. Сэкономите на щелчках мыши.
d:\keep\k -имя архива
d:\tempkeep\ -каталог, содержимое которого нужно архивировать. Обратите внимание на слэш после имени. Иначе после архивации будет удален каталог d:\tempkeep.

Как послать отчет по e-mail.

Следующий пример приведен для простого случая, когда хранятся логи одной сессии и подкаталог для них не создается. Этот пример был проверен с почтовым клиентом "The Bat!" v.2.01 и почтовым сервером "The CommuniGate Pro Messaging Server" v.4.0.6. Для аккаунта, от имени которого выполняется задание, должен быть создан и настроен почтовый ящик в "TheBat!".
Пример:
c:\SMS22\synch -src:c:\users -aim:d:\backup -logs:1:r1:d:\logs
c:\thebat\thebat.exe /MAILU=test;TO=postmaster@10.20.12.77;S=log;TEXT=d:\logs\logsession.txt;SEND /EXIT
Из ящика test на адрес postmaster@10.20.12.77 отправляется письмо с темой "log". Текстом письма является содержимое файла logsession.txt.


Ошибки в этой версии программы.

Всякая мечта о совершенстве несет в себе кошмар несовершенного воплощения.
Майкл Муркок, "Повелитель воздуха".



Программа тщательно тестировалась, но вероятность того, что исправлены все ошибки, мала. В этой версии программы алгоритмы логической проверки и предварительной подготовки списков стали сложнее, поэтому увеличилась вероятность логических ошибок. Очень низка, но не равна нулю вероятность ошибок при формировании динамических списков. Результатом может стать обращение к неправильному адресу памяти и аварийное завершение работы программы.


Источники информации, среда разработки и аппаратное обеспечение:

В качестве источников информации при написании программы использовались следующие материалы:
"Программирование в среде Си для ПЭВМ ЕС", Авторы: Л.М. Романовская, Т.В. Русс, С.Г. Свитковский. - Москва: Финансы и статистика, 1992 г.
"От Си к С++", Авторы: Е.И. Козелл, Л.М. Романовская, Т.В. Русс и др. - Москва: Финансы и статистика, 1993 г.
"Программирование на С и С++ для Windows 95", Автор: Герберт Шилдт, перевод с английского В. Яковлева. - Киев: Торгово-издательское бюро BHV, 1996 г.
"Язык программирования С++", второе дополненное издание, Автор: Бьерн Страуструп. - электронный вариант, Last-modified: Fri, 22 Jan 1999 15:04:52 GMT.
MSDN Library, январь 2000 г.

Среда разработки:

Microsoft Visual Studio 6.0+SP3, OS: Windows NT 4.0+SP6. Программа написана с использованием MFC и откомилирована со статическим включением библиотек. Помимо этого, в программу включены тексты 155 сообщений и краткая справочная информация. Это объясняет большой размер программы.

Аппаратная платформа:

IBM PC Server 320: dual Pentium-133, 128Mb RAM SIMM, 2x2Gb IBM SCSI drives on Mylex DAC960 SCSI RAID controller.

Для ОЧЕНЬ опытных пользователей: как получить профессиональную версию программы.

Если вы желаете обладать профессиональной версией программы, вы должны переименовать исполняемый модуль synch.exe в synchPRO.exe. Внимание! Профессиональная версия программы не является бесплатной и предоставляется вам только в ознакомительных целях на срок в 30 дней (плюс-минус полтора дня). По истечение этого срока вы должны ПОЛНОСТЬЮ удалить эту программу СО ВСЕХ принадлежащих вам по праву собственности носителей информации. Мы рекомендуем воспользоваться какой-либо из утилит, предназначенных для удаления информации без возможности восстановления. Не выполнив данные требования, вы будете подлежать уголовной ответственности в рамках существующего законодательства.

Дань уважения:

Человек, способный создать язык программирования, - это великий человек с высочайшим интеллектом. Ведь человеческие языки создаются веками, язык же программирования создается за короткий период жизни своего создателя... А затем люди годами учатся говорить на нем без ошибок.
Бьерну Страуструпу


И напоследок несколько пиаровских слоганов:

Your people trust you. Make them believe.
IT's not a trouble: We make IT double.
SMS: Feel the Power of the Dark Screen.
Chief's files are backed up: Twice as much stupidity as allways.
Envy your girl-friend? SMS: Now you have your twins.
God loves laughter. SMS: Very Funny.

Hosted by uCoz