Torna indietro   Hardware Upgrade Forum > Altre Discussioni > Amministrazione e Configurazione Server

Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-11-2013, 11:33   #1
Albiz849
Junior Member
 
Iscritto dal: Oct 2013
Messaggi: 26
[SOLVED]Server Storage Management

Buongiorno!

Oggi sto lavorando con una VM con Windows server 2008 R2 avente come ruolo File Services, in particolare File Server e File Server Resource Manager. Ho impostato una cartella, su cui ho il controllo completo, chiamata Test sulla quale vorrei effettuare un test appunto per capire come posso fare quanto segue.

Premetto che ciò che voglio fare va schedulato in modo che venga applicato ogni giorno alle 13.

Voglio eliminare tutti i file Temporanei quali Thumbs.db o i file di "Backup" di office, per chiarirci quelli che hanno il $ e che vengono creati quando il programma crasha, o simili.

Per lo specifico file Thumbs.db ho già introdotto una regola ad obiectum, ma per gli altri file no...
Inoltre esiste un modo per eliminare le cartelle vuote in automatico?

Non sono molto pratico in merito; avreste qualche suggerimento?

Grazie

A

Ultima modifica di Albiz849 : 27-11-2013 alle 09:15. Motivo: [SOLVED]
Albiz849 è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2013, 14:34   #2
Tasslehoff
Senior Member
 
L'Avatar di Tasslehoff
 
Iscritto dal: Nov 2001
Città: Kendermore
Messaggi: 6686
Io lo farei con un semplice script bash installando cygwin sul server.

Ti basta usare il comando find ed rm.
Per i file puoi usare
Codice:
find <PATH> -type f -name '\$*' -o -name 'Thumbs.db' | xargs rm -f
Per le directory puoi lanciare
Codice:
find <PATH> -type d | xargs rmdir --ignore-fail-on-non-empty
__________________
https://tasslehoff.burrfoot.it | Cloud? Enough is enough! | SPID… grazie ma no grazie
"Arguing that you don't care about the right to privacy because you have nothing to hide is no different than saying you don't care about free speech because you have nothing to say."
Tasslehoff è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2013, 15:01   #3
Albiz849
Junior Member
 
Iscritto dal: Oct 2013
Messaggi: 26
Quote:
Originariamente inviato da Tasslehoff Guarda i messaggi
Io lo farei con un semplice script bash installando cygwin sul server.

Ti basta usare il comando find ed rm.
Per i file puoi usare
Codice:
find <PATH> -type f -name '\$*' -o -name 'Thumbs.db' | xargs rm -f
Per le directory puoi lanciare
Codice:
find <PATH> -type d | xargs rmdir --ignore-fail-on-non-empty
Per i file temporanei forse ho già una soluzione, ormai la verifico lunedì, che per ogni estensione di file temporaneo crea una regola x l'eliminazione (ok 5 regole per 5 estensioni diverse non è il massimo ma dovrebbe funzionare).
Quanto alla directory... ehm... di script non ne so niente :-( hai per caso una guida? TNX :-)
Albiz849 è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2013, 21:07   #4
malatodihardware
Senior Member
 
L'Avatar di malatodihardware
 
Iscritto dal: Sep 2008
Messaggi: 3583
Visto che è su Windows perchè installare cygwin e non usare PowerShell?

http://technet.microsoft.com/en-us/l.../hh849852.aspx
malatodihardware è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2013, 22:45   #5
Tasslehoff
Senior Member
 
L'Avatar di Tasslehoff
 
Iscritto dal: Nov 2001
Città: Kendermore
Messaggi: 6686
Quote:
Originariamente inviato da malatodihardware Guarda i messaggi
Visto che è su Windows perchè installare cygwin e non usare PowerShell?

http://technet.microsoft.com/en-us/l.../hh849852.aspx
Io trovo molto più vantaggioso usare la bash anche solo per una pura questione di riusabilità degli script.

Non discuto della potenza di Powershell, però il fatto di essere limitato a Windows imho è sufficiente per scartarlo a priori.
__________________
https://tasslehoff.burrfoot.it | Cloud? Enough is enough! | SPID… grazie ma no grazie
"Arguing that you don't care about the right to privacy because you have nothing to hide is no different than saying you don't care about free speech because you have nothing to say."
Tasslehoff è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2013, 07:35   #6
malatodihardware
Senior Member
 
