Переименование файла и напоминание юзеру
Доброго время суток! Подскажите плиз примером:
Пользователь должен ежедневно копировать (штатными средствами приложения) некую базу, в результате чего в папке C:\Backup образуется файл c именем BASE.ZIP Требуется: 1. Чтобы не затереть файл очередной копией переименовывать его добавляя к имени дату и время ЕГО СОЗДАНИЯ. Не просто дату текущую, а создания - это более информативный вариант. 2. Организовать проверку не только присутствие этого файла вообще, но и проверку его актуальности по той же дате создания. Т.е. если предположим между датой создания и текущей промежуток более 24 часов (лучше наверное в часах - точнее) то бить тревогу и выдать пользователю сообщение (возможно виндовое) и даже может модальное что нужно выполнить копирование. И так напоминать ему каждые 15 минут. Если условие положительное - прекратить проверку. Таким образом осуществляется контроль за пользователем. 3. Если файл удовлетворяет всем условиям и переименован после этого - можно скопировать его в нужное место ...(или его один или настроить синхронизацию, если только это не замедлит процесс) Фишка в том, что приложение старое и не имеет встроенных возможностей для копирования по расписанию и т.д. нужное тупое визуальное копирование штатными средствами - о чем пользователь иногда забывает :-) И довольно часто. |
Serg2010
1-2. Где-то так? Для русской локализации (DD.MM.YYYY HH:MM). Скрипт запланировать на периодичность ~24ч, только в рабочее время, запускать просроченные задания и при обязательной регистрации пользователя - при отсутствии копии скрипт входит в цикл и шлет сообщения с периодом SLEEPS секунд (через NET SEND), в процессе копирования ожидает завершения бэкапа, по окончании - переименует файл. Код:
@Echo Off |
amel27, спасиб, само то!
|
Доброго времени суток!
Потестил батник. Вот какие есть наблюдения: 1. Открывавется батник в интерактивном окне, даже если и в свернутом виде в панели - его легко закрыть, тем самым прекратив работу, а это не входит в мои планы :-) если пользователь не создал архивную базу. 2. В связи с 1 пунктом решил сделать запуск батника не через штатный планировщик, а посредством команды AT. Процесс теперь не виден пользователю. Но работать батник как-то начинает не правильно. Он только выводит сообщение пользователю по send, но переименование файла не производит, да и не видит его вообще. Подкладываю нужный файл а ему пофиг. Чтот там нужно ещё если через AT делаю? 3. Нужно такое усовершенствоание батника: дело в том что писался он в расчете на запуск у одного пользователя, а ответственных на самом деле за копирование несколько. Следовательно, если у одного он отработает успешно, то других задолбает сообщениями :-) Значит нужно всёж скидывать как-то факт создания копии куда-то, чтобы остальные могли прочесть и прекратить свои батники тоже. Как это сделать лучше? Допускаю, что в корне сам батник может быть переделан ... |
Насчет скрытия - есть засечтательная утила hidcon
Собсно, работает так же, как и cmd.exe, но окон не видно а весит всего 2 кб (!). По вопросу мультиюзерности: может создавать спец. папки для каждого компа ? А в них копировать базу... Насчет скрытия - есть замечательная утила hidcon Собственно, работает так же, как и cmd.exe, но окон не видно а весит всего 2 кб (!). По вопросу мультиюзерности: может создавать спец. папки для каждого компа ? А в них копировать базу... |
Serg2010
1. Статья: Скрытие консольных окон. 2. AT планирует задание под SYSTEM, у этой учетки нет прав на сетевые ресурсы. В домене это решается простым включением учетки компа в списки доступа шары, в рабочей группе придется открывать доступ к шаре ВСЕМ, включая анонимов. 3. Это лишь шаблон батника, все случаи не учесть - вариантов много: терминал, домен, рабочая группа и т.д. НО скрипт должен быть один, для уведомления нескольких машин достаточно добавить для каждого пользователя "Net Send" с указанием его машины/имени, типа: Код:
Net Send Computer1 Копирование базы не проводилось очень давно. Требуется срочно выполнить! |
Доброго времни суток!
Спасибо за помощь! А вот по поводу работы скриптов на разных машинах не понял. Зачем мне рассылать сообщения каждому. Я имел ввиду что пользоватлей базы и ответственных за копирование несколько человек и у каждого будет запускаться этот скрипт. Так вот если у одного скрипт обнаржит появление копии и сделает как задумано (переименование и т.д.), то у других то скрипт просто будет крутиться тогда уж до бесконечности. чего им копировать опять если уже всёс делано?. Ведь нужна просто копия базы и не важно кто её сделает. Главно сделать. Предполагаю что тут нужно скидывыаь какой-то флаг в файл и другие компы должны его читать. Как только там положительный ответ им тоже пора загругляься. Как то так. |
Цитата:
З.Ы. Синхронизация работы нескольких батников не так проста, как кажется - даже если их всего два, не говоря уже о большем количестве... Поэтому, сначала убедите, что в вашем случае это действительно необходимо. |
Время: 06:06. |
Время: 06:06.
© OSzone.net 2001-