Categorie
featured tutorial

Migrare il metabase di IIS con iiscnfg.vbs

Ci sono delle volte nella vita di un sistemista dove dopo aver allestito un nuovo Windows Server 2003, aver installato tutto il necessario compresi antivirus e backup giunge il momento di configurare IIS.

Nel caso il server sia adibito ad ospitare nuovi siti, non ci sono altre alternative che la configurazione attraverso l’interfaccia di amministrazione, ma nel caso di un migrazione da un altro server, dove magari sono presenti decine e decine di siti configurati la strada “facciamolo a mano” diventa lunga ma sopratutto la probabilità di fare qualche errore aumenta in modo direttamente proporzionale al numero di siti da configurare.

Diventa quindi lecito domandarsi come importare sulla nuova macchina la configurazione presente sul vecchio server.

Purtroppo dall’interfaccia di amministrazione le uniche operazioni che riguardano la gestione del metabase di IIS sono relative al backup ed relativo ripristino, ma fortunatamente Microsoft non ci lascia completamente a mano vuota, rendendo possibile l’operazione di esportazione e importazione tramite uno script vbs utilizzabile via shell.

Dal titolo del post, avrete capito che sto parlando di iiscnfg

Dopo aver letto un po’ di documentazione ed avendo come obbiettivo l’esportazione completa del metabase del vecchio server e la sua importazione sulla nuova macchina sono stati sufficienti 2 comandi …

Questo è il comando per l’esportazione, che ovviamente va eseguito sul server in cui c’è la configurazione da copiare.

iiscnfg /export /f nomefile /sp / /children

Vediamo insieme i parametri:

  • /f indica che l’esportazione deve avvenire su file ( nel mio caso nomefile è c:iisconfig_backup.xml )
  • /sp indica il ramo del metabase, che nel mio caso è un semplice slash che indica tutto ma potrebbe anche indicare un singolo sito
  • /children consente semplicemente di esportare in maniera ricorsiva tutte le sottochiavi

Se tutto è andato bene dovremmo ritrovaci sotto c un file xml che dobbiamo far arrivare sul nuovo server per poterlo importare.

Prima di procedere all’importazione, nel caso abbiate già modificato qualcosa suggerisco un backup, che potete effettuare o tramite l’interfaccia di amministrazione o via shell con iisback.

iisback /backup /b nomebackup

Arrivato a questo punto vediamo il comando per l’importazione che è leggermente più complicato …

iiscnfg /import /f nomefile /sp / /dp / /children /merge

In questo caso ci sono due parametri in più:

  • /dp specifica il percorso della metabase in cui vengono memorizzate le chiavi, discorso simile a quello per /sp e nel mio caso dove voglio importare tutto indico solo lo slash
  • /merge consente di combinare le chiavi nel file XML con le chiavi esistenti della metabase. Forse questo parametro nel caso di una configurazione da zero è inutile, ma nel caso abbiate già fatto modificato la configurazione di IIS questo vi permettera di importare solo le chiavi nuove

Questo funziona a patto che i percorsi rimangano gli stessi, ovvero se i siti prima erano sul disco e: dovranno essere su e: anche adesso.

Nel caso non sia possibile ricreare la stessa configurazione, suggerisco la modifica del file xml con il metabase prima dell’importazione, altrimenti vi tocca modificare a mano tramite l’interfaccia di amministrazione sito per sito.

Un ultima cosa; se durante la migrazione i due server si possono “parlare” potrebbe essere più comodo copiare direttamente la configurazione tra un server e l’altro, ma nel mio caso, essendo i due server in due posti fisicamente diversi, ed essendo sotto firewall non è stato possibile praticarlo.

Sperando di non aver dimenticato nulla, e di non aver scritto caz**te, questo è quanto …

Link di riferimento: Gestione di configurazioni di IIS tramite script

[tags]IIS, metabase, iiscnfg, iisback [/tags]

Categorie
software tutorial

7 modi per esaminare il carico di un server linux

