Visualizzazione post con etichetta Sysadmin. Mostra tutti i post
Visualizzazione post con etichetta Sysadmin. Mostra tutti i post
| 0 commenti ]

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

| 0 commenti ]

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.

| 0 commenti ]

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...

| 0 commenti ]

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"

| 1 commenti ]

Un giorno potrebbe capitare anche a voi di dover cancellare un file che si chiama -qualchecosa (proprio così: col "-" davanti!)

 Si fa così:

rm ./-qualchecosa

| 4 commenti ]

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";

| 0 commenti ]

Poniamo il caso di avere la necessità di pingare più host, dove per "più host" potremmo anche intenderne 40,50 o un'intera classe C. Se non capite a cosa possa servire, probabilmente non vi serve. Nessun problema.

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.100

| 1 commenti ]

Kickstart è lo strumento che Red Hat (e tutte le sue derivate di conseguenza) utilizza per automatizzare completamente l'installazione di un nuovo sistema. Avete presente tutte quelle schermate che via via anaconda vi presenta, dove si scelgono (quasi) sempre le stesse opzioni? Bene, con kickstart potete evitarvene un bel po', se non tutte.

Se 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.

| 0 commenti ]

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

| 0 commenti ]

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.

| 0 commenti ]

Ho scoperto casualmente un comando che potrebbe tornare utile in diverse occasioni, il primo esempio che mi viene in mente è uno script che debba comportarsi in maniera diversa su distribuzioni diverse.
Il comando è questo:
lsb_release -is
Il 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

| 0 commenti ]

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.

| 0 commenti ]


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 disponibili
yum 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 tutto
yum groupremove "Clustering"
E ora, per finire, si potrebbe imbastire una bella flame war con i talebani di apt... Uhm.. m'importa sega...

| 1 commenti ]

Per eliminare tutte le righe vuote da un file di testo con Vim, il comando da usare (in Editing Mode) è:

:g/^$/d

| 1 commenti ]

Premessa: il comando dovrebbe funzionare su qualsiasi distribuzione GNU/Linux, più o meno recente, a patto che lo si usi come utente root. Quindi su Ubuntu andrà preceduto dal classico sudo.

Se vogliamo che un utente sia costretto a cambiare la propria password al primo login, possiamo usare il comando chage così

chage -d 0 utente

Con 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 utente

La 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 utente

Riferimenti:
Chage sui sempre ottimi Appunti di Informatica Libera.

| 4 commenti ]

Ovvero "sincronizziamo i nostri orologi!"

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 ntp

Ora inseriamo nel file di configurazione del demone i Time Server a cui richiederemo l'ora esatta
# vi /etc/ntp.conf

Questi 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.

| 0 commenti ]

Tenere aggiornati i sistemi è uno dei compiti principali di un System Administrator. Se abbiamo installato pacchetti da repository non ufficiali può capitare però che yum non riesca a risolvere alcune dipendenze e si blocchi del tutto, restituendo un errore.

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.noarch

Per aggiornare il sistema ora basterà aggiungere l'opzione --skip-broken, come nell' esempio seguente:

yum update --skip-broken

| 4 commenti ]

PhpMinAdmin è un'alternativa semplice e snella al più completo - ma anche decisamente più complicato - PhpMyAdmin.

Funziona sia con Php 4.3 che con Php 5, e sia con MySQL 4.1 che con MySQL 5.0, coprendo così la quasi totalità dell'installato più recente.

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).

| 18 commenti ]


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-cf
Se 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.cf
forzare 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.

| 0 commenti ]

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