Controllo automatico updates al login

Per avere sempre sotto controllo lo stato degli aggioranmenti del mio server, ed averlo sempre sotto controllo facendomelo uscire nello script di logon come nella foto sopra, ho scritto questo semplice programma : updates

#!/bin/bash
#La prima condizione e' sempre vera.

if [[ $(apt-get update 2>&1 | grep Hit) ]]; then
        if [[ $(apt-get --simulate upgrade 2>&1 | grep Inst) ]]; then
                apt-get --simulate upgrade | wc -l > /tmp/updates.txt
        else
                echo "No Updates available" > /tmp/updates.txt
        fi
fi

Se ci sono degli aggioranmenti disponibili scrivo in un file di testo il numero degli updates (wx -l ) in un file che per comodità viene posizionato in /tmp/updates.txt
Questo script non va eseguito ad ogni login per non appesantire la macchina visto che il controllo degli update fa un fetch di una serie di pagine web e svariati controlli che impegnano abbastanza il server a livello di I/O.
Meglio eseguirlo una volta sola, per questo è preferibile insierire questo script all’interno di /etc/cron.daily per lanciarlo una volta al giorno, piu’ che sufficiente.

A questo punto possiamo mettere all’interno del nostro script di loging l’otput di /tmp/updates.txt.
Io ho fatto così :

/etc/bash.bashrc :

if [  -f /tmp/updates.txt ];then echo -e "Updates Check :\t\t\t $(more /tmp/updates.txt)";fi

Abiliatare l’audit dei file in samba

Per abilitare questa feature di Samba, molto dipendiosa dal punto di vista di I/O del disco dovrete abilitare vfs stackable modules, in particoalre il modulo extd_audit

Apriamo ed editiamo il file /etc/samba/smb.conf e modifichiamo il valore LogLevel secondo quello che abbiamo bisogno :

Log Level Log Details - File and Directory Operations
0                 Make Directory, Remove Directory, Unlink
1                 Open Directory, Rename File, Change Permissions/ACLs
2                 Open & Close File
10                Maximum Debug Level

Editiamolo in questo modo :

syslog = 0
to
syslog = 10

ed aggiungiamo proprio sotto LogLevel :

vfs object = extd_audit

A questo punto samba inizierà a loggare tutte le operazioni fatte sulla nostra share samba.

Putty Connection Manager

Putty è uno di quei software fatti veramente bene (e tra l’altro esiste anche per linux, anche se io non lo uso). L’unico problema che ho riscontrato e` che dopo una mezz’ora di lavoro mi ritrovo completamente perso tra le finestre.

Una sola finestra con i tab, l connection manager messo su un tab verticale per accedere velocemente a tutte le connessioni registrate, la possibilita` di configurare la sessione di PuTTY anche dal punto di vista grafico.

Insomma se avete bisogno di accedere macchine linux da un OS Windows, PuTTY e` la soluzione, PuTTY Connection Manager e` la ciliegina sulla torta!