Tenere sotto controllo il livello di occupazione del processore, della memoria e dei dischi è un pratica che in alcuni casi può evitare situazioni di emergenza.

I comandi che seguono possono aiutare a controllare questi valori direttamente da terminale, in modo da prevenire e risolvere eventuali problemi di performance.

  • htop
    htop possiamo considerarlo un evoluzione del famoso top (ed è per questo che top non è in questa lista ). Oltre a presentare le informazioni utilizzando i colori, permette lo scroll della lista verticalmente ed orizzontalmente in modo da poter leggere l’elenco di tutti i processi e la relativo comando con il quale vengono lanciati.

    htop - interctive process viewer

  • tload
    tload è in grado di generare un grafico del carico medio di sistema dentro la finestra del terminale. Con l’opzione -d è possibile impostare il tempo di aggirnamento

    tload - grapic representation of system load average

  • sar
    sar scrive sullo standard output dei contatori di attività. Anche con questo comando è possibile definire l’intervallo di visualizzazione indicando anche il numero di interazioni. ( per chi utilizza debian potrebbe essere utile sapere che il comando fa parte del pacchetto sysstat )

    # sar -u 3 5

    con questa sintassi l’aggiornamento verrà effettuato ogni 3 secondi per un totale di 5 volte.

    sar - collect, report, or save system activity infomation

  • mpstatmpstats riporta le statistiche relative al processore con il dettaglio delle istruzioni al secondo gestite dalla CPU. Su sistemi multiprocessori, è in grado di visualizzare le infomazioni separatamente, rendendo possibile il controllo individuale di ogni CPU.
    # mpstat 3 5

    come per il comando sar questa sintassi ( senza il parametro -u ) visualizza per ogni 3 secondi e per un totale di 5 volte e il suo output a terminale

    mpstat - report processor related statistic

  • iostat
    iostat restituisce due tipo di report: il primo e relativo all’utilizzo della CPU, mentre il secondo è relativo alle statistiche di I/O di ogni disco attivo nel sistema.

    iostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.

  • vmstat
    vmstat riporta informazioni sui processi, sulla memoria, sulla paginazione, sui block IO, i trap e l’attività della CPU.

    vmstat - Report virtual memory statistics

  • dstat
    dstat è un versatile strumento ideale per rimpiazzare vmstat, iostat, netstat, nfsstat ed ifstat. Dstat supera alcune delle loro limitazioni ed aggiunge alcune caratteristiche supplementari, dstat permette di vedere tutte le risorse di sistema istantaneamente.

    dtstat. versatile tool for generating system resource statistic

Conclusioni:
Le conclusioni non ci sono, l’utilizzo di uno o dell’altro sono spesso un fattore di abitudine e nella mia ignoranza non posso dire che uno sia meglio dell’altro. Personalmente trovo molto comodo htop e dtstat, che oltre alla completezza delle informazioni usano un interfaccia colorata che in qualche modo li rende più piacevoli …

Questi alcuni dei sito da cui ho preso spunto.

Categorie
featured software tutorial

Installare WebMin su Debian etch

Su segnalazione di Riccardo, scopro che WebMin non è presente sui reposity ufficiali dell’ultima release di debian (etch).

Webmin: web-based interface for system administration for *nix

Per chi non lo conoscesse, WebMin è uno strumento che fornisce un’interfaccia per l’amministrazione del sistema accessibie via browser che permette la configurazione e la gestione di molti servizi con un interfaccia un po’ più user-friendly della classica shell.

Giusto per citarne qualcuno, ecco alcuni dei servizi amministrabili via WebMin: apache, samba, dhcp, iptable, ecc..

Probabilmente alcuni preferiscono fare tutto attraverso un server ssh, ma a volte, sopprattuto per i servizi che non configuriamo quotidianemtne può risultare utile uno strumento accessibile via web.

Arrivati a questo punto, dopo aver preso coscienza che questa volta apt-get non ci risolve il problema, se decidiamo che vogliamo usare WebMin, possiamo procedere con un’installazione un po’ più manuale …

