|
Автоматическая очистка места на диске | ☑ | ||
---|---|---|---|---|
0
Сергиус
08.08.12
✎
09:50
|
Есть диск, на который складываются бекапы. Периодически он заполняется. Вот думаю, реально ли как-то очищать его при достижении определенного лимита..ну или на крайний случай, получать какое-то уведомление на почту.. Как можно реализовать подобное?
|
|||
1
Aleksey
08.08.12
✎
09:50
|
Что такое лимит?
|
|||
2
Fish
08.08.12
✎
09:51
|
(0) Формат?
|
|||
3
Сергиус
08.08.12
✎
09:51
|
(1) ну допустим, диск 500 гигов..а свободного места осталось 50 или меньше..
|
|||
4
Сергиус
08.08.12
✎
09:52
|
(2) в смысле?
|
|||
5
Fish
08.08.12
✎
09:52
|
(4) Раз в день форматируй диск и он никогда не заполнится :)
|
|||
6
ildary
08.08.12
✎
09:52
|
Лучше реализовать и то и другое - и purge старых файлов и уведомление, что место на диске заканчивается. Реализовать можно любым скриптовым языком - vbs, autoit и т.п.
|
|||
7
Сергиус
08.08.12
✎
09:53
|
(5) ты жестокий человек..если все так решаешь радикально)
|
|||
8
Сергиус
08.08.12
✎
09:54
|
(6) не подскажешь..где можно посмотреть какие-то работающие решения?
|
|||
9
Alize
08.08.12
✎
09:54
|
Планировшик запускает батник,раз в месц,тот удаляет файло
|
|||
10
Fish
08.08.12
✎
09:55
|
(7) А если серьёзно, то есть куча софта, который это умеет делать.
|
|||
11
pumbaEO
08.08.12
✎
09:56
|
(8) можешь даже на 1С написать, перебрать файлы, получить атрибуты и удалить ненужные.
|
|||
12
Heckfy
08.08.12
✎
09:56
|
(0) А что за бекапы?
|
|||
13
Сергиус
08.08.12
✎
09:56
|
(11) ну кстати да..вариант..надо подумать
|
|||
14
Сергиус
08.08.12
✎
09:57
|
(12) базы 1с
|
|||
15
Нуф-Нуф
08.08.12
✎
09:57
|
формат С в шедулер
|
|||
16
Alize
08.08.12
✎
09:57
|
(8)А голова тебе зачем?
|
|||
17
Heckfy
08.08.12
✎
09:57
|
(14) Если скулем бекапишь, то вообще проблемы нету.
|
|||
18
Сергиус
08.08.12
✎
09:58
|
(17) скулем..там это как то можно настроить?
|
|||
19
Мулька
08.08.12
✎
09:59
|
*vbs - Оставляет только последние два дня
On Error Resume Next Dim Foleder, Folders Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("E:\LogShipping\CTF") Set Folders = Folder.SubFolders For Each Folder In Folders datenew = DateAdd("d", 2, Folder.DateCreated) if datenew < now then Folder.delete end if Next Set FSO = Nothing |
|||
20
Heckfy
08.08.12
✎
10:01
|
(18) Да, можно. Называется "Задача "Очистка после обслуживания" в планах обслуживания.
|
|||
21
ildary
08.08.12
✎
10:02
|
(8) на autoit (удаление старых файлов):
#NoTrayIcon #include <Array.au3> #include <Date.au3> #include <File.au3> Local $Folder, $FileList, $FileType = '*.*', $ScavangeDate = 10 Dim $LogFileName = @ScriptName $LogFileName = StringLeft( $LogFileName, StringInStr( $LogFileName, "." ) - 1 ) & ".log" _Main() Func ErrMsg( $ErrStr, $ErrorCode = 1 ) $ErrStr = " Ошибка: " & $ErrStr MsgBox( 0, "Ошибка", $ErrStr, 600 ) Exit $ErrorCode EndFunc ;ErrMsg Func _Main() If $CmdLine[ 0 ] < 1 Then ;выведем ошибку и выйдем ErrMsg( "Не указаны все параметры (нужно 1)" ) EndIf $Folder = $CmdLine[ 1 ] If Not FileExists( $Folder ) Then ErrMsg( "Папка не существует: " & $Folder ) EndIf ;~ $Folder = FileSelectFolder('Choose The Diretory To Scavange For Old Files', '') ;~ If @error Then Exit If $CmdLine[ 0 ] > 1 Then ;получим колво дней для удаления $ScavangeDate = $CmdLine[ 2 ] $ScavangeDate = Number ( $ScavangeDate ) EndIf $FileList = _FileListToArray( $Folder, $FileType, 1 ) If @error Then Exit For $i = $FileList[0] To 1 Step -1 $FullFileName = $Folder & '\' & $FileList[ $i ] Local $FileDate = FileGetTime( $FullFileName ) If IsArray($FileDate) Then Local $Date = $FileDate[0] & '/' & $FileDate[1] & '/' & $FileDate[2] & ' ' & $FileDate[3] & ':' & $FileDate[4] & ':' & $FileDate[5] ;~ MsgBox( 0, "", "File: " & $FileList[$i] & ", Date: " & $Date & ", DateDiff: " & _DateDiff('D', $Date, _NowCalc()) ) If _DateDiff('D', $Date, _NowCalc()) < $ScavangeDate Then ContinueLoop EndIf FileDelete( $FullFileName ) ;_ArrayDelete($FileList, $i) Next EndFunc ;_Main |
|||
22
Heckfy
08.08.12
✎
10:02
|
||||
23
Сергиус
08.08.12
✎
10:03
|
(20) я думаю, это то что нужно! спасибо Всем
|
|||
24
BigHarry
08.08.12
✎
13:23
|
Со сравнением дат поаккуратнее, а то был случай - после "удачной" синхронизации времени дата на компе с быкапами ушла далеко вперед, и все архивы были затерты как сильно устаревшие :D
|
|||
25
Йохохо
08.08.12
✎
13:50
|
просто так делать не верно, надо "удалить все кроме последних успешных Х"
|
|||
26
smaharbA
08.08.12
✎
13:57
|
создать в планировщике 7 заданий с именами бекапов - бекап1, бекап2, ..., бекап7
все будет само |
|||
27
smaharbA
08.08.12
✎
13:58
|
и никакого программирования
|
|||
28
smaharbA
08.08.12
✎
13:58
|
+ в виндузе есть встроенная команда удаления старых файлов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |