|
Компьютерный форум OSzone.net » Серверные продукты Microsoft » Windows Server 2012/2012 R2 » 2012 R2 - [решено] Удаление файлов старше 100 дней |
|
2012 R2 - [решено] Удаление файлов старше 100 дней
|
fascinating rhythm Сообщения: 6619 |
Профиль | Отправить PM | Цитировать Добрый день, дорогие коллеги!
Подскажите, как лучше реализовать удаление файлов старше 100 дней в неком каталоге? Есть ли встроенные средства с графической оболочкой, или это достигается только скриптами? |
|
Отправлено: 15:09, 06-06-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:45, 06-06-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 112
|
Профиль | Отправить PM | Цитировать DJ Mogarych,
я вот так вот реализовывал через планировщик. Может немного криво, за то работает. Очистка некой папки ( EXCHANGE ). Файлы старше 60 дней помещеються в папку !НА УДАЛЕНИЕ!, а файлы старше 70 дней удаляются из !НА УДАЛЕНИЕ!? формирование отчёта и отправка его на почту. # переменная даты $Date = Get-Date -Format yyyy-MM-dd #Запускаем запись лога Start-Transcript -path "D:\DATA\PUBLIC\DEPT\IT\LOGs\ClearFolderLog_$Date.txt" # Переменные конечной папки $TargetFolder = "D:\DATA\PUBLIC\( ExCHANGE )" # переменная папки временного содержания $ForDelete = "D:\DATA\PUBLIC\( ExCHANGE )\!НА УДАЛЕНИЕ!" # переменная исключений $exclude = @("*!!!*", "!НА УДАЛЕНИЕ!", "*.lnk") # переменная, чтобы исключить обработку папок и файлов перечисленных в исключениях # Переход в исходную папку ####cd "$TargetFolder" $Target = Get-ChildItem -Path $TargetFolder -Exclude $exclude #Переменные времени $minus60 = (Get-Date).AddDays(-60) $minus70 = (Get-Date).AddDays(-70) Write-Host "" Write-Host "====================== Перемещение в папку $ForDelete ===========================" # Перемещение объектов из целевой папки старше 60 дней в папку временного содержания $ListObjects = (Get-ChildItem -Path $Target -Recurse | ` Where-Object {(!$_.PSisContainer) -and ($_.lastwritetime -lt $minus60) -and ($_.CreationTime -lt $minus60)}).FullName Foreach ($Objects in $ListObjects) { Write-Host "Перемещение объекта $Objects в папку $ForDelete" -foregroundcolor "Yellow"; ` Move-Item -Path $Objects -Destination $ForDelete -Force } Write-Host "" Write-Host "================= Удаление объектов из папки $ForDelete ==========================" # Удаление объектов из папки временного содержания старше 70 дней $ListObjDel = (Get-ChildItem -Path $ForDelete -Recurse |` Where-Object {($_.lastwritetime -lt $minus70) -and ($_.CreationTime -lt $minus70)}).FullName ForEach ($ObjDel in $ListObjDel) { Write-Host "Удаление обекта $ObjDel" -foregroundcolor "Green"; ` Remove-Item -Path $ObjDel -Recurse -Force } #останавливаем запись лога Stop-Transcript # ================================================================================== # удаление пустых папок из целевой папки Get-ChildItem -Path $TargetFolder -Exclude $exclude -Recurse | Where-Object {$_.psiscontainer -eq “true”} | ` ForEach {` if (Get-Childitem $_.FullName) {} else {Remove-Item $_.FullName } } # ============================ ОТПРАВКА ОТЧЕТА ПО пОЧТЕ =========================== # Ищем файлы последние за сутки $CurrentDate = Get-Date -UFormat "%Y-%m-%d" # $CurrentDate $ListFile = Get-ChildItem "D:\DATA\PUBLIC\DEPT\IT\LOGs\*" -include *.txt -recurse | Where-Object{ $_.LastWriteTime -gt $CurrentDate } #$ListFile # Создаем почтовое сообщение $mail = New-Object System.Net.Mail.MailMessage # Устанавливаем соединение $mail.From = New-Object System.Net.Mail.MailAddress("noreply@domain.kz") $mail.To.Add("support@domain.kz" ) # Устанавливаем тему сообщения $mail.Subject = "Repport Clear ( ExCHANGE ) folder"; # Создаем тело сообщения из файла $mail.Body = "Отчет об очистке папки \\domain.kz\Shared\PUBLIC\( ExCHANGE )\" # Приаттачиваем файлы foreach ($File in ($ListFile)) { $Attachment = New-Object System.Net.Mail.Attachment ($File) $mail.Attachments.Add($Attachment) } # Создаем почтовое сообщение $smtp = New-Object System.Net.Mail.SmtpClient # Указываем хост через который будем отправлять $smtp.host = "mail.domain.kz" # Задаем пользователя от имени которого будет происходить отправка $Credentials = new-object System.Net.networkCredential $Credentials.domain = "DOMAIN" $Credentials.UserName = "noreply" $Credentials.Password = "Service@cc0unt" $smtp.Credentials = $Credentials # Отправка $smtp.Send($mail) |
Отправлено: 15:50, 06-06-2014 | #3 |
Ветеран Сообщения: 1496
|
Профиль | Отправить PM | Цитировать Может, это как-то поможет: http://technet.microsoft.com/en-us/l.../dd759233.aspx
|
------- Отправлено: 15:52, 06-06-2014 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Ну, вот и нашлось .
|
|
Отправлено: 16:41, 06-06-2014 | #5 |
fascinating rhythm Сообщения: 6619
|
Профиль | Отправить PM | Цитировать Дорогие коллеги, я вам крайне благодарен!
WindowsNT, а ведь я теперь припоминаю из микрософтовских экзаменов про File Management Tasks... Теория без практики мертва! А я ещё вспомнил про Robocopy, и оно встроено в Windows. Тоже наверняка можно эту задачу реализовать. Ещё раз спасибо, инцидент исперчен. |
------- Отправлено: 22:13, 06-06-2014 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
|
|
Отправлено: 02:16, 07-06-2014 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] Удаление файлов старше N дней | DOCznet | Скриптовые языки администрирования Windows | 2 | 27-09-2012 11:42 | |
Любой язык - Удаление файлов старше 5 дней кроме указанного по имени. | Joni | Скриптовые языки администрирования Windows | 6 | 11-07-2012 11:18 | |
VBS/WSH/JS - [решено] Удаление файлов по сети старше 7 дней, оставлять не менее 10 файлов | white155 | Скриптовые языки администрирования Windows | 6 | 04-01-2012 00:42 | |
[решено] Автоочистка файлов, старше 5 дней. | Universal_gr | Программное обеспечение Linux и FreeBSD | 1 | 01-10-2010 01:12 | |
Прочее - удаление файлов старше 10 дней | admin666 | Общий по Linux | 1 | 23-07-2009 19:09 |
|