Prima di andare avanti apro una piccola parentesi per parlarvi della “poca” sicurezza che è intrinseca nelle applicazioni web.
Quello che voglio dire è che quando si lavora attraverso il protocollo http le informazioni viaggiano in chiaro, quindi se decidiamo di amministrare il nostro server da remoto ( opzione abilitata di default su WebMin ) dobbiamo renderci conto che i nostri dati (e quindi anche le nostre password) sono alla portata di un qualsiasi sniffer.

Fortunatamente WebMin oltre al protocollo http gestisce anche https che garantisce un buon livello di crittografia, ma per abilitarlo, dobbiamo avere installato sulla nostra debian etch la libreria Perl SSLeay.

Tradotto in pratica … installiamo prima questa libreria:

# apt-get install libnet-ssleay-perl

Bene, adesso siamo pronti installare WebMin con il supporto https. 🙂

Prima di tutto scarichiamo il tar.gz sulla nostra macchina:

# wget http://nomeserver/webadmin/webmin-1.340.tar.gz

( ovviamente nomeserver va sostituito con l’indirizzo di uno dei mirror di disponibili … )

Dopo aver effettuato il download di circa 15mb … scompattiamo …

# tar zxvf webmin-1.340.tar.gz

… e lanciamo il setup:

# ./webmin-1.340/setup.sh

Questo è il log di una mia installazione di prova.

Bene, a questo punto l’installazione è terminata, e WebMin vi sta aspettando in https sulla porta 10000.

Nel mio caso digitando https://192.168.1.62:10000/ da una macchina remota mi trovo di fronte al login.

Per migliorare ulteriormente la sicurezza vi suggerisco di leggere questa pagina, di limitare l’accesso da un range di ip il più stretto possibile e di cambiare la porta di default su cui è in ascolto.

Ecco alcuni screenshot della mia installazione:

Webmin System Information
Webmin configurazione

webmin accesso ip controllato
Webmin configurazione server ssh

Link di riferimento: webmin , install webmin

Categorie
bho en ?

mysql backup via mail

Dopo la disavventura di qualche giorno fa ho migliorato un po’ le mie procedure di backup relative ai database mysql, apportando qualche modifica agli script su crontab; questo è quello che “prodotto

mysqldump -u[utente] -p[password] [nomedatabase]| gzip --best -c > [nomedatabase].sql.gz && (date && echo "backup mysql" && uuencode [nomedatabase].sql.gz ) | mail [miamail@dominio.ext] -s "backup mysql"
(qui trovate la gist su github)

In pratica mi mando via mail, le istruzioni per ricreare il db avendo prima cura di comprimerle.

Essendo il comando un po’ lungo, avrei potuto fare uno script per poi eseguirlo, ma la potenza della shell è anche questo: concatenazione e reindirizzamento di comandi.

In reatà se scomponiamo i problemi è molto più semplice di quello che sembra.

Parte uno: con mysqldump genero le istruzioni SQL che permettono di ricreare il database.

mysqldump -u[utente] -p[password] [nomedatabase]

Parte due: raccolgo lo STDOUT e lo passo a gzip che si occupa di comprimerlo e salvarlo

| gzip –best -c > [nomedatabase].sql.gz

Parte tre: aspetto che gzip finisca il suo lavoro e se va tutto bene ( && ) preparo il contenuto della mail
( essendo il file compresso in formato binario uso uuencode allegarlo alla mail )

&& (date && echo “backup mysql” && uuencode [nomedatabase].sql.gz wordpress.sql.gz)

Parte quattro: passo la stringa precedentemente creata al comando mailche infine si occupera di recapitarla nella mia casella di posta

| mail [miamail@dominio.ext] -s “backup mysql”

Se qualcuno ha idee per migliorare quanto scritto mi faccia sapere …

Link di riferimento: mysqldump, shelldorado

[tags]mysql,backup,shell[/tags]