Archive for the ‘Linux’ Category

Eliminare ritardo nel login ssh

Published by Alessandro Musacchio on April 26th, 2010 - in Curiosità, Linux

Se avete notato il ritardo nel processo di login tramite ssh e volete eliminarlo basta editare il file di configurazione del server ssh in: /etc/ssh/sshd_config.

Al suo interno dovremmo trovare la riga che inizia per UseDNS che di defaul è impostata a yes e noi la cambiamo in no.

Se la riga non dovesse essere presente allora aggiungiamo noi questa: UseDNS no.

Salviamo il file e riavviamo il server con il comando /etc/init.d/ssh restart così rendiamo le modifiche effettive.

Con questa modifica non facciamo altro che disabilitare l’utilizzo del DNS, il quale non riconoscendo i nomi dei nostri computer non riesce a risolverli e quindi tarda.

Tags: , ,

Guida a cron, crontab

Published by Alessandro Musacchio on March 21st, 2010 - in Bash, Linux

Su linux per schedulare un operazione ci viene in aiuto il demone cron, esso ogni minuto controlla se c’è un poperazione da compiere in quel preciso istante e se c’è la esegue, altrimenti dorme per un altro minuto…

Tutto cio’ che viene scritto sullo standard output, viene inviato via email al proprietario del cron, tipicamente “root”.
Ci sono modi diversi di specificare operazioni ed intervalli.

Configurazioni e modalità

La via più semplice è la creazione di uno script “sh, bash, perl, etc..” che esegue ciò che vogliamo. Tale script andrà inserito in una delle directory seguenti

/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

per poter essere eseguito ad intervalli definiti ( un giorno, un’ora, un mese e una settimana).

E’ possibile anche mantenere tutti gli script in una directory standard (ad esempio “/avvio”) e poi creare un soft link con il comando: “ln -s” in una di quelle sopra elencate.

Per intervalli di tempo diversi da quelli standard, è possibile usare la directory

/etc/cron.d

oppure il file

/etc/crontab

In cron.d possono essere inseriti file con formato particolare (lo stesso di crontab), indicanti operazioni ed intervalli di tempo piccoli anche solo minuto.

Formato:

Possono essere inseriti in ogni file

  • commenti
  • linee vuote
  • assegnazioni di variabili di ambiente
  • comandi cron: i commenti sono linee che iniziano con il simbolo “#” e come le linee vuote vengono ignorati.

Per quanto riguarda le variabili di ambiente, fra le possibili utilizzabili vi sono

  • SHELL, ovvero la shell da usare per l’esecuzione dei comandi
  • PATH, ovvero il path dove cercare i comandi indicati
  • MAILTO, ovvero a chi mandare via email l’output dei comandi. L’email viene inviata anche se questa variabile non viene settata

Una tecnica comunemente usata per evitare l’invio della mail, o evitare la scrittura del risultato dell’operazione sulla mail che viene inviata, e’ la redirezione dell’output sul dispositivo “/dev/null”, esempio:

/prova/test.sh>/dev/null

I comandi cron rappresentano la parte più complessa della configurazione.
Il formato di un comando cron è il seguente:

s1 s2 s3 s4 s5 Proprietario Comando

Analizzando:

Comando è un comando da eseguire (con i relativi parametri ed eventuali redirezioni di output).
Proprietario indica a chi appartiene il comando cron (es. root o altri utenti).

s1, s2, s3, s4, s5 sono stringhe che specificano l’intervallo di esecuzione. Ognuna di queste stringhe può contenere il carattere “*” per indicare tutti i valori possibili.

s1 rappresenta i minuti. I valori permessi vanno da 0 a 59. E’ possibile specificare anche intervalli (piu’ avanti spiegati brevemente).
s2 rappresenta le ore. I valori permessi vanno da 0 a 23. E’ possibile specificare anche intervalli (piu’ avanti spiegati brevemente).
s3 rappresenta i giorni all’interno di un mese. I valori permessi vanno da 1 a 31. E’ possibile specificare anche intervalli (piu’ avanti spiegati brevemente).
s4 rappresenta i mesi. I valori permessi vanno da 1 a 12 (piu’ i nomi in lettere). E’ possibile specificare anche intervalli (piu’ avanti spiegati brevemente).
s5 rappresenta i giorni della settimana. I valori permessi vanno da 0 a 7 (piu’ i nomi in lettere, 0 e 7 rappresentano entrambi la Domenica). E’ possibile specificare anche intervalli (piu’ avanti spiegati brevemente).

