Il blog è stato spostato! Redirecting...

Stai per essere spostato sul nuovo indirizzo. Se non funziona vai su http://www.lejubila.net e aggiorna il tuo bookmark.

Visualizzazione post con etichetta linux. Mostra tutti i post
Visualizzazione post con etichetta linux. Mostra tutti i post

1.8.08

Escludere "grep" dall'output di "ps"

Molte volte si presenta la necessità di ricavare informazioni su un i processi in esecuzione utilizzando il comando ps in combinazione con grep, per esempio:


#ps ax |grep "ssh -N -R 3333"

7988 ? Ss 0:00 ssh -N -R 3333:localhost:222 host.com -f
8067 pts/1 R+ 0:00 grep ssh -N -R 3333


Si può notare che l'ultima riga dell'output riguarda il processo di grep utilizzato per estrarre le righe contenenti ssh.
Potremmo avere l'esigenza di non dovere fare comparire quest'ultima riga. Qui di seguito elenco alcune soluzioni:

# ps ax |grep "ssh -N -R 3333" | grep -v grep

con il grep -v grep non considera le righe contenenti la stringa grep

# ps ax |grep "[s]sh -N -R 3333"

invece grep [s]sh filtra soltanto le righe al cui interno c'è la parola ssh

# ps u -C ssh

l'opzione -C di ps estrae solo i processi del comando specificato, il problema è che nel nostro caso non possiamo filtrare tutta la stringa ssh -N -R 3333 in quanto ps u -C "ssh -N -R 3333" non sono riusci to a farlo funzionare

# ps u -N -C grep | grep "ssh -N -R 3333"

così invece prima togliamo tutte le righe di processi generati dal comando grep e poi filtriamo quello che interessa


Sicuramente le diverse soluzioni non sono perfette, può andare bene una piuttosto che un'altra a seconda dei casi specifici.

Ci fossero altre soluzione sarebbero ben gradite.

17.7.08

Backup su client remoto con tar e ssh

In passato ho avuto l'esigenza di eseguire il backup di alcuni dati direttamente su un pc remoto senza salvare il file tgz direttamente in locale.
Per fare questo ho utilizzato in combinazione tar e ssh, si presuppone che sul pc remoto (quello dove verrà memorizzato il backup) sia presente la chiave pubblica ssh del pc da backuppare in modo da potervi accedere senza digitare la password.
Il comando è il seguente:

tar -czf - /path/da/backupare/ | ssh utente@host_remoto 'cat > /path/destinazione/backup/backup.tgz'

Ubuntu (Debian) Linux non si spenge su vecchi pc: soluzione

In alcuni pc un pò datati la nostra Ubuntu (ma anche le altre distribuzioni in generale) potrebbe avere dei problemi nello spengimento. Se dopo lo shutdown il pc si blocca visualizzando il messaggio System halted e successivamente dovete premere il pulsante per eseguire lo spengimento effettivo, allora probabilmente potrete risolvere il problema così:

Da terminale digitare:
sudo gedit /etc/modules

ed aggiungere come ultima riga quanto segue:
apm power_off=1










Una volta salvato e riavviato il pc a questo punto molto probabilmente avremo risolto il nostro problema.

( spengimento spengere spegnere spengimento spegnimento poweroff shutdown )

16.7.08

Installazione DD-WRT su La Fonera con client Linux Ubuntu 8.04

Da pochi giorni mi è arrivato il famoso router wifi La Fonera. Ho acquistato l'oggetto perché mio serve per mettere in piedi un repeter in modo da fare espandere la raggiungibilità della mia attuale rete wireless.
Appena arrivato il router ho provveduto ad installare DD-WRT nell'attuale versione v24 stabile seguendo la guida do CroccoBiscotto "Come installare dd-wrt sulla fonera".

Spudoratamente copiati dalla guida sopra menzionata, riepilogo i passi seguiti per effettuare l'installazione. L'unica differenza è l'utilizzo di un pc linux ubuntu 8.04 al posto di windows e dei rispettivi programmi menzionati nella guida originale.

