Archivio della categoria 'Open Source'

Directory public_html con uno script bash

Apache, Open Source, Shell, Sistema, Tips & tricks Nessun commento »

Mi è capitato spesso di dover mettere mano a server UNIX/Linux con una gestione dei VirtualHost di Apache compromessa da anni di utilizzo incontrollato del server da parte di amministratori di sistema non proprio ordinati. Il risultato di solito è un grande numero di utenti con home directory strutturate in maniera differente l’una dall’altra.

In particolare, in un caso recente mi sono ritrovato un centinaio di utenti dei quali una certa parte aveva la DocumentRoot nella propria home directory, altri invece ce l’avevano sotto /var/www/users/, cosa che io raccomando in quanto evita di avere problemi con SUEXEC nelle versioni di Apache precompilate.

Per sistemare una situazione così caotica ho deciso di mettere tutto correttamente sotto /var/www/users/ e mi si è presentata la necessità di creare automaticamente le directory mancanti e i relativi link simbolici alle varie home directory. L’ho fatto con un semplicissimo script in bash, che pubblico qui nel caso possa essere utile anche a qualcun altro. Ci ho messo anche un po’ di output per rendere il codice chiaro anche a chi è alle prima armi con la bash.

Attenzione! Alla riga 18 viene fatta la copia di un fast-cgi presente nella directory /var/www/users/ivan/. Ovvio che dovete sostituire ivan con il nome di un utente presente sul vostro server.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
 
echo "Inizializzazione script..."
 
for i in $( ls /home/ ); do
  echo "  Sto processando '$i'"
  if [ -L /home/$i/public_html ]; then
    echo "    Il link simbolico /home/$i/public_html esiste gia' ... salto!"
  else
    echo "    Il link simbolico /home/$i/public_html non esiste: provo a crearlo ... "
    if [ -d /var/www/users/$i ]; then
      echo "La directory /var/www/users/$i esiste, non mi resta che linkarla ... "
      /bin/ln -s /var/www/users/$i /home/$i/public_html
    else
      echo "    La directory /var/www/users/$i NON esiste, ora la creo ... "
      /bin/mkdir /var/www/users/$i
      echo "    Copio il FAST-CGI ... "
      /bin/cp /var/www/users/ivan/fast-cgi /var/www/users/$i/
      echo "    Sistemo i permessi per la directory creata ... "
      /bin/chown -R $i:$i /var/www/users/$i
      /bin/chmod 700 /var/www/users/$i
      echo "    Creo il link simbolico ... "
      /bin/ln -s /var/www/users/$i /home/$i/public_html
    fi
  fi
done
Condividi:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Technorati
  • YahooMyWeb

Basta un click!

Novità, Open Source, Segnalazioni Nessun commento »

BUC (Basta Un Click) è un software Open Source per Linux del SiciLinuX Group, sviluppato da Matteo Avalle in collaborazione con Valerio Billera, in grado di trasformare script bash in vere e proprie applicazioni dotate di comoda interfaccia grafica. Il programma sostanzialmente non è altro che un “interprete” in grado di leggere files con estensione .mc, ovvero dei particolari files XML, che contengono, al loro interno, una serie di script bash. In questo modo la vostra abilità nella programmazione bash può essere sfruttata per realizzare delle vere e proprie applicazioni dotate di interfaccia grafica.

Maggiori informazioni sul sito Internet ufficiale del progetto, all’indirizzo: http://buc.opensource.tk

Condividi:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Technorati
  • YahooMyWeb

Programma Linux Day 2008 a Bergamo

Annunci, Novità, Open Source Nessun commento »

Come ogni anno l’edizione bergamasca del Linux Day si distingue per l’eccezionale capacità organizzativa e la ricchezza dei seminari proposti. L’evento si terrà presso la Facoltà di Ingegneria dell’Università degli Studi di Bergamo.

Citando il sito ufficiale dell’iniziativa, ricordo che il Linux Day è una manifestazione nazionale articolata in eventi locali che ha lo scopo di promuovere Linux e il software libero.

Per maggiori informazioni e prenotazioni, consultare il sito Internet ufficiale del BGLUG (Bergamo Linux User Group) all’indirizzo http://www.bglug.it.

Condividi:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Technorati
  • YahooMyWeb

CentOS 4.7 Server CD - i386 Released