NB: Tutte e cinque le stringhe possono rappresentare un numero, tutti i valori oppure un intervallo.
Specificando un numero, si indica un momento preciso. Ad esempio, mettere 2 in s4, significa eseguire a Febbraio (vanno considerate poi anche tutte le altre 4 stringhe).
Se il particolare campo non interessa, cioe’ non e’ utile alla definizione del tempo di attivazione, puo’ essere usato l’asterisco (“*”) per indicare tutti i valori.

Molto spesso, però quello che serve è un certo intervallo e non un momento unico e preciso. Per esempio, potremmo volere eseguire un comando ogni 2 minuti invece che sempre e solo nel secondo minuto. In questo caso, possiamo scrivere le cinque stringhe (o solo una parte di esse) sotto forma di intervallo. Vediamone qualche formato (non tutti potrebbero essere supportati su tutti i sistemi):

  • */n indica ogni “n”. Esempio, “*/2″ indica ogni 2.
  • n1-n2 indica da n1 a n2. Esempio, “5-8″ indica 5,6,7,8.
  • n1-n2/n3 indica ogni n3 all’interno del range n1-n2. Esempio, 3-21/6 indica 3,9,15,21 (ongi 6 nel range 3-21).
  • n1,n2,… indica i numeri specificati. Esempio, 4,7,8 indica tutti i numeri scritti.
  • n1-n2,n3-n4 indica da n1 a n2 e da n3 a n4. Esempio, 3-5,7-9 indica 3,4,5,7,8,9.

Sono possibili anche altre combinazioni.
Qualche esempio:

# Esegue il comando indicato ogni cinque minuti, solo il 15 di ogni mese,
# con proprietario “root”
*/5 * 15 * * root /bin/ls /var/log/ls>/tmp/ls.output

# Manda una mail con il testo indicato ogni giorno alle 8:00 di mattina,
# con proprietario “root”. Se MAILTO vale “root” allora la mail arriva a root.
0 8 * * * root echo “Salve!!!”

#Esegue ogni minuto!!! Il proprietario e’ “test”.
* * * * * test /usr/bin/mousepad

Un utente diverso da root, per usare dei propri comandi cron personalizzati, può agire direttamente sulla directory:

/var/spool/cron/crontabs/

Il file non dovrebbe essere editato direttamente e di solito non può esserlo da parte di un utente diverso da root in quanto viene gestito dal comando /usr/bin/crontab.

L’idea è che venga mantenuto un file master con i cron di un utente.
Il file master può risiedere ovunque nel filesystem.
Con l’installazione, crontab ne copia il contenuto all’interno del file “/var/spool/cron/crontabs/nomeutente”.
Sempre con crontab (“man crontab”) è possibile rimuovere i cron installati.
La politica per cui un utente può usare il comando “crontab” e’ regolata dai file

/etc/cron.allow
/etc/cron.deny

Supponiamo di usare come test l’utente “utente1” con home directory “/home/utente1“. Creiamo il file “/home/utente1/test.cron” con il seguente contenuto:

# Test di utilizzo di crontab

MAILTO=utente1@localhost
* * * * * utente1 echo “ciao utente1″

Questo cron setta la mail per inviare l’output a utente1 e scrive il messaggio “ciao utente1″ ogni minuto.

Per installare il contenuto del file indicato, eseguire nel caso si stia lavorando da utente root:

/usr/bin/crontab -u utente1 /home/utente1/test.cron

oppure, se si sta lavorando come utente “utente1″:

/usr/bin/crontab /home/utente1/test.cron

Si noterà la comparsa del file “/var/spool/cron/crontabs/utente1” con il seguente contenuto (o simile):

# DO NOT EDIT THIS FILE – edit the master and reinstall.
# (/home/user1/test.cron installed on *)
# (Cron version — $Id: crontab.c etc….)
MAILTO=utente1@localhost
* * * * * utente1 echo “ciao utente1″

NB: L’installazione dei cron di un utente, sovrascrive i cron eventualmente già presenti per l’utente stesso.