Aprire la porta ssh
  1. Scollegare il cavo di rete che collega la Fonera al router adsl
  2. Accendere la Fonera ed attendere circa 5 minuti
  3. Premere il pulsante di reset posto sulla parte inferiore della Fonera e tenerlo premuto per almeno 30 secondi
  4. Continuando a tenere premuto il tasto di reset staccare l'alimentazione della Fonera
  5. Tenendo sempre premuto il tasto reset ricollegare l'alimentazione
  6. Sempre tenendo reset premuto aspettiamo circa 2-3 minuti finché il led Wlan non si accende e subito si rispenge, a questo punto possiamo lasciare il tasto reset
A questo punto il firmware della Fonera è stato riportato alla versione senza aggiornamenti con cui è possibile collegarsi via ssh.
È importante non ricollegare la Fonera al router adsl altrimenti questa eseguirà nuovamente l'aggiornamento del firmware ad una versione più recente e quindi dovremo rieseguire la procedura finora elencata.

Ora dobbiamo potere collegare la Fonera ad internet senza che questa esegua l'aggiornamento del nuovo firmware, per fare questo sfrutteremo un dns ad ok, quindi eseguire i seguenti passi:
  1. Collegarsi tramite Network Manager alla rete wifi "MyPlace", verrà richiesta la chiave wpa, inserire come chiave il numero di serie che si trova sul retro della Fonera
  2. Aprire il browser e puntare all'indirizzo 192.168.10.1 che è quello della Fonera, in modo che venga presentato l'interfaccia di configurazione, alla richiesta di username e passwor dinserire il valore admin per tutti e due
  3. Entrati nell'interfaccia di configurazione raggiungere la sezione Advanced / Internet connection
  4. Nel campo mode scegliere static ip e impostare un indirizzo ip compatibile con il nostro router adsl. Es. se il nostro router ha come indirizzo 192.168.50.254 impostare come segue:
    • Ip address 192.168.50.253
    • Netmask 255.255.255.0
    • Gateway 192.168.50.254
    • Dns server 88.198.165.155

  5. Confermiamo la configurazione appena modificata (importante è avere inserito il dns 88.198.165.155)
  6. Ricollegare la Fonera al router adsl
  7. Riavviare la Fonera staccando e riattando l'alimentazione

