Ma Mac Minchia non è il sistema operativo piu’ stabile e innovativo presente oggi sul mercato ?
Ecco cosa è successo dopo aver inserito una chiavetta usb fat32… !!!
Mese: Marzo 2010
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
Comprimere mysqldump al volo
Il risultato del mysqldump è un text file contentente le istruzioni sql usate per il restore di mysql.
Normalmente l’operazione di backup avviene in un secondo momento come ad esempio :
gzip nomefile.sql
Ecco un modo per fare la compressione al volo :
mysqldump --opt (e tutte le vostre opzioni di backup) | gzip > nomefile.sql.gz
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.
Controllare grandezza di una directory sotto Linux
Semplicemente
du -h
Lo switch -h sta per “Human Readeble” e server per vedere la dimensione in Mega bytesinvece che in kilobytes.
Preferisco usare il comando in modo da vedere solo il peso della cartella madre senza andare a vedere il singolo peso di ogni sottocartella :
du -h --max-depth=1
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
Script login bash.bashrc custom
Quando mi trovo a scrivere argomenti di questo tipo, ho sempre una gran voglia di spiegare tutto dall’inizio, e prendere l’argomento molto alla larga, poi mi rendo conto che chi cerca queste informazioni vuole andare sempre al sodo, anzi, girare attorno all’argomento innervosisce… sei nervoso già ? 🙂
Voglio solo fare un piccolo ripasso sui file di configurazione che sono molteplici :
/etc/profile : viene eseguito al login per tutti gli utenti
/etc/bash.bashrc : viene eseguito all’avvio di una shell interrattiva per tutti gli utenti
/home/nomeutente/.profile : viene eseguit per l’utente “nomeutente”
/home/nomeutente/.bash.bashrc : viene eseguito all’avvio di una shell interattiva per l’utente “nomeutente”
Ecco il risultato della mia personalizzazione e cosa parte sui server che gestisco per conto della società per la quale lavoro :
E’ stato ottenuto modificando il file /etc/bash.bashrc
sudo vi /etc/bash.bashrc
#MODIFICHE CONNEXIA clear touch ~/.hushlogin # Colors: #------------------------------------------//// red='\e[0;31m' purple='\e[0;35m' darkgray='\e[1;30m' yellow='\e[1;33m' cyan='\e[0;36m' PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' alias ls='ls --color=auto' alias ll='ls -l' alias la='ls -A' alias l='ls -CF' force_color_prompt=yes echo -e "${yellow}";figlet "Connexia"; echo -e "${red}Hostname :\t\t${cyan}" `hostname` echo "--------------------------------------------------------------------" echo "" echo "Questo server e' di proprieta' di Connexia e sottoposto a monitoring" echo "qualsiasi attivita' illecita sara' riportata agli organi competenti" echo "per problemi scrivere a [email protected]" echo "" echo -ne "${red}Today is:\t\t${cyan}" `date`; echo "" echo -e "${red}Kernel Information: \t${cyan}" `uname -smr` echo -e "${red}Load Average:\t\t${cyan}" `cat /proc/loadavg` echo "" echo -e "${red}Connessi al sistema :" echo -e "${darkgray}";who;echo "" echo ""