Per aggiungere comandi cron senza eliminare quelli precedenti, e senza inserirli prima nel master, usare se si sta lavorando come utente root:

/usr/bin/crontab -u utente1 -e

se si sta lavorando come utente “user1″:

/usr/bin/crontab -e

Si aprira’ l’editor “vi” con i comandi gia’ presenti e ci sara’ la possibilita’ di inserirne di nuovi oppure di modificare, oltre che eliminare, quelli esistenti. Tutto cio’ non tocca il file master ma solo il file “/var/spool/cron/crontabs/user1“, evitando la procedura di reinstallazione.
Tipicamente si edita il file master e lo si reinstalla, in modo da evitare di perdere le modifiche inserite con “-e”.
Per eliminare i cron inseriti, usare se si sta lavorando come utente root:

/usr/bin/crontab -u user1 -r

se si sta lavorando come utente “utente1″:

/usr/bin/crontab -r

Articolo originale

Installare XEN server su ubuntu 8.04

Published by Alessandro Musacchio on February 20th, 2010 - in Linux

In questo how-to vedremo come con pochi semplici passi possiamo mettere in piedi il nostro sistema di virtualizzazione XEN su una macchina Ubuntu-Server.

Il primo passo consiste nel scaricare il kernel e i relativi moduli dal repository di Debian:

  1. http://ftp.debian.org/debian/pool/main/l/linux-2.6/linux-image-2.6.18-6-xen-686_2.6.18.dfsg.1-24_i386.deb
  2. http://ftp.debian.org/debian/pool/main/l/linux-2.6/linux-modules-2.6.18-6-xen-686_2.6.18.dfsg.1-24_i386.deb

Ora li installiamo:

  1. sudo dpkg -i linux-image-2.6.18-6-xen-686_2.6.18.dfsg.1-24_i386.deb
  2. sudo dpkg -i linux-modules-2.6.18-6-xen-686_2.6.18.dfsg.1-24_i386.deb

A questo punto installiamo il pacchetto xen-server con il comando:

  1. sudo apt-get install ubuntu-xen-server

Infine controlliamo che grub sia stato aggiornato correttamente verificando che nel file

/boot/grub/menu.lst siano presenti la seguenti righe:

title           Xen 3 Linux, kernel 2.6.18-6-xen-686
root            (hd0,0)
kernel          /xen-3.3.gz
module          /vmlinuz-2.6.18-6-xen-686 root=/dev/sda4 ro console=tty0
module          /initrd.img-2.6.18-6-xen-686

Riavviamo e poi assicuriamoci che tutto sia andato per il meglio verificando che il comando

uname -r ci dia come risultato:  2.6.18-6-xen-686

Finish! :)

Tags: ,

Linux: device occupato, come forzare l’ umount

Published by Alessandro Musacchio on February 9th, 2010 - in Linux

Può capitare che quando andiamo a smontare un’ unità su linux, appaia la scritta in cui si dice che il device è occupato e che non si può smontare..
La causa solitamente è che c’è qualche processo che la sta utilizzando e quindi la soluzione in questi casi è un semplice comandon aggiuntivo in cui scoviamo il processo e lo killiamo, supponiamo di voler smontare /media:

  1. fuser -km /media
  2. umount /media

Ora è smontata!! :D

Tags:

Script bash per eliminare log di JBoss superiori ad un certo numero di giorni

Published by Alessandro Musacchio on February 6th, 2010 - in Bash, Linux

Avviando questo script in un cronjob di cronpad, esso vi cancellerrà tutti i file di log antecedenti di un numero “number_days” di giorni la data di oggi.

#!/bin/bash
#deljbosslog.sh
#Author: Predator1987
#Description: This script delete the log of JBoss antecedents number_days from today.
#Usage: First edit the variables number_days and jboss_logPath 
#	then run script as a cronjob in crontab.
#A special thanks to Nathan Coulter for its date-calc.sh
 
number_days=5 # Number of days that keeps logs 
jboss_logPath=/usr/local/jboss-4.2.3.GA/server/default/log/ # Path of directory log of JBoss
 
