Posts Tagged ‘ script’

Linux: cancellare files più vecchi quando sono tanti

{ Inserito il 04 nov 2013 da maury }

Non so se avete mai provato a cancellare da una cartella linux i files più vecchi di una certa data, sembra facile con uno script del genere

find <path_to_folder>/*.jpg -mtime +5 -type f | xargs rm -f

ma se la cartella ha decine di migliaia di files compare l’errore “too many arguments” e non se ne esce

ho dovuto quindi andarci giù pesante scrivere uno script che prenda i files più vecchi da una cartella, verifichi se sono più vecchi di un file di riferimento e li cancelli, ma si fermi dopo un certo numero di files per non intasare il server…

fcount=0;
cd <path_to_folder>

touch -d "5 days ago" timestampfile.tmp

for f in `ls -t -r`
 do 
 let "fcount += 1"; 
 #cancello solo se più vecchio di 5 giorni
 if [ $f -ot "timestampfile.tmp" ] 
 then
  rm "$f";
 fi 
 #cancello al max 100 files
 if [ $fcount -gt 100 ]
 then
  break
 fi
done 
Leggi »

Sql server da un backup ad un DB

{ Inserito il 23 nov 2010 da maury }

Se dovete prendere un backup di un DB Sql server fatto da un hosting provider (per esempio usando “mylittlebackup” di Aruba) ed importarlo in un Db locale, troverete un problema: tutti gli oggetti avranno come schema l’utente del database invece che il più standard “dbo”.

Per risolvere, dopo aver importato il DB è necessario eseguire per tutti gli oggetti coinvolti uno script del genere

ALTER SCHEMA dbo TRANSFER Mssql12345.tablename

(dove ‘Mssql12345′ è il nome dell’utente del DB e ‘tablename’ il nome della tabella)

questo risulta noioso se gli oggetti sono tanti, la soluzione più semplice (che non coinvolga cursori e query complesse) è quella di eseguire una query del tipo

SELECT 'ALTER SCHEMA dbo TRANSFER Mssql12345.' + name 
FROM sys.objects 
WHERE type='U'

e di usare il risultato per eseguire la query di aggiornamento dello schema…

Leggi »