Ora dobbiamo modificare alcuni script sulla Fonera in modo da mantenere sempre la porta ssh aperta:
  1. Ricollegarsi sempre con Network Managere alla rete wifi "MyPlace" della Fonera
  2. Collegarsi come utente root via ssh alla Fonera digitando come password admin
    • ssh -l root 192.168.10.1
  3. Una volta collegati via ssh alla shell della Fonera rinominare il file dropbear
    • mv /etc/init.d/dropbear /etc/init.d/S50dropbear
  4. Con vi editare il file /etc/firewall.user (vi /etc/firewall.user) e scommentare (togliere il simbolo #) dalle righe della sezione contrassegnata con ###Open port to Wan
  5. Salvare ed uscire

Modificare redboot

Ora dobbiamo modificare il boot loader della Fonera per far si che ad ogni riavvio questa si metta in ascolto con indirizzo ip 192.168.1.254 sulla porta 9000 con il protocollo telnet.
Mantenendo la Fonera collagata ad internet eseguire i seguenti passi:
  1. Collegarsi via ssh alla Fonera come indicato precedentemente
  2. Impartire i seguenti comandi
    • cd /tmp
    • wget http://www.croccobiscotto.it/download/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
  3. Una volta terminato il download procedere come segue:
    • mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
  4. Al termine dell'operazione riavviamo la Fonera e stacchiamo il cavo dal router adsl per evitare eventuali aggiornamenti
  5. Una volta riavviata ricolleghiamoci via ssh alla fonera e riattacchiamo il cavo al router adsl e impartire i seguenti comandi
    • cd /tmp
    • wget http://www.croccobiscotto.it/download/out.hex
  6. Al termine del download impartire questo comando
    • mtd -e "RedBoot config" write out.hex "RedBoot config"
Una volta modificato redboot questo al boot si metterà per dieci secondi in ascolto sull'indirizzo 192.168.1.254 porta 9000 protocollo telnet.

Installare DD-WRT

L'installazione di dd-wrt avviene collegandosi via telnet al bootloader della Fonera.
È fondamentale che durante la fase di flashing del firmware non scollegarisi dal telnet e non spengere la Fonera altrimenti renderemo del tutto inutilizzabile quest'ultima
  1. Installare sul proprio pc il server tftp con il seguente comando
    • sudo apt-get install tftpd-hpa
  2. Modificare il file di configurazione del server (vi /etc/default/tftpd-hpa) sostituendo la riga RUN_DAEMON="no" con RUN_DAEMON="yes"
  3. Scarichiamo il firmware dd-wrt v24 nella directory del server tft
    • cd /var/lib/tftpboot
    • wget http://www.dd-wrt.com/dd-wrtv2/downloads/stable/dd-wrt.v24/Atheros%20WiSoc/Fonera/linux.bin
  4. Fare partire il server tftp
    • sudo /etc/init.d/tftpd-hpa start
  5. Scolleghiamo il cavo al router adsl e colleghiamolo alla scheda di rete del nostro pc
  6. Impostiamo la scheda di rete del nostro pc con valori compatibili con il boot loader della Fonera (disattiviamo la voce "roming" sulla configurazione della scheda di rete in modo che Network Manager non la controlli direttamente)
    • Ip address 192.168.1.2
    • Netmask 255.255.255.0
  7. Riavviamo la Fonera e dopo circa 3-4 secondi colleghiamoci via telnet
    • telnet 192.168.1.254 9000
  8. Entrati nella shell di redboot procedere come segue
    • ip_addr -h 192.168.1.2 -l 192.168.1.254/24
    • fis init (premere y alla richiesta di conferma)
    • load -r -v -b 0×80041000 linux.bin
    • fis create linux
      questo comando impiegherà 15-20 minuti prima che venga eseguito, mi raccomando non spengere e non interrompere per nessun motivo altrimenti renderemo la Fonera un oggetto inutilizzabile
  9. Modifichiamo lo script di avvio di redboot per fare caricare dd-wrt come segue
    • fconfig
    • fis load -l linux (confermare con invio)
    • exec (confermare con invio)
    • Confermare quello che compare a video e con y quando richiesto
    • Alla fine digitare reset per riavviare la Fonera
Una volta riavviata la Fonera potremo accedere a DD-WRT, sarà disponibile il segnale della rete wifi dd-wrt, l'interfaccia di configurazione è disponibile all'indirizzo 192.168.1.1 ed entreremo con utente root e password admin.

Ricordo che questa guida è solo un promemoria per me per successive installazioni, per maggiori informazioni, dubbi o approfondimenti è preferibile consultare l'articolo di CroccoBiscotto da cui questa quida è tratta http://www.croccobiscotto.it/?p=1584

15.7.08

crontab

Un veloce schema sul formato del file crontab per l'esecuzione pianificata di comandi personalizzati

* * * * * root /usr/local/bin/comando_da_eseguire.sh
^ ^ ^ ^ ^ ^ ^
| | | | | | |
| | | | | | +---- Comando da eseguire
| | | | | +--------- Utente che esegue il comando
| | | | +----------- Giorno della settimana: 0-7
| | | | (il valore 0 e 7 indicano la domentica)
| | | +------------- Mese: 1-12
| | +--------------- Giorno del mese: 1-31
| +----------------- Ora: 0-23
+------------------- Minuti: 0:59

Se impostiamo il valore * (asterisco) indica che che l'esecuzione deve avvenire sempre (ogni minuto, ora, giorno, ecc... a seconda della colonna indicata)
Altrimenti i valori possono essere inseriti nella seguente forma:
  • Singolo valore: 5 (se nella colonna dei minuti, viene eseguito al quinto minuto di ogni ora)
  • Valori intervallati da virgola: 5,10,15 (Se nella colonna dei minuti, viene eseguito il quinto, il decimo e il quindicesimo minuto)
  • Valori intervallati dal meno: 5-15 (Se nella colonna dei minuti, viene eseguito ogni minuto dal quinto al quindicesimo minuto dell'ora)
  • Valori con step: 1-30/5 (Se nella colonna dei minuti, viene eseguito ogni cinque minuti dal primo al trentesimo minuto dell'ora)
Esempio:

10-50/5 * * * 2,4,6 david /usr/local/bin/comando.sh

Esegue comando.sh ogni 5 minuti a partire dal decimo al 50 minuto dell'ora, soltanto nei giorni della settimana 2, 4 e 6, ovvero martedì, giovedì e sabato

8.7.08

Utilizzare find per eseguire operazioni (eliminare) su i file trovati

Avendo la necessità di eliminare dei file nella directory corrente e nelle sue sotto directory è possibile utilizzare il comando find:


find . -name "*~" -exec rm {} \;


in questo modo vengono eliminati tutti i file che corrispondo al wildchar *~ ovvero tutti quelli che finiscono per ~

Come funziona:
il parametro -exec di find permette di eseguire un comando a piacimento sostituendo {} con il file trovato. La stringa \; è necessaria per indicare la fine del comando fornitor a -exec

7.7.08

Connessione ssh verso un host dietro nat

Supponiamo di aver un host A con un indirizzo pubblico e un host B su una lan dietro Nat, a questo punto vogliamo raggiungere dall'host A l'host B tramite ssh ma non possiamo mettere mano al gateway che Natta B.
Una possibile soluzione è fare aprire a B un tunnel ssh su A tramite il quale poi ci collegheremo

open_tunnel_ssh.sh

#!/bin/bash
PORTAAPERTA=`ps u -N -C grep |grep "ssh -N -R 3333" | tr -s ' ' | cut -d ' ' -f 11 | wc -l`

if [ "$PORTAAPERTA" == "0" ]; then
ssh -N -R 3333:localhost:22 user@host_A.com -f
fi

questo script può essere inserito nel crontab di B in modo che venga eseguito ogni cinque minuti. Se il tunnel è già aperto la connessione ssh non verrà rieseguita altrimenti verra aperta la porta 3333 sull'host A che punterà alla porta 22 (ssh) dell'host B

A questo punto dall'host A possiamo impartire il comando

ssh -p 3333 localhost

e avremo accesso a l'host B

nell'eventualità che il tunnel cada questo verrà ripristinato dopo cinque minuti grazie al crontab.

Per fare funzionare il tutto è fondamentale che la connessione ssh da B verso A funzioni senza dovere impartire la password ma grazie alla chiave pubblica di B precedentemente generata
ssh-keygen -t dsa
e salvata in
~/.ssh/authorized_keys
di A

3.5.08

2.5.08

Impianto di irrigazione con la Fonera

Ecco qui in bel articolo per realizzare una centralina per comandare un impianto di irrigazione con il roiter/ap Fonera

18.12.07

Il Master Boot Record, questo sconosciuto

Qui troviamo un bell'articolo che spiega il funzionamento del MBR, come eseguirne il backup e il restpore, come ripristinare l'MBR originale.

15.12.07

Controllare VINO da linea di comando

Come possiamo abilitare o disabilitare VINO, il vnc server di Gnome, da linea di comando ?
Semplice:


gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true
gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled false

6.11.07

Sostituzione HD e trasferimento dati

Qui possiamo trovare una guida per eseguire il trasferimento dati su un sistema linux inseguito alla sostituzione del hard disk del pc.

Nuovo Hard Disk, Vecchia Kubuntu!

23.10.07

Ubuntu 710 (Gutsy Gibbon) e HP DeskJet 710C

Su questa nuova versione di Ubuntu sembra ci siano problemi a fare funzionare la stampante in oggetto. Dovrebbe essere AppArmor la causa. Io ho risolto con questo comando da shell

sudo aa-complain cupsd


25.9.06

GNU barcode

GNU barcode - LinuxPedia

Ottimo tool per la creazione e stampa di codici a barre sotto Linux

15.8.06

Come copiare file/cartelle dalla macchina locale a una macchina Ubuntu remota (rsync)

  • Supposto che sulla macchina Ubuntu remota sia installato il servizio server SSH
  • Indirizzo dei file/cartelle locali: filelocale.txt
  • Macchina Ubuntu remota: 192.168.0.1
  • Indirizzo di salvataggio sulla macchina Ubuntu remota: /home/nomeutente/

rsync -v -u -a --delete --rsh=ssh --stats filelocale.txt nomeutente@192.168.0.1:/home/nomeutente/


10.8.06

Sidesms un client sms multi operatore, ecco come installarlo su Ubuntu Linux


Sidesms è un programma che permette di inviare sms gratuiti tramite operatori come Tin, Virgilio, Vodafone e Alice, inoltre supporta l'aggiornamento automatico dei plugin, la rubrica, lo storico degli sms inviati e tante altre cose.
sidesms on ubuntu
Per utilizzare questo software dovete essere ovviamente registrati a qualcuno dei suddetti servizi e poi potrete utilizzarlo come se foste collegati al sito dell'operatore mobile o provider.

Oltre a poter inviare sms tramite diversi operatori, sidesms, gestisce la rubrica, alias dei nomi, autocompletamento dei numeri, aggiornamento degli operatori tramite plugin.
Installazione
Gli utenti Ubuntu dovrebbero essere già a posto, mentre quelli Debian dovrebbero controllare di avere già le dipendenze necessarie: python, python-gtk e gtk+ >= 2.6

Scaricate questo deb e installatelo con GDebi (cliccandoci sopra) oppure con:

sudo dpkg -i sidesms-1.0.0beta5_1.0.0beta5-1_i386.deb

E.. lo troverete Sidesms sotto Accessori

9.8.06

Convertire in MP3 le tracce di un CD con Sound-Juicer

Sound Juice fornito con Ubuntu permette di estrarre le tracce audio di un cd comprimendole in formato ogg. Purtroppo il programma così com'é non gestisce il formato mp3.
Con la guida linkata qui sotto scopriamo come aggiungere il supporto a tale formato.

MP3 encoding with Sound-Juicer - Jacob's Weblog

27.7.06

Maneggiare i file PDF

PDFjam è una serie di utilities che permettono da linea di comando di manipolare i file pdf.

pdf90
ruota di 90 gradi un file pdf

pdfjoin
unisce piu pdf insieme creandone uno solo

PDFJam è disponibile per Linux e OS X

l'installazione su Ubuntu 6.06 (i repo universe devono essere attivati) avviene semplicemente con:
sudo apt-get install pdfjam

Se non vogliamo usare la linea di comando possiamo integrare in Nautilus le funzioni di PDFjam:
creiamo in ~/gnome2/.nautilus-scripts il file "Unisci file PDF" con il seguente testo

#!/bin/bash
IFS='
'
PDFARGUMENTS=""
fpaths=`echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sort`
for file in $fpaths
do
if [ -f "$file" ]; then
base=${file%.*}
ext=${file##*.}
if [ "$ext" == "pdf" ]; then
PDFARGUMENTS="$PDFARGUMENTS \"$file\""
pdfdir=`dirname "$file"`
fi
fi
done
if [ -n "$PDFARGUMENTS" ]; then
cd "$pdfdir"
eval /usr/bin/pdfjoin $PDFARGUMENTS
fi

creiamo sempre in
~/.gnome2/nautilus-scripts il file "Ruota file PDF" con il seguente testo

#!/bin/bash
IFS='
'
PDFARGUMENTS=""
fpaths=`echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sort`
for file in $fpaths
do
if [ -f "$file" ]; then
base=${file%.*}
ext=${file##*.}
if [ "$ext" == "pdf" ]; then
PDFARGUMENTS="\"$file\""
pdfdir=`dirname "$file"`
cd "$pdfdir"
eval /usr/bin/pdf90 $PDFARGUMENTS

fi
fi
done


rendiamo eseguibili gli script con

chmod +w "/home/david/.gnome2/nautilus-scripts/Unisci file PDF"
chmod +w "/home/david/.gnome2/nautilus-scripts/Ruota file PDF"


a questo punto possiamo unire o ruotare i pdf semplicemente cliccando con il tasto destro, in modo da fare comparire il menù contestuale, scegliamo la voce "scripts", quì troviamo "Unisici file PDF" e "Ruota file PDF".
Agendo sul primo verranno uniti in uno solo i file selezionati precedentemente, mentre il secondo ruoterà tutti i file selezionati.

PDFjam
http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic/firth/software/pdfjam/

Script vari per Nautilus
http://g-scripts.sourceforge.net/

Script per Konqueror
http://www.kde-apps.org/content/show.php?content=33218