lunedì 25 novembre 2013

Filtro per contare le ricorrenze di un campo in un file di testo

$1 si riferisce alla prima colonna del file di testo. Utilizzare $2, $3, $4,.... per le colonne seguenti.
awk '{print $1}' |sort |uniq -c |sort -r -n

lunedì 4 novembre 2013

network-manager: non attivare default route su link OPENVPN

In NetworkManager: 
VPN Connections ->  (selezionare la connessione VPN da modificare) -> Edit -> Routes -> Selezionare la casella "Use this connection only for resources on its network"

giovedì 31 ottobre 2013

fail2ban: proteggere saslauthd

Debian 6.0.8
fail2ban 0.8.4-3+squeeze2
Debian 5.0.10
fail2ban 0.8.3-2sid1

failregex = (?i): warning: [-._\w]+\[\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+]*)?

Debian 5.0.10
fail2ban 0.8.3-2sid1

failregex = : warning: [-._\w]+\[\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed



mercoledì 30 ottobre 2013

postfix: attivare debug connessione con un mail server

Se vogliamo verificare come mai il mail server del dominio dominio.ext rifiuta le email dal nostro server possiamo attivare il debug specifico per quel dominio:
postconf -e debug_peer_list=dominio.ext
postconf -e debug_peer_level=3
postfix reload

Backuppc: cambiare la password dell'utente sull'interfaccia grafica

htpasswd /etc/backuppc/htpasswd $NOME_UTENTE

Backuppc: escludere directory su copia rsync

$Conf{RsyncShareName} = [
  '/home/user',
  '/etc',
  '/usr/local/bin'
];

$Conf{BackupFilesExclude} = {
  '/home/user' => [
    '/NOBACKUP/**',
    '/Music/**',
    '/Videos/**',
    '/.aMule/**'
  ]
};

mercoledì 23 ottobre 2013

PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings.


Questo errore nei log di Apache:
FastCGI: server "/var/www/clients/client3/web4/cgi-bin/php5-fcgi-*-80-example.com" stderr: PHP message: PHP Warning:  strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
e' caratteristico di PHP 5.3 (pare sia sparito con la release 5.4).
Per risolverlo bisogna aggiungere al php.ini la riga:
date.timezone = "Europe/Rome"
personalizzando se occorre la timezone tra doppi apici

backuppc: ping timeout

La copia di un computer remoto non parte perche' il sistema trova la risposta del ping troppo lenta?
Se sapete cosa state facendo potete aumentare il limite di questo controllo aumentando la configurazione (ad esempio) da:
$Conf{PingMaxMsec} = '10'
a
$Conf{PingMaxMsec} = '500'
Il numero e' espresso in millisecondi

SSH: usare porte diverse dalla 22


Nessun problema utilizzando -p per ssh e -P per scp ma se vogliamo dimenticarci di usarli possiamo editare il file:
~/.ssh/config
e inserire qualcosa del genere
Host my.first.computer
         Port 2222
Host my.second.computer      
         Port 3333
a questo punto possiamo tranquillamente utilizzare il comando:
ssh utente@my.first.computer
o
scp foo utente@my.second.computer:bar
senza bisogno di specificare la porta.

sabato 19 ottobre 2013

Linux: Problemi di connessione con Realtek r8169 / r8111

Le schede indicate nel titolo vengono spesso riconosciute da Linux come delle r8169 e quindi il sistema provvede a caricare il modulo r8169 che potrebbe darvi qualche problema.

Su una Ubuntu 12.04LTS il driver r8168  e' già compilato all'interno del kernel di default. In questo caso sara' sufficiente bloccare il caricamento del modulo sbagliato inserendo la riga:
blacklist r8169 
nel file:
/etc/modprobe.d/blacklist-network.conf

Per altri sistemi che non avessero il driver r8168 precompilato nel kernel consigliamo di seguire la procedura seguente:
cd /usr/src
wget http://djlab.com/stuff/r8168-8.032.00.tar.bz2
tar jxvf r8168-8.032.00.tar.bz2
cd r8168-8.032.00
make clean modules
make install
depmod -a
echo "blacklist r8169" >> /etc/modprobe.d/blacklist-network.conf
update-initramfs -u
Per poter compilare automaticamente il modulo ad ogni aggiornamento di kernel, e' necessario ricorrere al sistema dkms.
Verifichiamo di avere installato dkms:
apt-get install dkms gcc
Creare il file:
dkms.conf
con il seguente comando:
cat < /usr/src/r8168-8.032.00/dkms.conf
PACKAGE_NAME=r8168
PACKAGE_VERSION=8.032.00
MAKE[0]="'make'"
BUILT_MODULE_NAME[0]=r8168
BUILT_MODULE_LOCATION[0]="src/"
DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
AUTOINSTALL="YES"
EOF
ed eseguire i comandi seguenti:
dkms add -m r8168 -v 8.032.00
dkms build -m r8168 -v 8.032.00
dkms install -m r8168 -v 8.032.00
Se non avete ricevuto errori, il vostro modulo e' stato installato correttamente e sara' ricompilato in automatico dal sistema ad ogni aggiornamento di kernel.

Se per caso, durante la compilazione del modulo, doveste avere errori del tipo:
root/r8168-8.035.00/src/r8168_n.c:14545: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rtl8168_init_board’
Sara' necessario applicare la patch seguente:
diff -ruB r8168-8.035.00/src/r8168_n.c r8168-8.035.00/src/r8168_n.c
--- r8168-8.035.00/src/r8168_n.c        2012-12-19 05:38:56.000000000 -0500
+++ r8168-8.035.00/src/r8168_n.c        2013-03-17 12:48:58.693002848 -0400
@@ -14541,7 +14541,7 @@
        spin_unlock_irqrestore(&tp->phy_lock, flags);
 }