daysBetweenTwoDate(){
	MPHR=60     # Minutes per hour.
	HPD=24      # Hours per day.
	diff () {
      	  printf '%s' $(( $(date -u -d"$TARGET" +%s) - $(date -u -d"$CURRENT" +%s)))
	}
	CURRENT=$(date -u -d $1 '+%F')
	TARGET=$(date -u '+%F')
	DAYS=$(( $(diff) / $MPHR / $MPHR / $HPD )) 
	return $DAYS
}
 
if [ ! -d "$jboss_logPath" ]; then
  echo jboss_logPath does not exist as a valid directory : $jboss_logPath
  exit 1
fi
 
for i in $( ls $jboss_logPath | grep server.log. | sed s/server.log.//); 
	do
		daysBetweenTwoDate "$i"
           	if [ $DAYS -gt $number_days ]; then
			rm $jboss_logPath/server.log.$i
		fi
        done
exit 0

Come spegnere server linux dal pulsante

Published by Alessandro Musacchio on November 1st, 2009 - in Linux

Di default solitamente quando si installa una versione server di linux non viene installato l’ ACPI, se abbiamo la necessità di spegnere il nostro server dal pulsante di accensione/spegnimento dobbiamo installare ACPI.

Su sistemi Debian based come Ubuntu il comando è:

sudo apt-get install acpid

Ovviamente installare ACPID non basta, bisogna assicurarsi che ACPI sia abilitato nel bios.

Ora assicuriamoci che nel file /etc/acpi/powerbtn.sh ci sia da qualche parte la riga:

/sbin/shutdown -h now “Power button pressed”

se così non fosse dobbiamo aggiungerla e salvare..

Operazione completata :D

Stampare automaticamente i file messi in una cartella

Published by Alessandro Musacchio on October 17th, 2009 - in Bash, Linux

Ieri per un amico mi sono ritrovato a dover scrivere uno script bash che messi dei file PDF,DOC,TXT si occupa in automatico di inviarli alla stampante predefinita in CUPS.
Sostamzialmente lo script una volta avviato non fa altro che provare ad intervalli di 10 secondi il comando ls, passarlo al grep così da filtrare i tipi di file e stamparli.

#!/bin/bash
 
INTERVAL=10
INTERVALTOREMOVE=2
echo
echo "Automated Printing Started."
echo
while [ 0 ]
do
	for elemento in $(ls $1 | grep ".*.pdf$\|.*.doc$\|.*.txt$")
	do
		lp $1$elemento
		sleep $INTERVALTOREMOVE
		rm $1$elemento
	done
   sleep $INTERVAL
done
exit 0

Per utilizzare lo script basta semplicemente avviarlo e come parametro passargli la cartella da monitorare, es. /home/Predator/

Tags: ,

Come resettare la password di MySQL su Linux

Published by Alessandro Musacchio on September 2nd, 2009 - in Linux

Allora..  Apriamo una shell e diventiamo root con il comando su

su Ubuntu basta aggiungere ai 3 comandi seguenti il comando sudo all’ inizio di ognuno.

I comandi vanno digitati su un unica riga.

  1. Stoppiamo MySQL digitando:   /etc/init.d/mysqld stop
  2. Avviamo MySQL  in maniera particolare digitando:   mysqld_safe –skip-grant-tables &
  3. Digitiamo:   mysql –user=root mysql

Ora siamo entrati nel prompt di MySQL.

Digitiamo i seguenti comandi:

  1. update user set Password=PASSWORD(‘nuova password’) WHERE User=’root’;
  2. flush privileges;
  3. quit

Riavviamo il server digitando:    /etc/init.d/mysqld restart

Perchè scegliere il Software Libero??

Published by Alessandro Musacchio on August 29th, 2009 - in Linux

Richard-Stallman
Il Software Libero non è legato al concetto di gratuità, ma di libertà.

Proviamo a capire insieme perché dovremmo utilizzare il Software Libero in vece del software proprietario, focalizzandoci sui benefici che solo il Software Libero, in quanto tale, può offrire.

Questi che seguono sono pochi esempi, degli spunti su cui ragionare, ma le situazioni presentate non sono inventate… potrebbero anche essere capitate a qualcuno di noi :-) .