Annunci, Novità, Open Source Nessun commento »

Nella notte è stata rilasciata l’ultima versione stabile di CentOS, l’ottima distribuzione Linux enterprise level derivata dai sorgenti ufficiali di Red Hat, la sola che contesti i primati di nuove installazioni alla Ubuntu 8.04 LTS Server Edition. CentOS (acronimo di Community enterprise Operating System) è la scelta ufficiale di molti ISP e rivenditori di hosting.

Una curiosità: anche se CentOS deriva direttamente da Red Hat Enterprise Linux, sul sito Internet ufficiale della distro si legge solo che “CentOS is an Enterprise-class Linux Distribution derived from sources freely provided to the public by a prominent North American Enterprise Linux vendor. Questo per ovvie ripercussioni che il grande successo di CentOS ha provocato nelle relazioni con Red Hat.

Ecco infine alcuni passaggi dell’annuncio ufficiale: The single CD server install for CentOS 4.7 has now been released and is available from all active mirrors. Notes: this installer will only work with i686-based CPUs; the included packages are a subset of all packages available in the CentOS distribution, however yum has been pre-configured to use the entire repository; in order to ensure that drivers and other third-party applications maintain compatibility, the package set used on the Server CD is from release time CentOS 4.7, you are strongly encouraged to run a ‘yum update’ immediately after installation; the ISO size is lower than the 650 MB acceptable for a single CD - feedback on what other packages should be added or removed from this CD for the next release are welcome.

Condividi:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Technorati
  • YahooMyWeb

Installazione di Debian Etch su RAID + LVM

Debian, Open Source, Sistema, Tips & tricks Nessun commento »

In questo post descrivo con la massima sinteticità e senza alcuna pretesa di completezza come si possa realizzare un RAID 1 (software) durante l’installazione di Debian Etch e come si configuri correttamente il LVM.

Su una delle mie workstation ho due hard disk identici da 320GB. Ho deciso di installarci l’ennesima Debian Etch e di mettere i due dischi in RAID. Ho avviato l’installazione e in un paio di minuti sono arrivato allo step in cui vanno effettuati i settaggi per il partizionamento dei dischi. Trattandosi di dischi S-ATA, il debian-installer me li ha riconosciuti come segue:

  • SCSI1 (0,0,0) (sda)
  • SCSI2 (0,0,0) (sdb)

Lo stesso discorso vale comunque anche per dischi IDE, in quel caso il debian-installer li vederebbe così:

  • IDE1 (hda)
  • IDE2 (hdc)

A questo punto ho creato una prima partizione di booting, di dimensioni minime (solo 512MB):

  1. selezionare il primo disco SCSI1
  2. scegliere come metodo di partizionamento “Manuale”
  3. selezionare la voce “SPAZIO LIBERO” sotto SCSI1
  4. scegliere “Crea una nuova partizione”
  5. selezionare “Inizio” come posizione della nuova partizione
  6. selezionare “Primaria” come tipo della nuova partizione
  7. inserire 512M come dimensione della nuova partizione
  8. scegliere “Volume fisico per il RAID” come modo d’uso della nuova partizione
  9. scegliere “Preparazione di questa partizione completata”

Poi ho creato la partizione destinata a contenere il filesystem vero e proprio:

  1. selezionare il primo disco SCSI1
  2. scegliere come metodo di partizionamento “Manuale”
  3. selezionare la voce “SPAZIO LIBERO” sotto SCSI1
  4. scegliere “Crea una nuova partizione”
  5. selezionare “Inizio” come posizione della nuova partizione
  6. selezionare “Primaria” come tipo della nuova partizione
  7. inserire 95% come dimensione della nuova partizione
  8. scegliere “Volume fisico per il RAID” come modo d’uso della nuova partizione
  9. scegliere “Preparazione di questa partizione completata”

Perché al punto 7 ho scelto di utilizzare solo il 95% del disco? Semplicemente perché, nel caso io debba sostituire uno dei due dischi, non avrò mai la certezza assoluta che il nuovo disco abbia esattamente lo stesso numero di cilindri etc. rispetto al disco originale, nemmeno se lo compero della stessa marca e dello stesso taglio. Ho bisogno quindi di un gap di tolleranza per mettermi al sicuro da possibili perdite di dati o inconsistenze durante la ricostruzione dei volumi. Certo, si spreca dello spazio che non verrà mai utilizzato, ma con dischi di queste dimensioni ce lo possiamo pure permettere.