L'Avatar di malatodihardware
 
Iscritto dal: Sep 2008
Messaggi: 3583
Dipende cosa gestisci.. Se sono solo server Windows non ha senso usare altro, visto che l'editor con debugger è già compreso ed è un software nativo

Inviato dal mio Nexus 5 con Tapatalk
malatodihardware è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2013, 08:01   #7
Albiz849
Junior Member
 
Iscritto dal: Oct 2013
Messaggi: 26
Buongiorno!
Vi ringrazio per le risposte, vi informo inoltre che sto lavorando solo su server Windows, o per lo meno l'unico file service è su vm Windows.
Spero di poter consultare a breve il link fornito ma oggi il sito Microsoft TechNet sembra non funzionare, spero che la cosa si risolva in breve tempo.
Vorrei, se possibile, sapere se esiste un metodo per generare un report sui file duplicati; io ho già provato con il "tool" presente nello Storage Reports Management ma identifica solo file con lo stesso nome, a me servirebbe un controllo bit a bit. Preciso che attualmente, se un file si chiama a.ext e ne rinomino una copia in A.ext non viene visto come duplicato; a me farebbe piacere poter rinominare la copia di a.ext in b.ext e farli identificare come doppioni, duplicati insomma....
Grazie
A
Albiz849 è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2013, 14:25   #8
Albiz849
Junior Member
 
Iscritto dal: Oct 2013
Messaggi: 26
Quote:
Originariamente inviato da Tasslehoff Guarda i messaggi
Io lo farei con un semplice script bash installando cygwin sul server.

Ti basta usare il comando find ed rm.
Per i file puoi usare
Codice:
find <PATH> -type f -name '\$*' -o -name 'Thumbs.db' | xargs rm -f
Per le directory puoi lanciare
Codice:
find <PATH> -type d | xargs rmdir --ignore-fail-on-non-empty
Codice:
$Dir="C:\Test"
foreach( $In in(Get-ChildItem $Dir -Recurse){
if(!(Get-ChildItem -Path $In.FullName)){
echo $In.FullName;
Remove-Item $In.FullName
}
}
Codice:
Get-ExecutionPolicy=Restricted
Ho salvato lo script in ps1... ma come faccio a schedularlo?
grazie
A
Albiz849 è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2013, 18:09   #9
malatodihardware
Senior Member
 
L'Avatar di malatodihardware
 
Iscritto dal: Sep 2008
Messaggi: 3583
Con il task scheduler metti un'action con Program/Script "Powershell" e argument il percorso del file ps1
malatodihardware è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2013, 09:37   #10
Albiz849
Junior Member
 
Iscritto dal: Oct 2013
Messaggi: 26
Grazie!!!
A
Albiz849 è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2013, 11:25   #11
Albiz849
Junior Member
 
Iscritto dal: Oct 2013
Messaggi: 26
[SOLVED] maybe

CVD
ecco il classico errore di distrazione...
Alcune cartelle sono organizzate con dei numeri come prefisso es 00 - Organizzazione... queste cartelle, sebbene possano essere vuote NON DEVONO ESSERE ELIMINATE. Cosa che puntualmente non avviene... pensavo a un ciclo
Codice:
 if(Folder start with(lista)){skip}
Come va scritto x powershell ?
Grazie
A
Codice:
$Dir="C:\Test" 
$Et1="0"
$Et2="9"
foreach( $In in(Get-ChildItem $Dir -Recurse)){ #per ogni cartella in $Dir
if(!(Get-ChildItem -Path $In.FullName)){ #se non hai figli
$Sav=Split-Path( $In ) -leaf; #prendi il nome della cartella
if(!($Sav.StartsWith($Et1)) -and (!($Sav.StartsWith($Et2)))){ #se non fa parte delle eccezioni
echo $In.FullName; #stampa
#Remove-Item $In.FullName
}
}
}

Ultima modifica di Albiz849 : 19-11-2013 alle 14:10.
Albiz849 è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2013, 12:08   #12
Albiz849
Junior Member
 
Iscritto dal: Oct 2013
Messaggi: 26
Eureka!!!

Per la serie... sono un rompi*****...
Sto tentando di creare un report per i file duplicati, dato che non ho intenzione di affidarmi a software o regole di default...
Quindi ho preso uno script per i file duplicati e un generatore di file html e sto tentando di metterli assieme...
Codice:
function Get-Double {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true,
                   Position=0,
                   ValueFromPipeline=$true,
                   ValueFromPipelineByPropertyName=$true)]
        [System.String]
        [Alias('PSPath')]
        $Path
    )

    if ((Test-Path -Path $Path) -eq $false) {
        throw New-Object System.IO.FileNotFoundException($Path)
    }

    try {
        $item = Get-Item -Path $Path -Force -ErrorAction Stop
    } 
    catch {
        throw
    }

    if ($item -isnot [System.IO.FileInfo]) {
        throw New-Object System.ArgumentException('Specified path must refer to a File object.','Path')
    }

    try {
        $bytes = [System.IO.File]::ReadAllBytes($item.FullName)
    } catch {
        throw
    }

    $md5Hash = [System.Security.Cryptography.MD5]::Create()
    $hashBytes = $md5Hash.ComputeHash($bytes)

    $sb = New-Object System.Text.StringBuilder

    foreach ($byte in $hashBytes) {
        $sb.Append($byte.ToString("x2")) | Out-Null
    }

    Write-Output $sb.ToString()
}