-static int __devinit
+static int
 rtl8168_init_board(struct pci_dev *pdev,
                   struct net_device **dev_out,
                   void __iomem **ioaddr_out)
@@ -14711,7 +14711,7 @@
        goto out;
 }

-static void __devinit
+static void
 rtl8168_init_sequence(struct rtl8168_private *tp)
 {
        void __iomem *ioaddr = tp->mmio_addr;
@@ -14964,7 +14964,7 @@
 };
 #endif

-static int __devinit
+static int
 rtl8168_init_one(struct pci_dev *pdev,
                 const struct pci_device_id *ent)
 {
@@ -15128,7 +15128,7 @@
        return 0;
 }

-static void __devexit
+static void
 rtl8168_remove_one(struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
@@ -17649,7 +17649,7 @@
        .name           = MODULENAME,
        .id_table       = rtl8168_pci_tbl,
        .probe          = rtl8168_init_one,
-       .remove         = __devexit_p(rtl8168_remove_one),
+       .remove         = rtl8168_remove_one,
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,11)
        .shutdown       = rtl8168_shutdown,
 #endif

e ripetere la compilazione. Tutto qua :)



venerdì 18 ottobre 2013

ImageMagick: modificare la qualita' di una o piu' immagini JPG

L'esempio qui sotto riduce al 60% la qualita' delle immagini JPG presenti nella directory corrente:
mogrify -quality 60 *.jpg


giovedì 17 ottobre 2013

OpenOffice Calc: cercare spazi

Nella ricerca abilitare le opzioni avanzate e checkare le regular expression.

Cercare [:space:]


mercoledì 16 ottobre 2013

Linux: quanti IP stanno visualizzando il mio sito?

Per visualizzare gli IP address di chi sta guardando i siti del nostro server possiamo lanciare il seguente comando:
netstat -napt | grep :80\  | awk '{print $5}' | cut -d: -f1 | sort -u
Invece per contare i diversi IP address possiamo usare:
netstat -napt | grep :80\  | awk '{print $5}' | cut -d: -f1 | sort -u | wc -l

martedì 15 ottobre 2013

Linux: che batteria ho sul mio notebook?

La risposta ve la da' il comando:
upower -i /org/freedesktop/UPower/devices/battery_BAT0
che da' un output del genere:
native-path:          /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/PNP0C0A:00/power_supply/BAT0  vendor:               ASUSTEK  model:                F82--22  power supply:         yes  updated:              Tue Oct 15 15:34:35 2013 (3224 seconds ago) 
has history:          yes
 
has statistics:       yes
 
battery
present:      yes   
rechargeable:        yes
   
state:               fully-charged
   
energy:              16.841 Wh
  
energy-empty:        0 Wh
   
energy-full:         16.841 Wh
  
energy-full-design:  46.2 Wh
   
energy-rate:         2.079 W
 
voltage:             12.461 V
  
percentage:          100%
  
capacity:            36.4524%
   
technology:          lithium-ion

mercoledì 2 ottobre 2013

ImageMagick: generare file .csv con informazioni su immagini di un folder

identify *jpg| sed 's/[ x]/,/g' > listabu_`basename $PWD`.csv

martedì 13 agosto 2013

Dovecot IMAP: upgrade da 1.x a 2.x su Debian Lenny

Aggiungere al file /etc/apt/sources.list la riga
deb http://xi.rename-it.nl/debian/ oldstable-auto/dovecot-2.0 main
e lanciare il comando:
apt-get update
seguito dal comando:
apt-get install dovecot-imapd

