Problema riscontrato su alcune RHEL 6: l'ssh ci impiega ere geologiche per presentare il prompt dei comandi.
Risolto modificando come segue l'opzione UseDNS (di default è impostata a yes) nel file /etc/ssh/sshd_config:
UseDNS no
Dopo avere aggiunto il disco virtuale dall'interfaccia di VMware, per poterlo vedere sulla macchina virtuale senza riavviare dobbiamo eseguire il comando:
echo "- - -" > /sys/class/scsi_host/host0/scan
fdisk -l
Nota: lo scsi_host potrebbe essere diverso nel vostro caso.
La procedura dovrebbe essere identica per qualsiasi altro software di virtualizzazione analogo a VMware.
Mi vergogno un po' ma l'ho scoperto solo ora, se si vogliono "greppare" più stringhe con un unico comando si può usare egrep come nell'esempio seguente:
egrep "Manzoni|Foscolo" autoriPoco utile, uff...
Se vi serve la lista di tutti gli rpm installati in un sistema, magari da inserire in un file di kickstart per replicarlo (non è sicuramente la soluzione più elegante), il comando da eseguire è questo:
rpm -qa --qf "%{NAME}\n"
Si fa così:
rm ./-qualchecosa
Quanto scritto di seguito vale, ovviamente, anche per le ultime release di Debian.
Appunto veloce veloce...
La soluzione più immediata è quella di scrivere questa riga nel nostro bel terminale
export http_proxy="http://nostro.proxy.it:3128"
e lanciare il solito apt-get update && apt-get upgrade.
Bene sul momento, ma dovremo rifarlo tutte le volte (o valorizzare la variabile http_proxy per il nostro ambiente, cosa che forse non ci interessa fare). Se invece vogliamo aggiungere la configurazione del proxy per apt al nostro server Ubuntu (continuo a riferirmi alla versione server perché con l'ambiente grafico è tutto più semplice) è sufficiente creare il file proxy all'interno della cartella /etc/apt/apt.conf.d e scriverci dentro la riga seguente:
Acquire::http::Proxy "http://nostro.proxy.it:3128";
Se invece vi è capitato di avere questa necessità, la soluzione si chiama fping.
Se gli host che vogliamo pingare non hanno indirizzi consecutivi, dovremo crearci un file di testo da passare come argomento al comando. Ad esempio creiamo il file ip_address con un indirizzo per riga, come questo:
10.102.0.1
10.102.0.2
192.168.1.1
192.168.2.1
192.168.2.2 Ora per pingare tutti gli ip basterà usare il comando
fping -f ip_address Se vogliamo ricevere in output solo gli ip degli host irragiungibili dobbiamo aggiungere lo switch -u (unreachable)
fping -u -f ip_address Per pingare un'intera classe C il comando saràfping -g 192.168.1.0/24Useremo lo switch -g anche per indicare a fping un intervallo, come in quest'esempiofping -g 192.168.1.10 192.168.1.100Se avrò voglia e tempo, prima o poi vi parlerò più diffusamente di questo utilissimo strumento.
Qui mi interessa più che altro appuntarmi come lanciare un'installazione automatica da CD/DVD (ma da rete cambierebbe ben poco) usando file di kickstart, pronto e corretto, raggiungibile via rete (in questo caso su un server ftp, ma funzionerebbe lo stesso con nfs o http). Il comando da usare alla prima schermata dopo l'avvio da CD è:
boot: linux ks=ftp://serverftp.dominio.it/filekickstart.ksIn questo caso l'installer cercherà di configurare la rete via DHCP, se non riuscirà a farlo chiederà a voi i parametri. Troppa interattività. Molto meglio, se non si dispone di un server DHCP, passargli tutto quello che gli serve al rigo di prima scrivendo così:boot: linux ks=ftp://serverftp.dominio.it/filekickstart.ks ksdevice=eth0 ip=0.0.0.3 netmask=255.255.255.0 gateway=0.0.0.1 dns=10.10.10.10A questo punto possiamo quasi dirci soddisfatti e andare a strafarci di caffeina. Tempo 4/5 minuti e il nostro server dovrebbe essere pronto.
Può essere utile (in alcuni casi molto utile) simulare l'installazione, o la disinstallazione, di un pacchetto senza realmente portare a termine nessuna delle due operazioni.
Il comando rpm ha un' opzione dedicata --test che può essere usata come nei due esempi che seguono:
Nel caso ci interessi simulare l'installazione:
rpm -ivh nomepacchetto.rpm --test
Nel caso ci interessi simulare la disinstallazione:
rpm -e nomepacchetto.rpm --test
Fedora e CentOS usano per distribuire i propri pacchetti una nutrita serie di mirror. Per scaricare sempre dal mirror più veloce si può usare un plugin per yum che si chiama yum-fastestmirror.
Per installarlo è sufficiente aprire un terminale e digitare il comando: yum install yum-fastestmirror Il plugin si occuperà di monitorare i tempi di risposta dei server dove si trovano i pacchetti e cercherà di scaricarli sempre da quello più veloce, senza nessun nostro ulteriore intervento.
Il comando è questo:
lsb_release -isIl risultato potrà essere ad esempio: Debian, Ubuntu, SUSE LINUX, CentOS ecc. ecc.
Con -i chiediamo l'identificativo per la distribuzione, mentre con il -s abbiamo scelto di avere un output short, senza intestazioni.
Altre opzioni interessanti sono:
- -r per stampare il numero di release
- -d che mostra una breve descrizione della distribuzione
- -a che mostra tutte le informazioni disponibili
Mi è appena capitato di dover ordinare una lista piuttosto lunga di indirizzi ip. Si sa che il sysadmin di suo è fondamentalmente pigro, quindi nessuna voglia di farlo a manina. Dopo aver spulciato le pagine man di sort, ecco il comando che ne è venuto fuori:sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n lista_di_ip
Una righetta facile facile da ricordare, non trovate? Proviamo a capire un po' più in dettaglio che cosa fa.
- Con il -t diciamo che vogliamo usare come separatore dei campi il punto (.)
- Il -k serve a specificare la chiave di ordinamento, ne specifichiamo più di una in cascata: prima ordiniamo il campo uno fino al primo punto, poi il campo due e via di seguito.
- -k 1,1n significa appunto dal primo campo (1) al (,) primo campo (1) effettua un ordinamento numerico (n). Lo stesso vale per il resto del comando.

Yum è il gestore di pacchetti di default delle ultime versioni di Red Hat Enterprise Linux, CentOS e Fedora. In sostanza è l'analogo di apt.
Vediamo come si installa un intero gruppo di pacchetti
1. Elenchiamo i gruppi disponibiliyum grouplist
2. Ok, nel mio elenco c'è un bel gruppo che si chiama "Clustering", sembra interessante, vediamo un po' cosa c'è dentro$ yum groupinfo "Clustering"
Group: Clustering
Description: Clustering Support.
Default Packages:
clustermon
conga-devel
ricci
system-config-cluster
ipvsadm
piranha
cluster-snmp
modcluster
ricci-modcluster
cluster-cim
rgmanager
luci
3. È esattamente quello che cercavo: luci, ricci, piranha e conga... si installa di corsa!yum groupinstall "Clustering"
4. Mi sono sbagliato, e poi tutte quelle bestie nel case mi spaventano un po'. Ranziamo via tuttoyum groupremove "Clustering"
E ora, per finire, si potrebbe imbastire una bella flame war con i talebani di apt... Uhm.. m'importa sega...
Per eliminare tutte le righe vuote da un file di testo con Vim, il comando da usare (in Editing Mode) è:
:g/^$/d
Se vogliamo che un utente sia costretto a cambiare la propria password al primo login, possiamo usare il comando chage così
chage -d 0 utenteCon l'opzione "-d" impostiamo la data di scadenza della password. 0 indica al sistema che la password è scaduta.
Ecco quello che l'utente vedrà al primo login successivo alla nostra modifica
You are required to change your password immediately (root enforced)
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user utente.
Changing password for utente(current) UNIX password:
New UNIX password:
Retype new UNIX password:passwd:
all authentication tokens updated successfully.Chage offre altre funzionalità interessanti: possiamo impostare una data di scadenza per una password con relativo periodo di preavviso. Ecco un esempio:
chage -M 180 -W 7 utenteLa password del nostro utente durerà 180 giorni e per i 7 giorni che precedono la scadenza riceverà un avviso in cui gli si chiede di cambiarla.
Se vogliamo avere una panoramica di questi valori per uno specifico utente, dobbiamo invece usare chage così:
chage -l utenteRiferimenti:
Chage sui sempre ottimi Appunti di Informatica Libera.
E' importante che le date dei nostri server siano sincronizzate, se non lo fossero la lettura dei log di sistema risulterebbe molto più difficile e rischierebbe di rivelarsi del tutto inutile.Fortunamente Linux ci offre tutti gli strumenti per gestire al meglio la sincronizzazione degli orologi si sistema. Vediamo come installarli e farli funzionare.
Il pacchetto da installare e ntp
Vediamo un po' di che si tratta
# yum info ntp
Description:
The Network Time Protocol (NTP) is used to synchronize a computer's
time with another reference time source. The ntp package contains
utilities and daemons that will synchronize your computer's time to
Coordinated Universal Time (UTC) via the NTP protocol and NTP servers.
The ntp package includes ntpdate (a program for retrieving the date
and time from remote machines via a network) and ntpd (a daemon which
continuously adjusts system time).
Install the ntp package if you need tools for keeping your system's
time synchronized via the NTP protocol.
Esattamente quello che ci serve; procediamo quindi con l'installazione
# yum install ntpOra inseriamo nel file di configurazione del demone i Time Server a cui richiederemo l'ora esatta
# vi /etc/ntp.confQuesti sono quelli presenti di default nel mio file di configurazione
# --- OUR TIMESERVERS -----
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
Una volta aggiunti i server non resta che avviare il servizio e configurarlo perché parta ad ogni riavvio del sistema.
# service ntpd start
# chkconfig ntpd on
Il pacchetto ntp comprende anche alcune utilità per interrogare manualmente i time server. Per verificare che tutto funzioni correttamente possiamo usare ntpq così
ntpq -p
L'output dovrebbe essere simile a questo
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntp1.inrim.it .IEN. 1 u 58 256 377 0.226 0.652 0.032
+ntp2.inrim.it .IEN. 1 u 71 256 377 0.217 0.638 0.037
Se è così abbiamo configurato correttamente il servizio.
Per poter comunque aggiornare il sistema, tralasciando i pacchetti che hanno problemi di dipendenze, possiamo utilizzare il plugin per yum yum-skip-broken.
Per installarlo:
yum install yum-skip-broken.noarchPer aggiornare il sistema ora basterà aggiungere l'opzione --skip-broken, come nell' esempio seguente:
yum update --skip-broken
PhpMinAdmin è un'alternativa semplice e snella al più completo - ma anche decisamente più complicato - PhpMyAdmin.
L'installazione è semplicissima dal momento che si tratta di un unico file: basta scaricarlo da questa pagina su SourceForge (al momento non è ancora localizzato in italiano, quindi per risparmiare qualche byte potete scegliere la versione solo in inglese) e copiarlo nella DocumentRoot di apache.
Tutte le operazioni più comuni sono disponibili attraverso un' interfaccia pulita e senza inutili fronzoli: si possono creare e droppare database e tabelle, gestire i permessi di accesso ed esportare dump dei database (l'elenco completo delle funzionalità si trova sulla pagina ufficiale del progetto).