$files = @{}
$folder = 'C:\Test\'  # Il percorso su cui lavorare

Get-ChildItem -Path $folder -Force -Recurse | 
Where-Object { $_ -is [System.IO.FileInfo] } |
ForEach-Object {
    try {
        $hash = $_ | Get-Double
    } catch {
        Write-Error -ErrorRecord $_
        return
    }

    if ($files.ContainsKey($hash) -eq $false) {
        $files[$hash] = New-Object 'System.Collections.Generic.List[System.String]'
    } else {
        # I'm just identifying duplicates by adding all their names to a list.
        # Keep in mind that if two files have identical hashes, they could have
        # different contents; it's possible for two different inputs to produce the same
        # hash code.
    }

    $files[$hash].Add($_.FullName)
}

$data=@()
foreach ($entry in $files.GetEnumerator()) {
    if ($entry.Value.Count -gt 1) {
        $data=$data+$entry.Value
    }
}

#$data= $data | sort{Split-Path( $data ) -leaf} possibilità di ordinare per nome(Verificare)
$drives = foreach ($path in $data) {
            $prophash = @{
            Nome= split-path $path -leaf
            Percorso = $path
            }

        #create a new object from the property hash
        New-Object PSObject -Property $prophash
        }
        #embed the style in the html header

$head = @'
<Title>Double Report</Title>
<style>
body 
{ 
 background-color:#FFFFFF;
 font-family:Verdana;
 font-size:12pt; 
}
td, th 
{ 
 border:1px solid blue; 
 border-collapse:collapse; 
}
th 
{
 color:white;
 background-color:green; 
}
table, tr, td, th { padding: 5px; margin: 0px }
table { margin-left:50px; }
</style>
'@

#create an xml document from the HTML fragment
[xml]$html = $drives | ConvertTo-Html -fragment


#check each row, skipping the TH header row
for ($i=1;$i -le $html.table.tr.count-1;$i++) {
  $class = $html.CreateAttribute("class")
}

#create the final report from the innerxml which should be html code
$body = @"
<H1>Double Report for $Folder</H1>
$($html.innerxml)
"@

#put it all together
ConvertTo-HTML -head $head  -PostContent "<br><i>$(Get-date)</i>" -body $body | 
Out-File "C:\Test\Double.html" -Encoding ascii

Invoke-Item "C:\Test\Double.html"
viene generato un file html, se ad esempio ho 3 serie di doppioni, alla fine del processo ho sempre e solo 1 file html che mi riporterà i valori di tutte le serie; Magari si può tentare di migliorarlo un po'...
Grazie di tutto!!!!
Adesso provo a farlo girare sul server... :-)
A

