Archive for the ‘Server’ Category

Script per rimuovere i file obsoleti

Con questo script è possibile cancellare tutti i file nelle sottocartelle di /mnt/server che siano più vecchi di un mese rispetto ad oggi.

#!/bin/bash
IFS='

'
rm /tmp/lista
rm /tmp/mark
for X in /mnt/server ; do
        if [[ ! $X =~ /mnt/server/temp ]] ; then
                touch -t $(date +%y%m%d --date='-1 month')0001 /tmp/mark
                find /mnt/server/ ! -newer /tmp/mark -type f > /tmp/lista
                for Y in $(cat /tmp/lista) ; do
                        rm $Y
                done
        fi
done

Con il ciclo for esamina tutte le sottocartelle di /mnt/server su cui agire. Quindi con il controllo if esamina che non siano processate tutte le cartelle che cominciano con “temp”, in quanto non devono interessare il nostro processo. Con touch crea un file di demarcazione temporale, e con find crea una lista di raffronto in base al file creato con touch. Infine rm rimuove i file della lista.

Errore moduli Spamassassin

Se riavviando Spamassassin con:

/etc/init.d/spamassassin restart

restituisce un errore tipo:

Can't locate Tie/Cache.pm

significa che manca il modulo Tie::Cache in Spamassassin, per installarlo usare il comando:

perl -MCPAN -e shell

e all’interno installarlo con:

install DBD::mysql Tie::Cache

e così facendo per tutti i moduli mancanti.

Inviare un sms schedulato

Per mandare un SMS, tramite l’invio via internet ad un cellulare (in questo caso Tim) un programma da usare può essere MoioSMS, sebbene non più sviluppato: Fine di Moiosms

Scaricare l’ultima versione del file presente nella mailing list:

Moiosms

quindi scaricarlo nella propria home, in questo caso con

wget http://www.moioli.net/files/moiosms_2.13b3-1_all.deb

A questo punto installare tutte le dipendenze con

aptitude install python python-pycurl python-wxtools ocrad gocr imagemagick

ed infine installare MoioSMS con

dpkg -i moiosms_2.13b3-1_all.deb

A questo punto MoioSMS è pronto per mandare SMS, ma per configurarlo correttamente riporto qui il file sms4config.ini che si trova in home

[encryption]
enabled = false

[loginTim]
username = numero registrato nel sito Tim
password = relativa password

Se volgiamo mandare un file proveniente da un server, uno script di invio potrebbe essere il seguente:

#!/bin/bash
cont=0
while [ $cont -lt 3 ]; do
        ftp 192.168.1.2
        if [ -a sms.txt ]
                then
                        sms numero_destinatario "$(cat sms.txt)" Tim
                        rm sms.txt
                        count=2
                else
                        sleep 15m
        fi
        let cont=cont+1
done

in questo caso lo script preleva il file via ftp dal server, se il file non è presente sul server attende 15 minuti, in caso contrario lo copia e lo invia al destinatario.
Per prelevare il file via ftp in modo automatico, bisogna creare il file .netrc e dagli i relatavi premessi con

nano .netrc
chmod 600 .netrc

Il file .netrc deve contenere la macro di istruzioni da passare al server, ad esempio:

machine 192.168.1.2
login utente
password password
macdef init
prompt
cd /home
cd sms
get sms.txt
quit

Infine non rimane che schedulare lo script per l’invio automatico all’ora voluta.

Roundcube webmail

Un ottimo client web di posta è Roundcube Webmail. Per installarlo prima bisogna scaricarlo dal sito: Roundcube

una volta ottenuto il file, bisogna decomprimerlo con:

tar xvzf roundcubemail-0.1-rc1.1.tar.gz

e copiare la cartella estratta in /var/www/
All’interno della cartella roundcube appena copiata risiede la sottocartella config, al suo interno copiare i file di esempio con:

cp db.inc.php.dist db.inc.php
cp main.inc.php.dist main.inc.php

editare quindi il file main.inc.php e cambiare i seguenti parametri:

$rcmail_config['default_host'] = 'localhost';
$rcmail_config['mail_domain'] = 'azienda.it';
$rcmail_config['smtp_server'] = 'mail.cs.interbusiness.it';
$rcmail_config['locale_string'] = 'it';
$rcmail_config['product_name'] = 'Azienda';
$rcmail_config['junk_mbox'] = 'Spam';
$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Spam', 'Trash');

$rcmail_config['ldap_public']['Verisign'] = array(
'name'          => 'LDAP',
'hosts'         => array('localhost'),
'port'          => 389,
'base_dn'       => 'dc=azienda,dc=it',
'bind_dn'       => '',
'bind_pass'     => '',
'search_fields' => array('mail', 'cn'),  // fields to search in
'name_field'    => 'cn',    // this field represents the contact's name
'email_field'   => 'mail',  // this field represents the contact's e-mail
'scope'         => 'sub',   // search mode: sub|base|list
'filter'        => '',      // will be &'d with search field ex: (status=act)
'fuzzy_search'  => true);   // server allows wildcard search

A questo punto creare il database roundcubemail all’interno del proprio mysql con il comando:

mysqladmin -u root -p create roundcubemail

E popolare il database con il comando:

mysql -u root -p roundcubemail < SQL/mysql.initial.sql

A questo punto, entrare in mysql con:

mysql -u root -p

e garantire l'accesso al database da parte dell'utente roundcube con:

GRANT SELECT, INSERT, UPDATE, DELETE ON roundcubemail .* TO roundcube@localhost IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;

Infine editare il file /etc/apache2/sites-enabled/000-default e come sito di default usare:

RedirectMatch ^/$ /roundcubemail-0.1-rc1/

e riavviare apache e mysql con:

/etc/init.d/apache2 restart
/etc/init.d/mysql restart

Fonte: Massimo Caselli

Ps: per una corretta manutenzione dei database mysql usare phpmyadmin

Antispam OCR

Spamassassin combatte egregiamente lo spam, a patto che le mail contengano testo. Ma purtroppo in molti casi i messaggi vengono inviati sotto forma di immagini, e come si può presupporre questa modalità non può essere vagliata in alcun modo da un programma testuale. Una soluzione a questo è un plugin per Spamassassin che decifri un immagine in testo, quindi un OCR.
Il programma in questione si chiama FuzzyOCR e si trova al seguente indirizzo: Fuzzyocr

Scaricare il file tar.gz e decomprimerlo con:

tar xzf fuzzyocr-3.5.1-devel.tar.gz

Quindi copiare il contenuto della cartella dentro a /etc/mail/spamassassin
Ora perché funzioni bisogna installare i seguenti pacchetti:

aptitude install gifsicle netpbm ocrad libmldbm-sync-perl libstring-approx-perl gocr imagemagick libgocr0 libungif-bin

A questo punto è meglio fare una prova per vedere se qualcosa non funziona:

su -c "spamassassin --debug FuzzyOcr < /etc/mail/spamassassin/samples/ocr-animated.eml > /dev/null" amavis

Se non viene trovato il file Timeout.pm bisogna prenderlo dal file sorgente di Spamassassin che si trova nel sito, una volta scaricato e decompresso il file copiarlo con:

cp Mail-SpamAssassin-3.1.8/lib/Mail/SpamAssassin/Timeout.pm /usr/share/perl5/Mail/SpamAssassin

Infine è da dire che FuzzyOCR funziona dalla versione 3.1.8 di Spamassassin, non presente in Dapper. Una soluzione è scaricare l’ultima versione con cpan:

cpan Mail::SpamAssassin