Ora è necessario ripetere le operazioni appena descritte anche per il secondo disco (SCSI2) assicurandoci di avere effettuato esattamente le stesse scelte fatte per il primo.

Fatto questo, possiamo configurare il RAID 1 software. Per prima cosa creiamo il device multidisk destinato a contenere la partizione di boot:

  1. scegliere “Configurare il RAID software”
  2. confermare “Scrivere i cambiamenti sui dispositivi…”
  3. scegliere “Creare un device multidisk (MD)”
  4. selezionare “RAID1″ come tipo di device multidisk
  5. confermare “2″ come numero di device attivi per l’array RAID1
  6. confermare “0″ come numero di device “spare”
  7. abilitare solo /dev/sda1 e /dev/sdb1 come device attivi
  8. scegliere “Terminare”

Poi creiamo il device multidisk destinato a contenere il filesystem vero e proprio:

  1. scegliere “Configurare il RAID software”
  2. confermare “Scrivere i cambiamenti sui dispositivi…”
  3. scegliere “Creare un device multidisk (MD)”
  4. selezionare “RAID1″ come tipo di device multidisk
  5. confermare “2″ come numero di device attivi per l’array RAID1
  6. confermare “0″ come numero di device “spare”
  7. abilitare solo /dev/sda2 e /dev/sdb2 come device attivi
  8. scegliere “Terminare”

Ora possiamo passare alla creazione dei volumi logici. Per prima cosa creo il volume destinato a fare da swap del sistema:

  1. scegliere “Configurare il Logical Volume Manager”
  2. confermare “Scrivere le modifiche sui dischi e …”
  3. scegliere “Creare i gruppi di volumi”
  4. scrivere “VG00″ come nome del gruppo di volumi
  5. abilitare solo /dev/md/1 come device per il nuovo gruppo di volumi
  6. scegliere “Creare un volume logico”
  7. selezionare il gruppo di volumi “VG00″
  8. scrivere “swap” come nome del volume logico
  9. scrivere “4GB” come dimensione del volume logico (almeno il doppio della RAM)

Poi creo il volume destinato al filesystem vero e proprio:

  1. scegliere “Creare un volume logico”
  2. selezionare il gruppo di volumi “VG00″
  3. scrivere “filesys” come nome del volume logico
  4. confermare il valore massimo disponibile proposto come dimensione del volume logico
  5. scegliere “Terminare”

A questo punto posso creare le partizioni:

  1. selezionare il n° 1 sotto “LVM VG VG00 LV filesys”
  2. creare la partizione normalmente (scegliendo “Ext3″ come modo d’uso e “/” come mount point)
  3. scegliere “Terminare”
  4. selezionare il n° 1 sotto “LVM VG VG00 LV swap”
  5. creare la partizione di swap normalmente (scegliendo “swap area” come modo d’uso)
  6. confermare “Scrivere le modifiche sui dischi e …”

Fatto questo, è sufficiente procedere con l’installazione di Debian come di consueto.

Condividi:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Technorati
  • YahooMyWeb

Si tiene a Bergamo la sesta International Firebird Conference

Annunci, Novità, Open Source Nessun commento »

P-Soft in collaborazione con IBSurgeon e IBPhoenix organizza un seminario gratuito in inglese/italiano sugli strumenti di utility disponibili per l’amministrazione, ottimizzazione, replicazione, recupero dati con Firebird.

Il pomeriggio del 24 settembre 2008 si terrà presso le sale conferenza di NH Hotel di Orio al Serio un seminario gratuito dei seguenti contenuti:

  • Introduction - 10-15 mins
  • Firebird database recovery and protection against corruptions
  • How to find and solve performance problem in Firebird with IBSurgeon products
  • Replication with IBReplicator
  • Using dbFile

Il form di registrazione si trova a questo indirizzo.

Condividi:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Technorati
  • YahooMyWeb

Montare una partizione NTFS in scrittura con OpenSUSE

Open Source, Sistema, Tips & tricks Nessun commento »