Poniamo il caso in cui un nostro amico stia scrivendo la tesi di laurea e si accorga di aver bisogno di uno strumento software per creare un grafico a torta, o per sistemare una foto, o per impaginare l’intera tesi… cosa possiamo fare per aiutarlo?? Oppure, se un collega deve realizzare un piccolo disegno tecnico da allegare ad un documento, cosa possiamo suggerirgli?? La risposta ad entrambi i quesiti è piuttosto semplice: gli facciamo una copia del programma che utilizziamo noi, oppure gli suggeriamo di scaricarselo da Internet e di installarlo. Se i programmi in questione, però, sono dei software proprietari, nel primo caso ci trasformiamo in pirati informatici, e per questo perseguibili per legge; nel secondo, invece, il nostro amico (o il collega) scaricherà illegalmente il software oppure molto probabilmente dovrà accontentarsi del software in versione dimostrativa, con funzionalità o tempo di utilizzo limitati.

Il Software Libero è diverso: è nostro, ed è per noi! e infatti, ci permette di venire incontro all’amico e al collega copiando o, se preferiamo, installando sul suo computer tutti i programmi che desideriamo, con l’impagabile vantaggio che questo atto di gentilezza non ci trasformerà in pirati informatici. Non è già questo un ottimo motivo per sceglierlo ?

Questo non era che un esempio, anche piuttosto “banale” se vogliamo, ma il Software Libero ci viene incontro in molte, anzi, moltissime altre occasioni.

Studi autorevoli dimostrano che un computer, con GNU/Linux come sistema operativo, ha un’aspettativa di vita doppia rispetto a soluzioni proprietarie, (indagine IBM; introduzione in italiano). Questo lo rende appetibile per chiunque e, in primis, a scuole, associazioni di volontariato, bacheche informative nei musei… Tutte realtà, possiamo dire, a basso budget.

Ma ciò che io considero il fattore più importante, è il fatto di non essere vincolati ad un fornitore: questa è il beneficio di cui i professionisti e le Pubbliche Amministrazioni, più di altre realtà, possono avvantaggiarsi.

Dipingerò degli scenari realistici per spiegare cosa intendo dire.
Ammettiamo che siate dei commercialisti e che utilizziate il software SuperCalc della ditta SoftPower.

  • scenario 1: l’azienda SoftPower chiude per problemi economici

  • scenario 2: l’azienda SoftPower decide che quel programma non è più economicamente vantaggioso per continuare a supportarlo e, quindi, non rilascerà più aggiornamenti, né di funzionalità ne di adeguamento normativo

  • scenario 3: dopo anni di utilizzo l’azienda SoftPower decide di raddoppiare il prezzo dell’assistenza

  • scenario 4: il software SuperCalc, che a voi va benissimo, non è più concorrenziale per l’azienda che lo produce, così vi suggerisce di acquistare l’aggiornamento alla versione successiva, anche perché tra un anno, smetteranno di fare assistenza sul vecchio prodotto che voi ancora utilizzate

  • scenario 5: da un vostro collega avete visto un programma molto migliore di SuperCalc; si chiama FatturePro, e vorreste acquistarlo anche voi, ma non avete idea di come passare i dati da un software all’altro (e di certo, la SoftPower non ha grande interesse a scrivere, appositamente per voi, un sistema di esportazione dei dati)

Ognuno degli scenari dipinti vi obbligherà ad accettare incondizionatamente ciò che il fornitore vi propone; volendovi ribellare ad una tale imposizione, l’alternativa è quella di cambiare software, e quindi fornitore.

Ora pensate ad uno di quegli scenari appena descritti, e immaginate che il software in questione non sia SuperCalc, bensì AnagrafePiù, il programma dell’anagrafe cittadina del vostro Comune di residenza. Quanti disagi si riverseranno sul modo di lavorare dei dipendenti pubblici dell’Ufficio Anagrafe ? e con quali costi sui noi cittadini ? Quanti ritardi o problemi nel servizio pubblico ? Chi vi garantisce che tra 5 anni l’azienda che produce AnagrafePiù sia ancora sul mercato, pronta ad assistervi in ogni problema ? …o che peggio, venga venduta ad un’altra più “esosa” ?

Se AnagrafePiù e SuperCalc fossero stati S.L., sicuramente gli scenari presentati spaventerebbero di meno: il Software Libero infatti non ci vincola all’azienda che ha creato il software, e questo risolve molti dei problemi prima elencati. Il vincolo con l’azienda che produce il software proprietario è dato dal fatto che, nell’acquistare un software in realtà non state acquistando il software… sorpresi??