Ultima modifica di Albiz849 : 21-11-2013 alle 13:04. Motivo: [SOLVED]
Albiz849 è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2013, 14:39   #13
Albiz849
Junior Member
 
Iscritto dal: Oct 2013
Messaggi: 26
Quando il lavoro sembra finito emergono i problemi

Ciao!
Vorrei modificare gli attributi di alcuni file.
se il file è nascosto va tolto il flag e renderlo dunque visibile
Se vi viene in mente qualcosa...
Grazie!!
A

Ultima modifica di Albiz849 : 25-11-2013 alle 10:31.
Albiz849 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2013, 13:19   #14
Albiz849
Junior Member
 
Iscritto dal: Oct 2013
Messaggi: 26
[SOLVED]Si potrebbe fare meglio...

Codice:
$Move=@()
$Att=@{}
$Today = Get-Date -Format "dd-MM"
$Folder= "C:\Estinto\$Today"

if(!(Test-Path $Folder)){
    New-Item -Path $Folder -ItemType directory
}

$Ent=Get-ChildItem "C:\Test" -Recurse -Force -include *.$YY$, *.tmp, *.temp, *.DS_Store, *.part, ~$*, Thumbs.db
foreach($i in $Ent){
    if($i.mode -match "h"){
        $Att[$i]=$i.Attributes
        $Att[$i]=$Att[$i] | where{$_ -ne "Hide"} #questo non va
        $i.Attributes = $Att[$i]
    }
    $Move=$Move+$i.fullname
    Move-Item $i.fullname -Destination $Folder 
}


$Move= $Move | sort{Split-Path( $_ ) -leaf}

$drives = foreach ($path in $Move) {
            $prophash = @{
            Nome= split-path $path -leaf
            Percorso = $path
            }

        #create a new object from the property hash
        New-Object PSObject -Property $prophash
        }
        #embed the style in the html header

$head = @'
<Title>Deleting Temp Report</Title>
<style>
body 
{ 
 background-color:#FFFFFF;
 font-family:Verdana;
 font-size:12pt; 
}
td, th 
{ 
 border:1px solid blue; 
 border-collapse:collapse; 
}
th 
{
 color:white;
 background-color:green; 
}
table, tr, td, th { padding: 5px; margin: 0px }
table { margin-left:50px; }
</style>
'@

#create an xml document from the HTML fragment
[xml]$html = $drives | ConvertTo-Html -fragment


#check each row, skipping the TH header row
for ($i=1;$i -le $html.table.tr.count-1;$i++) {
  $class = $html.CreateAttribute("class")
}

#create the final report from the innerxml which should be html code
$body = @"
<H1>Deleting Temp Report for $Folder</H1>
$($html.innerxml)
"@

#put it all together
$Name = "Deleting Temp " + $Today

ConvertTo-HTML -head $head  -PostContent "<br><i>$(Get-date)</i>" -body $body | 
Out-File "C:\Log\$Name.html" -Encoding ascii

Invoke-Item "C:\Log\$Name.html"
la pecca è che toglie tutti gli attributi... vorrei che togliesse solo l'attributo nascosto...
Grazie!!
A

Ultima modifica di Albiz849 : 27-11-2013 alle 09:16. Motivo: [SOLVED]
Albiz849 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
Le 10 migliori offerte Amazon di Pasqua:...
Nuove fotografie dagli astronauti di Art...
La toilette della capsula Orion Integrit...
GeForce NOW: ecco tutte le novità in arr...
Il Realme 16 5G debutta sul mercato glob...
HONOR svela tre nuovi tablet: il più int...
Tineco Floor One S9 Master: aspira e pul...
Vivo X300 Ultra, il lancio globale è ini...
Offerte robot aspirapolvere Amazon: ECOV...
L'AI genera codice in 8 minuti e i senio...
Ring Intercom Audio a 44,99€ su Amazon: ...
Apple iPhone 16 crolla a 689€: ecco perc...
Google Pixel 9 a 449,90€ con caricatore ...
Ecco la top 7 delle offerte Amazon, aggi...
Ex ingegnere ammette il sabotaggio: migl...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v