Dopo avere installato OpenSUSE 11.0 su una delle mie workstation portatili mi sono accorto che l’accesso alle due partizioni NTFS riservate a Windows è possibile in scrittura solo per l’utente root. Rapida occhiata al file /etc/fstab per scoprire che si tratta di una scelta di default dell’installer di OpenSUSE, scelta che senz’altro è dettata da motivi di sicurezza ma che è altrettanto facilmente aggirabile. È sufficiente infatti modificare come segue i valori fmask e dmask nello stesso file /etc/fstab:

# /dev/disk/by-id/scsi-SATA_FUJITSU_MHV2100_NS91T5B26UKA-part2 /windows/D           ntfs-3g    users,gid=users,fmask=133,dmask=022,locale=it_IT.UTF-8 0 0
/dev/disk/by-id/scsi-SATA_FUJITSU_MHV2100_NS91T5B26UKA-part2 /windows/D           ntfs-3g    users,gid=users,fmask=113,dmask=002,locale=it_IT.UTF-8 0 0

Nell’esempio ho commentato la riga originale (fatelo sempre anche voi: non si sa mai…) ed ho cambiato il valore di fmask da 133 a 113 e quello di dmask da 022 a 002. In questo modo l’accesso in scrittura viene concesso non solo all’owner del filesystem ma anche a tutti gli utenti del gruppo users.

Fatto questo, ricordate di smontare e rimontare il filesystem perché le modifiche abbiano effetto immediato:

# umount /windows/D
# mount /windows/D

Condividi:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Technorati
  • YahooMyWeb

Cerco urgentemente collaboratori in zona Bergamo (e non)

Annunci, Novità, Open Source Nessun commento »

Sono alla ricerca di sviluppatori non-proprio-junior in zona Bergamo per l’inserimento in un progetto che avrà una durata variabile da 2 a 6 mesi, ma che potrebbe anche trasformarsi in un lavoro continuativo e - soprattutto - remunerativo a lungo termine.

I prerequisiti che vi richiedo sono i seguenti:

  1. ottima conoscenza PHP
  2. ottima conoscenza MySQL
  3. esperienza di sviluppo per il Web
  4. dimestichezza con Debian GNU/Linux
  5. buona conoscenza della lingua inglese
  6. interesse per il mondo Open Source

Chiunque sia interessato può inviare due righe informali (non è necessario un curriculum vitæ dettagliato) al seguente indirizzo email:

staff@tetragono.com

Attenzione! Se non sei della zona ma vuoi partecipare da remoto al team di sviluppo di questo progetto, se ne può sempre parlare: scrivimi! Questo non è un annuncio di lavoro a tutti gli effetti, quindi perdonatemi l’assoluta informalità. Contattatemi solo ed esclusivamente via email all’indirizzo che ho fornito sopra, grazie.

Condividi:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Technorati
  • YahooMyWeb

Giordano Ricciardi

Comics, Open Source, Varie Nessun commento »

Mi hanno segnalato le vignette di Giordano Riccardi, un ottimo disegnatore con la fissa per i reparti IT. Sul suo blog ufficiale ci sono ancora poche cose, non tutte di una comicità sconvolgente ma senz’altro molto interessanti per la qualità del tratto e l’originalità dei tre personaggi creati. Non trovo molte altre informazioni sul suo conto, magari se passa da queste parti può farci sapere qualcosa in più su di sé e sui suoi ultimissimi lavori.

Condividi:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Technorati
  • YahooMyWeb

Il Large Hadron Collider del CERN e Linux

Novità, Open Source 3 commenti »

Mentre si susseguono gli esperimenti avviati questa mattina nel Large Hadron Collider, si accendono qua e là i riflettori sulle tecnologie informatiche adottate dal CERN per gestire l’enorme mole di dati provenienti dal monumentale acceleratore di particelle. Per l’analisi di queste informazioni è stata realizzata una imponente rete per il calcolo distribuito denominata “LHC computing Grid” (LCG). Si tratta di un network composto da 60mila server collegati tra loro e localizzati in 11 fra enti di ricerca e Università di tutto il mondo. LCG è a sua volta collegato perennemente con altri 150 team di scienziati, i quali possono attingere in tempo reale ai dati prodotti dall’algoritmo di calcolo distribuito. Non stupisce che per questa imponente infrastruttura sia stato adottato un sistema operativo ad hoc, una distribuzione Linux autoprodotta denominata “Scientific Linux CERN“, prossima ormai alla release 5.2 (SLC52).

Condividi:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Technorati
  • YahooMyWeb