Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Копирование измененных фалов+логи (http://forum.oszone.net/showthread.php?t=311885)

dahiko 22-02-2016 15:33 2608907

Копирование измененных фалов+логи
 
Всем привет!
Необходимо создать батник для копирования файлов из одной папки в другую, если были сделаны изменения в файле.
Дано:
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 2608954

А какие у Вас наработки есть

Ubiquiti 22-02-2016 17:33 2608967

Код:

@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 2609017

robocopy поможет отцу русской демократии :).

Ubiquiti 22-02-2016 19:59 2609020

:) а я скрипт целый написал

dahiko 23-02-2016 06:10 2609134

Цитата:

Цитата Ubiquiti
синхронизация файлов »

Спасибо. Работает, копирует. Добавил параметр /Y, для подтверждения замены файлов. Не реализована передача логина и пароля в зашифрованном виде.
Это вообще реально сделать в батнике? Для этого подойдет "Net Use"?

Цитата:

Цитата Iska
robocopy поможет отцу русской демократии »

Обязательно попробую и этот способ.

dahiko 23-02-2016 13:01 2609222

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

Iska 23-02-2016 13:45 2609254

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

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

dahiko 23-02-2016 14:00 2609263

А речь идет как раз о домене, но пользователь не имеет доступа к нужным папкам и не будет иметь.

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

Iska 23-02-2016 16:45 2609306

Цитата:

Цитата dahiko
А речь идет как раз о домене, но пользователь не имеет доступа к нужным папкам и не будет иметь. »

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

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


Время: 20:02.

Время: 20:02.
© OSzone.net 2001-