Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Логирование синхронизации папок

Ответить
Настройки темы
PowerShell - [решено] Логирование синхронизации папок

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: rox33
Дата: 06-12-2012
Добрый день, уважаемые!
Веду неравную борьбу с ведением лога при синхронизации папок
Вот скрипт, взял с интернета, доработал чуть-чуть под себя.
читать дальше »
Код: Выделить весь код
function FolderMirror {
 param ($source, $dest)

#Сравнение, копирование
$comparedirs = Compare-Object (gci $source) (gci $dest)
 if ($comparedirs | Where-Object {$_.SideIndicator -eq ‘<=’}) {
 $comparedirs | Where-Object {$_.SideIndicator -eq ‘<=’} | ForEach-Object{Write-Host "Копирую"($_.InputObject).FullName "в" $dest (Get-Date)
 Copy-Item ($_.InputObject).FullName -Destination $dest;Write-Output "Копирую"($_.InputObject).FullName "в" $dest (Get-Date) | out-file "c:\result.txt"}
 } else {
 Write-Host "Нечего копировать. Каталоги одинаковы"
 }

#Создание директорий из источника
$files = Get-ChildItem $source
 foreach ($file in $files) {
 if($file.mode -match “d”) {
 write-host "Folder – " $file
 if (Test-Path $dest\$file) {
 } else {
 New-Item $dest\$file -ItemType Directory
 }

 FolderMirror "$source\$file" "$dest\$file"

 } else {

 }
 }

}

$source = "d:\BCKP_TEST"
$dest = "d:\ttt"

$files = Get-ChildItem $source
 foreach ($file in $files) {
 if($file.mode -match “d”) {
 write-host "Folder – " $file
 if (Test-Path $dest\$file) {
 } else {
 New-Item $dest\$file -ItemType Directory
 }
 Write-Host "$source\$file" "$dest\$file"
 FolderMirror "$source\$file" "$dest\$file"
 } else {
 FolderMirror $source $dest
 }
 }

Всё работает хорошо, но лог, собака, пишет только последнюю операцию.
Как заставить его писать всё, что сделано за операцию?
И, в идеале, ДОзаписывать лог после каждого выполнения.

Заранее огромное спасибо за помощь!

Отправлено: 12:05, 06-12-2012

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Используйте robocopy,что гораздо проще и удобнее.

:: Параметры ведения журнала:
::
/L :: Только список - файлы не копируются, не удаляются, не помечаются отметками времени.
/X :: Сообщать обо всех дополнительных файлах, а не только о выбраных.
/V :: Подробный вывод с указанием пропущенных файлов.
/TS :: Включать в вывод метки времени исходных файлов.
/FP :: Включать в вывод полные пути файлов.
/BYTES :: Печатать размеры в байтах.

/NS :: Без размера - не заносить в журнал размер файлов.
/NC :: Без класса - не заносить в журнал классы файлов.
/NFL :: Без списка файлов - не заносить в журнал имена файлов.
/NDL :: Без списка папок - не заносить в журнал имена папок.

/NP :: Без хода процесса - не отображать число скопированных процентов.
/ETA :: Показывать оценку времени окончания копирования файлов.

/LOG:файл :: Записывать состояние в файл журнала (перезаписывать существующий журнал).
/LOG+:файл :: Записывать состояние в файл журнала (добавлять к существующему журналу).

/UNILOG:файл :: Записывать состояние в файл журнала в формате Юникод (перезаписывать существующий журнал).
/UNILOG+:файл :: Записывать состояние в файл журнала в формате Юникод (добавлять к существующему журналу).

/TEE :: Направлять выходные данные в окно консоли и в файл журнала.

/NJH :: Без заголовка задания.
/NJS :: Без сведений о задании.

/UNICODE :: Cостояние вывода в формате Юникод.

Отправлено: 13:03, 06-12-2012 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 10
Благодарности: 2

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar sync_folders.rar
(795 байт, 85 просмотров)

Этот же скрипт, но немного доработан, по желанию инициатора дописывает в лог

Отправлено: 16:04, 29-09-2013 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Логирование синхронизации папок

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - Дополнительное логирование системы kudrik.b Windows Server 2008/2008 R2 0 17-10-2012 12:51
2008 R2 - Логирование терминального доступа bad-us Windows Server 2008/2008 R2 5 28-08-2012 14:18
TMG 2010: логирование WEB proxy в MS SQL Spooner ISA Server / Microsoft Forefront TMG 1 08-07-2011 01:12
Интернет - Логирование setwolk Программное обеспечение Windows 13 07-02-2011 18:13
CMD/BAT - Логирование действия kosmo Скриптовые языки администрирования Windows 2 24-03-2010 16:23




 
Переход