Feb
16
2007

Powershell per la gestione dei sistemi

Powershell è la nuova shell (e decisamente anche linguaggio di script) su cui microsoft punta per riuscire ad ottenere un unico strumento di gestione delle reti. Tutte le nuove versioni dei prodotti server di Microsoft saranno fortemente basate su questo strumento, prima conosciuto con il nome di "Monad".
Dicevamo che Powershell è una shell; il suo "inventore" dice di aver tratto ispirazione e di aver migliorato le funzionalità dalle 3 grandi shell: quella di AS400, quella dei sistemi CMS e quelle linux come bash. In realtà è molto di più! Possiede builtin una serie di Cmdlets che sono le unità atomiche di PS, che eseguono una determinata azione; può contenere Funzioni, intese come blocchi di azioni atomiche che si possono riutilizzare; può anche eseguire Script, blocchi di codice che eseguono operazioni complesse.
Un aspetto interessante di PS è che non è necessario studiarsi un manuale per iniziare ad usarla. E' perfettamente compatibile con gli strumenti che già utilizziamo: cmd, vbs, js, wsh... quindi si può scaricare installare e iniziare ad usare.
Una caratteristica fondamentale è che si tratta di un sistema object-pipelined, in pratica si effettuano pipe di oggetti e non solo di stringhe; questo ad esempio permette di ereditare dal framework .NET, su cui PS è basato, Reflection ovvero la possibilità di ottenere informazioni sulla struttura dell'oggetto.
Spero a breve di poter compilare molti post su questo prodotto che mi piace molto, anche se lo conosco ancora troppo poco.

Feb
13
2007

WINK

Wink è un software per creare presentazioni e tutorial, adatto in particolar modo allo sviluppo di tutorial su come utilizzare un programma. Con Wink puoi catturare screenshot, aggiungere commenti o spiegazioni, bottoni di navigazione, titoli e generare quindi un tutorial molto accattivante per i tuoi utenti finali. Lo usai un paio di anni fa per realizzare un manuale visivo per operatori "poco competenti", per poterli istruire su come svolgere certe procedure su un software gestionale sviluppato ad hoc.

Alcune delle caratteristiche di wink:
- Innanzitutto è gratuito, per uso personale ma anche per lavoro.
- Nella versione 2.0 puoi aggiungere anche un commento audio!
- Genera output in formato flash, exe, PDF, PostScript o HTML.
- Multilanguage (compreso l'italiano)
- Strumento di cattura degli screenshot attivato dalla pressione di un tasto, temporizzato o legato al click del mouse e alla pressione dei tasti sulla tastiera
- Molto efficiente nella compressione in swf
- Infine è cross platform (windows e linux x86)
Altre caratteristiche molto utili sono la possibilità di titolare le schermate, di utilizzare template o semplicemente immagini di sfondo personalizzate, e la possibilità di non comprimere l'output swf in modo da poterlo gestire in un altro editor flash.

Su vbcorner.net è presente un buon tutorial in italiano per chi volesse avere un'idea più precisa in lingua madre sviluppato, manco a dirlo, con... wink!

Feb
8
2007

Download backup SQL da remoto via ftp

Mi è capitato in passato di avere dei server di produzione in serverfarm remota, su cui girava sql server con alcuni db. La necessità del cliente era quella di avere in locale i backup aggiornati dei db remoti a prescindere dai backup su nastro effettuati nella serverfarm. Il server era raggiungibile solo tramite protocollo ftp/http.
Dopo aver schedulato un "maintenance plan" di sql che effettuasse il backup, ho preparato uno script che, schedulato adeguatamente, zippasse il backup (per una questione di spazio ovviamente) e lo spostasse in una directory predefinita dell'ftp.
Lato cliente, un altro script schedulato (ad un orario che permettesse al server remoto di fare il backup e zipparlo ovviamente) si occupava di aprire una connessione ftp verso il server remoto e scaricare il backup zippato, avendo cura di cancellare eventuali vecchi backup scaricati prima di n giorni in modo da non riempire il disco nel giro di un mese, e di eliminare lo zip dal server, visto che il download è andato a buon fine.

Lato filesystem normalmente organizzo i db in una cartella DATABASES che contiene al suo interno una directory per ogni db (con molta fantasia nominata proprio con l'identificativo del db). Ogni directory contiene una struttura di questo tipo:
- _maintenance (contiene lo script per zippare il db)
- BACKUP (contiene il backup eseguito da sql server)
- DATA (contiene il file .MDF e .LDF)
- LOG (contiene i file di log del backup di sql)

Lato ftp server invece mantengo una directory per ogni db (può servire anche per server con db di diversi clienti)

Lato client infine, in una directory DATABASES mantengo una struttura a due rami:
- _maintenance (contiene lo script per l'ftp)
- BACKUP (contiene gli zip scaricati)

Come al solito qui (FTP_sqlbackup.zip (2,96 kb)) c'è lo zip, se qualcuno fosse interessato. (Per eseguire lo zip del backup utilizzo pkzipc, ma lo script si può facilmente adattare ad altri prodotti).

Per immagini il processo a grandi linee è il seguente:
LATO REMOTO:
1) Configuro il backup di sql server aprendo la sezione "management" tramite la mmc
 

2) Mi creo un nuovo "maintenance plan" Avendo cura di compilare corretatmente la schedulazione del backup

3) E il posizionamento all'interno del filesystem (.../DATABASES/nomedb/BACKUP se si usa la struttura di cui ho parlato sopra)

4) In pannello di controllo, "scheduled tasks" va aggiunta una operazione pianificata che esegua lo script che zippa il backup (ad un orario che permetta al backup di finire tutte le operazioni)
 


LATO LOCALE:
1) Viene creata la directory per scaricare l'ftp e viene configurato lo script; poi in pannello di controllo, "scheduled tasks" va aggiunta una operazione pianificata che esegua lo script, cancellando lo zip sul server e gli eventuali vecchi backup in locale.
 

Recent Tweets

Note: For Customization and Configuration, CheckOut Recent Tweets Documentation