mercoledì 31 luglio 2013

DNS: error (FORMERR) resolving '$SOMETHING': xx.xx.xx.xx#53

Nel log /var/log/daemon.log apparivano diverse segnalazioni simili a questa:
Jul 31 09:01:27 server named[29883]: error (FORMERR) resolving '$SOMETHING': xx.xx.xx.xx#53
Qualche DNS risponde in maniera errata ad una interrogazione.
Il log puo' essere ignorato ed eventualmente disabilitato inserendo quanto segue nel file named.conf.local:
logging {         category lame-servers { null; };     }; 

mercoledì 24 luglio 2013

Network Manager: Errore Failed to add new connection: (32) Insufficient privileges.

Creare il file:
/etc/polkit-1/localauthority/50-local.d/org.freedesktop.NetworkManager.pkla
e inserirvi il testo seguente:
[nm-applet]Identity=unix-group:netdevAction=org.freedesktop.NetworkManager.*ResultAny=yesResultInactive=noResultActive=yes

giovedì 18 luglio 2013

RouterOS: rimuovere le regole del firewall

Per rimuovere tutte le regole di una chain:
/ip firewall filter remove [/ip firewall filter find chain=input]
Per rimuovere TUTTE le regole del firewall:
/ip firewall filter remove [/ip firewall filter find]


mercoledì 3 luglio 2013

backuppc: "Tar exited with error 512 ()" due to read permission failures

Questo errore si verifica in una nuova installazione di backuppc tentando di backuppare la /etc del server locale.
Il problema e' che l'utente con cui viene eseguito il backup (per default e' l'utente backuppc) non ha i permessi per leggere alcuni file nelle cartelle da backuppare.

Bisogna inserire nel file
/etc/sudoers
la linea seguente:
backuppc ALL = NOPASSWD: /bin/tar
e modificare il file
/etc/backuppc/local.pl
trasformando le linee:
$Conf{TarClientCmd} = '/usr/bin/env LC_ALL=C $tarPath -c -v -f - -C $shareName'                        . ' --totals';
in:
$Conf{TarClientCmd} = '/usr/bin/sudo $tarPath -c -v -f - -C $shareName'                        . ' --totals';

giovedì 27 giugno 2013

DNS: generazione chiave rndc per aggiornamenti dinamici

Lanciare il comando:
rndc-confgen -a -c /etc/bind/rndc.key
se il comando precedente si dovesse bloccare (normalmente termina quasi istantaneamente) lanciate il comando seguente:
rndc-confgen -r /dev/urandom -a  -c /etc/bind/rndc.key

Disabilitare IPv6 su Debian 7 Wheezy

Lanciare il comando seguente da linea di comando:
echo net.ipv6.conf.all.disable_ipv6=1 > /etc/sysctl.d/disableipv6.conf
Completare la procedura riavviando il computer.

Bind9 Error : named[....]: network unreachable resolving ...

named[8660]: network unreachable resolving 'zd.somedomain.org/AAAA/IN': 2001:500:f::1#53
Questo errore ripetuto nei log di sistema e' dovuto al fatto che per default, bind utilizza anche IPv6.
Per disabilitare questa caratteristica bisogna editare il file
/etc/default/bind9
e aggiungere
-4
alle opzioni, ottenendo:
OPTIONS="-4 -u named"

Completare la procedura facendo ripartire il servizio bind.

BIND+DHCP: gli aggiornamenti dinamici del DNS non funzionano

