23/11/2011
autovodafone versione 0.2: URL-encoding completo e meccanismi di controllo
Come avevo già preannunciato in questo post, ecco la versione 0.2 dello script bash per l'invio di MMS gratis mediante Vodafone.it:
#!/bin/bash
#File di log
FILELOG=/var/log/autovodafone
ROOT_UID=0
#Controllo che lo script venga eseguito da root
if [ "$UID" -ne "$ROOT_UID" ];then
ERRORE1="Errore 1: Devi essere root per eseguire lo script"
echo $ERRORE1
echo "$(date) $ERRORE1" >> $FILELOG
exit 1
fi
data=$(date)
echo "Inserisci il destinatario:"
read destinatario
echo "Inserisci l'oggetto del messaggio:"
read oggetto
echo "Inserisci il testo del messaggio:"
read testo
echo "$testo" > text
cat text | sed -f urlencoding.sed > encoded
enc=$(cat encoded)
curl -c cookiev.txt -F "username=vostrousername" -F "password=vostrapassword" https://www.vodafone.it/190/trilogy/jsp/login.do 2&>1
curl -b cookiev.txt --data "recipient=$destinatario&subjecttosend=$oggetto&SmilName=&TextName=$enc&ImageName=&AudioName=&nextPage=/web/servletresult.html" http://mmsviaweb.net.vodafoneomnitel.it/WebComposer/web/elaborapop.jsp | grep -o -E '"s*(.*)>(.*)"' > out
sed -n '2p' out > out1
sed -e s/"//g out1 > out2
sed -e "s/ /+/g" out2 > out3
url="http://mmsviaweb.net.vodafoneomnitel.it"
url1=$(cat out3)
url2=$(echo "$url$url1")
curl -b cookiev.txt $url2 > result
if grep -q "SendMessage=1" result;then
echo "$data: messaggio inviato" >> $FILELOG
else
echo "$data: il messaggio non e' stato inviato" >> $FILELOG
fi
rm out
rm cookiev.txt
rm text
rm encoded
rm result
exit 0
Nella fattispecie, ho creato il file urlencoding.sed per la codifica del testo relativo all'MMS, il cui contenuto è il seguente:
s/%/%25/g
s/ /%20/g
s/ /%09/g
s/!/%21/g
s/"/%22/g
s/#/%23/g
s/$/%24/g
s/&/%26/g
s/'''/%27/g
s/(/%28/g
s/)/%29/g
s/*/%2a/g
s/+/%2b/g
s/,/%2c/g
s/-/%2d/g
s/./%2e/g
s///%2f/g
s/:/%3a/g
s/;/%3b/g
s//%3e/g
s/?/%3f/g
s/@/%40/g
s/[/%5b/g
s//%5c/g
s/]/%5d/g
s/^/%5e/g
s/_/%5f/g
s/`/%60/g
s/{/%7b/g
s/|/%7c/g
s/}/%7d/g
s/~/%7e/g
s/ /%09/g
Ho voluto avvalermi di sed per omogeneità, ciò non significa che tale operazione non sia fattibile attraverso linguaggi di scripting esterni (ad esempio perl).
Inoltre, mediante le seguenti righe di codice:
if grep -q "SendMessage=1" result;then
echo "$data: messaggio inviato" >> $FILELOG
else
echo "$data: il messaggio non e' stato inviato" >> $FILELOG
fi
ho previsto dei controlli (molto basilari) relativi all'esito dell'operazione di inoltro degli MMS, il cui risultato verrà salvato sul file di log (con data e ora).
Qualunque suggerimento per estendere e/o migliorare lo script rimane comunque il benvenuto.
A presto.
09:00 Scritto da: nazarenolatella in SO: Linux | Link permanente | Commenti (0) | Segnala | Tag: mms gratis, bash, script, scripting, vodafone, url-encoding, sed | OKNOtizie |
Facebook
07/09/2011
Script bash per l'individuazione di eventuali rootkit mediante rkhunter
Recentemente ho creato questo semplice script bash che consente di identificare eventuali rootkit installati sulla nostra macchina, inviando successivamente il risultato della scansione al nostro indirizzo email. Tale script si avvale del tool rkhunter.
Ecco il codice:
#!/bin/bash
destinatario=vostro.indirizzo@email.it
logfile=/var/log/rkhuntercheck.log
ROOT_UID=0
if [ "$UID" -ne "$ROOT_UID" ];then
ERRORE1="Errore 1: Devi essere root per eseguire lo script"
echo $ERRORE1
echo "$(date) $ERRORE1" >> $logfile
exit 1
fi
rkhunter --update -c --sk --nocolors > temp_rootkit;
cat temp_rootkit | mail -iv -s "Esito scansione rootkit con rkhunter" $destinatario;
rm temp_rootkit;
exit 0
In particolare, la flag --sk consente di skippare il keypress, mentre la flag --nocolors consente di creare un report senza preoccuparci della formattazione del testo mediante i colori.
Inoltre, prima di effettuare uno scan, grazie alla flag --update, aggiorno rkhunter con le ultime signature.
Spero che questo script vi possa tornare utile.
A presto.
17/07/2010
Script per il backup automatico di un sito Web
Sulla falsariga dello script per il backup automatico di un database, ho deciso di crearne uno che effettua periodicamente il backup di un sito Web (un pò come avviene con gli hosting provider).
Ecco il codice:
#!/bin/bash
datasito=$(date +"%d_%b_%y")
montaggiosito=$(mount | grep /media/disk)
#File di log
FILELOG=/var/log/backupmiosito
ROOT_UID=0
if [ "$UID" -ne "$ROOT_UID" ];then
ERRORE1="Errore 1: Devi essere root per eseguire lo script"
echo $ERRORE1
echo "$(date) $ERRORE1" >> $FILELOG
exit 1
fi
if [ ! -n "$montaggiosito" ]; then
mount /media/disk
fi
if [ ! -d /media/disk/backup/miosito ]; then
cd /media/disk
mkdir /media/disk/backup/miosito
fi
cd /media/disk/backup/miosito
mkdir backup_$datasito
cp -r /var/www/miosito /media/disk/backup/miosito/backup_$datasito
exit 0
Come potete notare, tale script si differenzia da quello per il backup del database sono nelle ultime righe (e per qualche nome assegnato alle variabili). Nella fattispecie, il comando cp -r /var/www/miosito /media/disk/backup/miosito/backup_$datasito non fa altro che copiare tutto il contenuto della directory /var/www/miosito (comprese le sottodirectory, grazie alla flag -r) in /media/disk/backup/miosito/backup_$datasito.
Rendo eseguibile lo script, digitando sudo chmod +x backupsito e successivamente lo copio nella cartella /usr/bin mediante il comando sudo cp /backupsito /usr/bin.
Ora, tale script può essere eseguito ad intervalli di tempo regolari, semplicemente inserendo la seguente istruzione nel file crontab presente nella directory /etc:
0 21 * * * root backupsito > /dev/null 2>&1
ed il gioco è fatto.
See ya.
09:44 Scritto da: nazarenolatella in SO: Linux | Link permanente | Commenti (0) | Segnala | Tag: bash, scripting, backup sito web | OKNOtizie |
Facebook
















