Site icon Gioxx.org

ServiceDesk Plus: recuperare lo spazio disco occupato dagli aggiornamenti con uno script

Close up of a recycle garbage bin logo at Pershing Square in Los Angeles, California.

Photo by Gary Chan on Unsplash

L’avevo già usato in passato, mai pubblicato e neanche mai ritoccato, si tratta di uno script (VBScript) che mi permette rapidamente di andare a recuperare lo spazio disco occupato dai service pack di ServiceDesk Plus, i quali rimarranno vita-natural-durante a popolare la cartella “Patch” del server sul quale stai tenendo in vita l’applicativo.

Te ne avevo parlato nell’articolo ServiceDesk Plus: recuperare lo spazio disco occupato dagli aggiornamenti ma all’epoca portavo a termine la cosa a manina. L’ho poi automatizzata tramite uno script che – fornito un numero di giorni di cui tenere conto – rimuoveva file, cartelle e sottocartelle che superavano (come data) quei giorni da tenere da parte. In pratica l’idea era quella di cancellare tutti quei service pack più vecchi di “X” tempo.

Poi però mi sono accorto che questo non conveniva perché – insieme ai service pack – eliminavo anche lo storico degli aggiornamenti e dei file modificati. Certo è parzialmente utile mantenere queste informazioni senza però poter fare rollback, ma aiuta comunque a prendere una direzione più o meno precisa in caso di problemi. Per questo motivo, quel VBScript è stato modificato per svolgere sì il suo mestiere, ma ignorare quei file e cartelle dove si trovano le informazioni sugli aggiornamenti eseguiti sul software.

L’ho pubblicato su Gist, a tua completa disposizione:

'GSolone 2019
' ult.mod. 9/2/22: integro le eccezioni per cartelle e file da escludere dalla pulizia
' Credits:
' https://www.experts-exchange.com/questions/23543652/VBScript-to-delete-all-files-and-folders-in-a-directory.html
' https://www.automateexcel.com/vba/getfolder-getfile/
' https://superuser.com/a/1127074
strFolder = "C:\ManageEngine\ServiceDesk\Patch"
intDays = 0
' Non toccare nulla oltre questa riga / Don't modify anything after this line
Dim fileException, folderException, i
Dim lockedFolders(10), lockedFiles(10)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolders = objFSO.GetFolder(strFolder)
objToday = Now()
objPastDate = DateAdd("d", intDays*-1, objToday)
lockedFolders(0) = "logs"
lockedFolders(1) = "tmp"
lockedFiles(0) = "inf.xml"
lockedFiles(1) = "specs.xml"
Recurse objFolders
Sub recurse(ByRef objFolders)
Set objSubFolders = objFolders.SubFolders
Set objFiles = objFolders.Files
For Each File In objFiles
'MsgBox("Debug: " & File.Name)
fileException = False
For i = LBound(lockedFiles) to UBound(lockedFiles)
If lCase(File.Name) = lCase(lockedFiles(i)) Then
fileException = True
Exit For
End If
Next
If Not fileException Then
If File.DateLastModified < objPastDate Then
On Error Resume Next
File.Delete
End If
Else
'MsgBox("Exception found: " & File.Name)
End If
Next
For Each Folder In objSubFolders
'MsgBox("Debug: " & Folder.Name)
folderException = False
For i = LBound(lockedFolders) to UBound(lockedFolders)
If lCase(Folder.Name) = lCase(lockedFolders(i)) Then
folderException = True
Exit For
End If
Next
If Not folderException Then
If Folder.DateLastModified < objPastDate Then
On Error Resume Next
objFSO.DeleteFolder Folder.Path, True
Else
recurse Folder
End If
Else
'MsgBox("Exception found: " & Folder.Name)
End If
Next
Set objSubFolders = Nothing
Set objFiles = Nothing
End Sub

Sappi solo che:

Doppio clic sullo script per eseguirlo “senza troppe domande“, puoi anche creare un’operazione programmata nel Pannello di Controllo di Windows per ripetere l’operazione a intervalli regolari se necessario. In caso di dubbi, già sai, l’area commenti è a tua disposizione :-)

#StaySafe


Immagine di copertina Gary Chan on Unsplash

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato agli articoli "a bruciapelo"!
Se vuoi leggere le altre pillole fai clic qui.

Condividi l'articolo con i tuoi contatti:
Exit mobile version