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