Non dovreste esserlo; infatti, ogni volta che ne installate uno, tutti diamo il nostro l’OK ai termini della licenza d’uso. Esatto: voi avete solo il diritto di usare il software nei modi e nei termini stabiliti dall’azienda produttrice e nessun altro. Questo già di per se suona un po’ strano, non trovate? Se acquistate un quotidiano voi potere ritagliarlo, spaginarlo, gettarlo, prestarlo, conservarlo, farne 10 copie e tenerle da parte. Stesso discorso vale per l’auto: se dopo l’acquisto volete riverniciarla, cambiare la marmitta nei termini di legge o farvi gli interni leopardati, nessuno può contestarvi nulla. Con il software proprietario non è così!!

Dopo averne acquistato la licenza d’uso, non potete modificarlo, espanderlo, tradurlo, migliorarlo neanche di una virgola; non potete neanche prestarlo, copiarlo né tanto meno usarlo su 3 computer di vostra proprietà (a meno che non previsto nella licenza d’uso… ma non vi aspettatevi di trovarlo frequentemente :-) )

Non credo che quanto avete appena letto vi abbia sconvolto più di tanto, perché è ciò a cui le (economicamente) grandi software house ormai ci hanno abituato; non solo, ma pensiamo che questo sia l’unico modo di utilizzare i programmi. Sbagliato!

Un modo diverso c’è, e il Software Libero è la risposta. Ed ecco il valore aggiunto: per tornare all’esempio di SuperCalc, se l’azienda che ce lo ha venduto decide di raddoppiare i prezzi di assistenza, posso chiedere ad un’altra ditta se può garantirmi un’assistenza analoga. Se desidero passare ad un altro software, posso chiedere ad un informatico di studiare e realizzare una funzione di esportazione dei dati. Non solo. Ma se ho bisogno di una funzionalità che attualmente non è presente in tale software, posso chiedere all’azienda di realizzarla per me e, nel caso in cui tale azienda non lo ritenga vantaggioso, posso rivolgermi ad un’altra affinché la realizzi per me. Comodo vero??

Non è un’utopia, moltissime grandi realtà aziendali e liberi professionisti stanno passando al Software Libero, e ci stanno passando perché conviene molto, moltissimo, e non solo dal punto di vista economico. Conviene perché al centro del Software Libero non c’è l’azienda che lo produce e lo commercializza, ma c’è l’utente.

La svilente licenza d’uso rimarrà solo il ricordo di un modo immaturo di fare business, e verrà sostituita dalle libertà di utilizzo per qualunque scopo, di studio, di copia e di modifica: queste sono le 4 libertà, le libertà che ci rendono parte e partecipi della diffusione dell’informatica e danno a noi vantaggi e privilegi ineguagliabili.

Quindi, software libero, perché ? Semplice: il software libero vale di più!! Molto di più!!

Leggi l’ articolo originale qui.

Pagina sul Software Libero su Wikipedia.

Hacking e Modding della fonera 2100

Published by Alessandro Musacchio on August 29th, 2009 - in Linux, Senza categoria

Quando mi è arrivata la Fonera a casa, non ho resistito a non hackerare il firmware, in quanto l’ originale Fon lo ritenevo troppo invasivo, mi controllavano tutte le connessioni, loro acquisivano tutti i miei dati..

Ho deciso fi da subito di installargli il firmware DD-WRT ed ovviamente di lasciare la connessione senza alcuna protezione per non venire meno alla promessa fatta a Fon.

Ora a distanza di qualche annetto voglio farvi vedere in che condizioni riversa la mia amata fonera. :D

Per quanto riguarda l’ intallazione di del firmware ho seguito questo post.

dd-wrt

Avendola briccata ho dovuto costruire il circuito di interfacciamento seguendo questo schema.

cavo seriale

max232

Poi dato che lavorava tantissimo ho deciso di cambiargli il dissipatore con uno più grande, ma con l’ arrivo dell’ estate e dei continui download ho pensato bene ad aggiungergli una bella ventolina.

fonera moddata

Ora sta bella fresca fresca :D :D

fon ventola

© 2010-2012 AlessandroMusacchio.it

Create your own free site