Archive for the ‘Server’ Category

Recuperare un file da nastro con TAR

Per recuperare un solo file di cui non si ricorda nome o percorso completo usare i seguenti comandi:

mt -f /dev/nst0 rewind
tar -C /opt/ -xvf /dev/nst0 | grep -i "nome del file"

Recupera il file “nome del file” dentro la cartella /opt

Autoresponder con Procmail

Per creare un risponditore automatico bisogna usare Procmail.
Come prima cosa editare il file:

/home/utente/.procmailrc

e copiare in testa al file i seguenti parametri:

:0c
* ^X-Spam-Status: No
*!^FROM_DAEMON
*!^FROM_MAILER
*!^X-Loop: utente@dominio.com
| (formail -rk \
-A "X-Loop: utente@dominio.com";\
echo "Questa settimana sarò assente.";\
echo "Grazie." ) | /usr/sbin/sendmail -t -oi

in questo modo la frase verrà reinviata ad ogni mittente che manda una mail ad utente@dominio.com ad eccezione delle mail contrassegnate come SPAM.

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.