Se gli aggiornamenti dinamici del DNS non funzionano, controllate se nel file /var/log/daemon.log trovate qualcosa di simile a quanto segue:
Jun 27 22:27:26 milhouse named[3278]: /etc/bind/zones/db.simpson.jnl: open: permission denied
Jun 27 22:27:26 milhouse named[3278]: client 192.168.2.130#40535: updating zone 'corimtec.mylan/IN': error: journal open failed: unexpected error
Jun 27 22:27:26 milhouse dhcpd: Forward map from bart.simpson.local. to 192.168.2.162 FAILED: SERVFAIL
Per risolvere questo problema occorre verificare i permessi del file .jnl (nell'esempio /etc/bind/zones/db.simpson.jnl).
Nel nostro caso l'utente bind non aveva accesso in scrittura sul file .jnl

-rw-r--r-- 1 root bind 5951774 Jun 27 22:42 /etc/bind/zones/db.simpson.jnl

Basta assegnare l'apposito permesso con il comando

chmod 664 /etc/bind/zones/db.simpson.jnl

Ottenendo quindi:

-rw-rw-r-- 1 root bind 5951774 Jun 27 22:42 /etc/bind/zones/db.simpson.jnl



mercoledì 26 giugno 2013

°boot error° tentando il boot da chiavetta USB

Prima di creare la chiavetta (ad esempio con unetbootin) occorre prepararla con il comando:

mkdosfs -v -I /dev/sdb

ATTENZIONE!!! QUESTO COMANDO DISTRUGGE TUTTI I CONTENUTI PRESENTI SULLA CHIAVETTA.

Sostituire a sdb il device relativo alla vostra chiavetta.

giovedì 13 giugno 2013

DNS: too many timeouts resolving '$OUTER_DOMAIN/A' (in '$URL'?): reducing the advertised EDNS UDP packet size to 512 octets


Se ricevete nei log tonnellate di messaggi simile al seguente:

Jun 13 12:10:31 $SERVER_NAME named[2604]: too many timeouts resolving '$OUTER_DOMAIN/A' (in '$URL'?): reducing the advertised EDNS UDP packet size to 512 octets

potete disabilitare il logging di EDNS inserendo nel vostro named.conf:

logging {
            category edns-disabled { null; };
        };

mercoledì 12 giugno 2013

Tre metodi per invecchiare l'ottone...

Se volete che un oggetto del genere:

diventi cosi':

potete usare uno dei 3 metodi seguenti (declino ogni responsabilita', sono metodi trovati in rete e non ancora testati personalmente da noi):

METODO 1

Prendere un recipiente
Versarci dentro dell'aceto fino a ricoprirne il fondo
Sospendere gli oggetti da invecchiare sopra all'aceto (non dovete immergerli)
Coprire il recipiente con della pellicola trasparente
Aspettare con pazienza che gli oggetti si scuriscano (il tempo necessario e' variabile)
Quando la patina sara' quella desiderata, asciugare gli oggetti e metterli su una fonte elettrica di calore finche' non iniziano a scurire.
Prendere gli oggetti con una pinza e temperarli in olio minerale.
Usare una paglietta di ferro per pulire le parti normalmente piu' usurate.

METODO 2

Esporre gli oggetti ai vapori di un recipiente riempito di ammoniaca (il tutto deve essere sigillato in una busta di plastica per non far dissolvere i vapori)

METODO 3

Utilizzare del cloruro ferrico (l'acido usato per produrre i circuiti stampati).
Usare tutte le precauzioni necessarie quando si maneggiano acidi.

venerdì 31 maggio 2013

Gnome fallback session: gestire opzioni orologio su pannello superiore


Installato Gnome Fallback per eliminare l'odiato Unity restava il problema della data vicino all'orologio nel pannello superiore.Impossibile attivarla e modificare altre impostazioni di data e ora.

Un rapido trucchetto e' lanciare i seguenti comandi:


gsettings set com.canonical.indicator.datetime show-clock true
gsettings set com.canonical.indicator.datetime show-calendar true
gsettings set com.canonical.indicator.datetime show-date true
gsettings set com.canonical.indicator.datetime show-day true
gsettings set com.canonical.indicator.datetime show-events false
gsettings set com.canonical.indicator.datetime show-locations true
gsettings set com.canonical.indicator.datetime show-seconds false

BackupPC: visualizzare l'anno nella data dei backup


Per default (almeno per le vcchie versioni di backuppc) le date dei backup venivano mostrate nel formato MMDD o DDMM creando non poca confusione con i backup degli anni precedenti.

Per ovviare a questo problema basta sostituire il settaggio:

 $Conf{CgiDateFormatMMDD} = '0';
con 
 $Conf{CgiDateFormatMMDD} = '2';

lunedì 20 maggio 2013

lunedì 25 marzo 2013

Generare piccoli PDF da grandi immagini.

Abbiamo gia' visto in un articolo precedente come generare PDF a partire da file immagine mediante il comando convert del pacchetto ImageMagick.

Purtroppo a volte il PDF risulta essere un po' ingombrante, un po' troppo pesante per essere archiviato o spedito via mail.

Possiamo generare un pdf piu' leggero utilizzando il parametro -quality:

convert -quality 25 image.jpg document.pdf

martedì 5 febbraio 2013

Davmail: configurazione

Il file di configurazione di davmail e' ~/.davmail.properties

L'unica voce da configurare (a meno che non abbiate esigenze particolari) e' davmail.url con il seguente formato:

davmail.url=https\://NOME_SERVER/OWA/

Killare il processo davmail e rilanciarlo

Ubuntu: collegare evolution a server exchange

Utilizzare Davmail


Se alla partenza del programma avete un errore sulle librerie SWT eseguite il comando seguente:

sudo apt-get install libswt-cairo-gtk-3-jni

Eventualmente cercare la versione della libreria relativa al sistema in uso.