Sulle distribuzione derivate da Red Hat il programma di posta installato di default è sendmail. Vediamo quali sono i passi per poter inviare posta all'esterno.
La direttiva SMART_HOST dice a sendmail di reindirizzare tutta la posta in uscita attraverso un altro server invece di consegnarla direttamente. Per modificare la configurazione di sendmail occorre avere il pacchetto sendmail-cf. Per sapere se è installato usiamo il comando:rpm -qa |grep sendmail-cfSe non è presente possiamo installarlo con il comando:yum install -y sendmail-cf
Ora possiamo modificare il file di configurazione /etc/mail/sendmail.mc e decommentare la riga dove compare la stringa SMART_HOST.
NOTA BENE: I commenti hanno una forma assurda del tipo "dnl #"
Prima della modifica
dnl define(`SMART_HOST',`smtp.your.provider')Dopo la modifica
define(`SMART_HOST',`postaserver.mio.it')A questo punto si può ricostruire il file sendmail.cf con il comando seguente
m4 sendmail.mc > sendmail.cfforzare il server a rileggere la configurazione e testare il tutto
service sendmail reload
mail -s "Test" mioindirizzo@ciao.it
NOTA: per uscire dalla composizione basta scrivere un punto "." in una riga vuota e dare invio.
Se si vuole evitare il licenziamento un buon inizio è quello di salvare SEMPRE una copia dei file di configurazione, più o meno critici, che si stanno editando. Secondo me 'cp' e 'date' assieme stanno benone e danno il vantaggio di imbastire un rudimentale sistema di controllo delle revisioni.
Quando mi tocca editare un file critico prima lanciare vim ne faccio una copia così:
cp drbd.conf drbd.conf.`date +%Y%m%d%H%M`Il risultato somiglia a questo
ls -l /etc/drbd.conf
-rw-r--r-- 1 root root 2729 Jun 12 16:47 /etc/drbd.conf
-rw-r--r-- 1 root root 1819 Jun 12 16:29 /etc/drbd.conf.200706121629
-rw-r--r-- 1 root root 1800 Jun 12 16:29 /etc/drbd.conf.200706121809