Per scaricarlo basta cliccare qui. Siccome PuTTY deve essere installato, il link per il download e` questo.

Static Route Ubuntu in if-up.d e Ottetti IP

Mi gasava molto l’idea che andando su Google e cercando “static route ubuntu” il primo risultato era un post che avevo scritto un mese fa.

Ho deciso quindi di raffinare la cosa “grezza” fatta un mese fa e con un po’ di tempo a disposizione ho scritto uno script in bash da inserire in /etc/network/if-up.d/ .

In questa particolare cartella ci son tutti gli script che partono quando un interfaccia è “salita”.

La particolarità di questo script è che parte solamente in presenza di una particolare rete, altrimenti evita di inserire la static route, questo perchè come nel caso del mio portatile ho bisogno di static diverse per reti diverse :

1. Create un file staticroute in /etc/network/if-up.d ( sudo touch etc/network/if-up.d/staticroute )
2. Dategli i permessi giusti : ( sudo chmod 777 staticroute )
3. Inserite lo script qui sotto tenendo customizzandovi i parametri che sono IPTOMATCH e OTTETTI ed ovvimante i gateway…

#!/bin/sh

#Luigi Molinaro 
#Setto l ottetto da matchare ed il numero di ottetti
#ESEMPI :
#10.0.0.0
#IPTOMATCH=’10′
#OTTETTI=’1′
#
#192.168.1.0
#IPTOMATCH=’192.168.1′
#OTTETTI=’3′

IPTOMATCH=’10′
OTTETTI=’1′

#Prendo dal stdOut di ifconfig solo il primo ottetto dell IP da ogni interfaccia

IPOWL=$(/sbin/ifconfig eth0 | grep “inet addr:” | sed “s/^.*inet addr:\([0-9.]*\).*$/\1/” | cut -d . -f $OTTETTI)
IPOWL2=$(/sbin/ifconfig eth1 | grep “inet addr:” | sed “s/^.*inet addr:\([0-9.]*\).*$/\1/” | cut -d . -f $OTTETTI)

if [ "$IPOWL" = "$IPTOMATCH" ] || [ "$IPOWL2" = "$IPTOMATCH" ]; then
echo Adding Route 10.10.0.0 …
/sbin/route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.1.1.50
echo Adding Route 10.11.0.0 …
/sbin/route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.1.1.50
else
echo No Static Route to insert
fi

se volete invece inserire una route statica non in base alla rete basta semplicemente inserire in staticroute :

/sbin/route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.1.1.50

Find & Replace sotto Linux

Siccome ogni volta che mi serve devo andarlo a cercare su internet, e siccome quasi tutti gli articoli sono veramente tosti e partono con le regular expression faccio un post molto molto semplice :

Come fare Find and Replace sotto Linux :

Esempio testo :

Ciao sono Luigi

sostitutiamo Luigi con Siffredi (Valeria ringrazia 🙂 )

sudo sed -i 's/Luigi/Siffredi/' filedamodificare.txt

Lo switch -i indica la modifica “in place”, ovvero sul file, senza avremmo la sostituzione in standard output per una redirezione (>) in un nuovo file ad esempio.

Aggiungere un nuovo disco sotto Linux

Vi potrebbe capitare di dover aggiungere un nuovo disco alla vostro fiammante server targato Linux.
Capita sempre piu’ spesso, soprattutto adesso che moltio sistemi operativi sono virtualizzati ed aggiungere un nuovo disco virtuale risulta essere molto piu’ semplice.

Andiamo subito al sodo :
Cerchiamo di individuare il tipo di disco appena creato :

sudo lshw -C disk

Per vedere sopratuttto nell’output il valore del logical name :

 *-disk
       description: SCSI Disk
       product: Virtual disk
       vendor: VMware
       physical id: 0.0.0
       bus info: scsi@2:0.0.0
       logical name: /dev/sdb
       version: 1.0
       size: 60GiB (64GB)
       capabilities: partitioned partitioned:dos
       configuration: ansiversion=2 signature=0007ce28

E come potete notare il logical name del nuovo disco è sdb.

Un ulteriore verifica sul nuovo disco da fare è quello di vedere le partizioni esistenti :

sudo fdisk -l

Dovrebbe produrre un’output come questo ad esempio :

Disk /dev/sda: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0007ce28

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        7507    60299946   83  Linux
/dev/sdb2            7508        7832     2610562+   5  Extended
/dev/sdb5            7508        7832     2610531   82  Linux swap / Solaris

Nel mio caso ho 3 partizioni.

Posso procedere ora con una formattazione o montarlo direttamente.
Decidiamo di formattarlo e di creare partizione ext3.

Prima di tutto cancello tutte partizioni esistenti

sudo fdisk /dev/sdb

Le opzioni che ci vengono restituite :

Command (m for help): m <enter>
  Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

  Command (m for help):

Cancello le partizioni digitando d:
Cancello le partizioni :

Partition number (1-4):

Selezioni quali partizioni cancellare.

A questo punto creo quelle che ho bisogno digitando n:

 Command action
   e   extended
   p   primary partition (1-4)

E scrivo le operazioni sul disco digitando w

The partition table has been altered!

Se non avete fatto stronzate siamo a buon punto… ve ne accorgete perchè potete ancora digitare sulla shell… se non riuscite a digitare sulla shell mi preoccuperei 🙂

Posso a questo punto creare la mia partizione in ext3 :
sudo mkfs -t ext3 /dev/sdb1

Creare un mount point : (es /disco2)

sudo mkdir /disco2

E modificare il file /etsìc/fstab aggiungendo questa riga per far montare automaticamente il disco all’avvio :

/dev/sdb1    /media/mynewdrive   ext3    defaults     0        2

Potete testare il corrento mount tramite il comando :

sudo mount -a