Войти

Показать полную графическую версию : [решено] Копирование измененных фалов+логи


dahiko
22-02-2016, 15:33
Всем привет!
Необходимо создать батник для копирования файлов из одной папки в другую, если были сделаны изменения в файле.
Дано:
1. Folder1 - папка, из которой нужно копировать;
2. Folder2 - папка, в которую нужно копировать.

Условия:
1. Скопировать файлы из папки Folder1, если дата и время изменения файла "Позже", чем текущая дата и время у файлов в папке Folder2. То есть, путем сравнения содержимых файлов в двух папок, выяснить были ли изменения файлов в папке Folder1. Если ДА, то скопировать эти файлы в папку Folder2, если НЕТ, то пропустить).
2. Все действия должны быть записаны в лог файл. Например такого формата:
Дата,Вермя,Файл,Статус
19.02.16, 18:00,Пример.docx,Добавлен
19.02.16,18:00,Пример2.docx,Обновлен

Если файл уже существовал в папке Folder2, и он был заново скопирован, то необходимо в лог файл записать "Обновлен"
Если файла в папке Folder2 не было, и он был скопирован впервые, то необходимо в лог файл записать "Добавлен"
3. В логе должны быть начало и конец, например такой формат:
===Start===

===End===

4. В папке могут быть не только файлы, но другие папки.
5. Необходимо предусмотреть возможность ввода логина и пароля. Например, сохранить логин и пароль в зашифрованном виде (если каталог не будет доступен всем для чтения, а только определенной учетной записи.

Заранее спасибо!

Ubiquiti
22-02-2016, 17:04
А какие у Вас наработки есть

Ubiquiti
22-02-2016, 17:33
@Echo Off
rem откуда
Set Source=D:\smartctl

rem куда
Set Dest=D:\1
echo ===Start=== >> D:\111.log
rem дата и время
<nul set /p sVar= %DATE:~0,2%/%DATE:~3,2%/%date:~6,4%/%TIME:~0,2%:%TIME:~3,2% >> D:\111.log

rem копируем
Xcopy "%Source%" "%Dest%" /I /S /E /D >> D:\111.log
echo ===End=== >> D:\111.log


синхронизация файлов

Iska
22-02-2016, 19:56
robocopy поможет отцу русской демократии :).

Ubiquiti
22-02-2016, 19:59
:) а я скрипт целый написал

dahiko
23-02-2016, 06:10
синхронизация файлов »
Спасибо. Работает, копирует. Добавил параметр /Y, для подтверждения замены файлов. Не реализована передача логина и пароля в зашифрованном виде.
Это вообще реально сделать в батнике? Для этого подойдет "Net Use"?

robocopy поможет отцу русской демократии »
Обязательно попробую и этот способ.

dahiko
23-02-2016, 13:01
Помогите разобраться с robocopy.
Создал файл-задание mirror.rcj. В нем указал все необходимые мне параметры. Запускаю robocopy батником с параметром /JOB:H:\folder2\mirror.rcj
Все работает и логи устраивают. Но опять не понятно, как передать логин и пароль к папке.
Попробовал в батнике запуска robocopy использовать net use. Но почему-то не получается получить доступ к папке, да и пароль в открытом виде.

Iska
23-02-2016, 13:45
dahiko, не существует никаких способов «передать логин/пароль в зашифрованном виде». Ни в пакетных файлах, ни как-либо ещё. И да — любая попытка использования передачи пары логина/пароля в некоем «зашифрованном виде» фактически равнозначна передаче их в открытом виде, и является дырой в безопасности.

Есть единственно правильный вариант — работа на уровне домена, а не одноранговых сетей, когда логин/пароль указываются один раз — при регистрации пользователя.

dahiko
23-02-2016, 14:00
А речь идет как раз о домене, но пользователь не имеет доступа к нужным папкам и не будет иметь.

Думаю, тему можно закрыть.
Всем спасибо!

Iska
23-02-2016, 16:45
А речь идет как раз о домене, но пользователь не имеет доступа к нужным папкам и не будет иметь. »
Так добавьте его в группу, которая имеет такой доступ. Нет — настройте автоматическое копирование данных под пользователем, имеющим доступ, из этого ресурса на ресурс доступный искомому пользователю.

Для меня непонятен сам Ваш посыл — делать зеркалирование ресурса под пользователем, который «не имеет доступа… и не будет иметь».




© OSzone.net 2001-2012