pfSense 5651 to FTP Shell Script

Selamlar ;

Bir arkadaşımız için hazırladığım 5651 scriptini siz değerli ziyaretçilerimle paylaşmayı düşündüm. Üzerinde çok fazla duramadım ama ilerleyen zamanlarda daha iyisini geliştirip tekrar sizinle paylaşırım. Şimdilik benden istenen sadece ilgili logların FTP Sunucusuna gönderilmesi ve eski logların temizlenmesiydi.

Kurulum için hiçbir ekstra paket kurmanıza gerek yok.İlgili dosyaları kendinize göre düzenledikten sonra ilgili dizinlere kopyalayip çalıştırmanız yeterlidir. Bir sonra ki versiyonda Script’e Samba Client kullanarak Windows ortamdaki bilgisayara aktarılmasını, Proxy loglarını veya http isteklerini de güzelce parse edip güzel birşeyler ortaya çıkartmaya çalışırız.

5651.sh dosyasi

#!/bin/sh
#   _____         __  __ ______ _________     _______ _      __  __           ______
#  / ____|  /\   |  \/  |  ____|__   __\ \   / /_   _| |    |  \/  |   /\    |___  /
# | (___   /  \  | \  / | |__     | |   \ \_/ /  | | | |    | \  / |  /  \      / / 
#  \___ \ / /\ \ | |\/| |  __|    | |    \   /   | | | |    | |\/| | / /\ \    / /  
#  ____) / ____ \| |  | | |____   | |     | |   _| |_| |____| |  | |/ ____ \  / /__ 
# |_____/_/    \_\_|  |_|______|  |_|     |_|  |_____|______|_|  |_/_/    \_\/_____|
# Date : 22.05.2015
# Web  : www.netyum.com.tr      
# Mail : sametyilmaznet@gmail.com      
# Blog : www.sametyilmaz.com.tr                                                                
                                                                                   
logger "5651.sh dosyasi calistirildi!"

#Degiskenler

#FTP Connection Information

HOST='ip veya host'
USER="kullaniciadiniz"
PASSWD="sifreniz"
FILE="/5651/*.tar.gz"
REMOTEPATH='5651'

#Ftp Log File
FTPLOG=/tmp/ftplogs.out

#Date 
Tarih=`date "+%Y%m%d-%H%M%S"`

#DHCP File
DhcpLogD=/var/dhcpd/var/db/dhcpd.leases

#HTTP File
HttpLogD=/var/squid/logs/access.log

#Awk Script
ParseD=/sbin/5651.awk


#Hazirlik Dizinimiz
LogWorkD=/5651 

if [ ! -d $LogWorkD ]
	then
		mkdir $LogWorkD
		echo "$LogWorkD olusturuldu!"
		sleep 1
	fi

#DHCP Islemleri

if [ -f $DhcpLogD ]
	then
		/usr/bin/awk -f $ParseD < $DhcpLogD > $LogWorkD/dhcp-$Tarih.txt
		tar -zcvf $LogWorkD/dhcp-$Tarih.tar.gz $LogWorkD/dhcp-$Tarih*
		echo "Dhcp islemleri tamamlandi!"
		logger "Dhcp islemleri tamamlandi!"
	else
	
	echo "DHCP Leases dosyasi bulunamadi!"
	logger "Dhcp Leases dosyasi bulunamadi."
	
	fi

	sleep 3

#HTTP islemleri

if [ -f $HttpLog ]
	then
		
		cp $HttpLogD $LogWorkD/http-$Tarih.txt
		tar -zcvf $LogWorkD/http-$Tarih.tar.gz $LogWorkD/http-$Tarih*
		echo "HTTP dosyasi olusturuldu!"
		logger "Http dosyasi olusturuldu!"
	else
		echo "HTTP dosyasi bulunamadi!"
		logger "HTTP dosyasi bulunamadi!"
	fi


	sleep 5

##FTP Baglantisi
			ftp -nv $HOST > $FTPLOG 2>&1 <<-EOF
		quote USER $USER
		quote PASS $PASSWD
		cd $REMOTEPATH
		prompt
		mput $FILE
			EOF


if grep "Not Connected" $FTPLOG
then
    echo "FTP baglantisi yapilamadi!"
	logger "FTP baglantisi yapılamadi!"
elif grep "Transfer complete" $FTPLOG
then    
    echo "FTP baglantisi olusturuldu!"
	logger "Dosya Transferi tamamlandi!"

else
    echo "FTP baglantisinda bir hata olustu!Tekrar deneyin..."
	logger "FTP baglantisinda bir hata olustu!Tekrar deneyin..."

fi

echo $?

sleep 3

rm -rf /5651

echo "Hazirlik dizini silindi!"
logger "Hazirlik dizini silindi!"

echo "FTP loglari siliniyor..."
rm -rf $FTPLOG
echo "FTP loglari silindi"

logger "5651 Islemleri tamamlandi!"
echo "
##############################################################################
######################ISLEMLER TAMAMLANDI!!!!#################################
######################www.sametyilmaz.com.tr##################################
"

5651.awk dosyasi



#ip adresi
/lease / { ip = $2 }

# Baslangic tarihi.
/starts / { baslangic = $3; bsaat = $4;  gsub(";", "", time) }

# Bitis tarihi
/ends / { bitis = $3; bitiss = $4;  gsub(";", "", time) }

# Hostname adi
/client-hostname / { host = $2; gsub("[;\"]", "", host) }

# Mac adresi
/hardware ethernet / { mac = $3; gsub(";", "", mac) }

# Ekrana yazdir.

/\}/ { print "Hostname : " host  " Ip :" ip  " Mac :"  mac  " Baslangic : " baslangic " " bsaat " Bitis :  " bitis  " " bitiss  }


Kurulum için /sbin dizini altında 5651.sh ve 5651.awk isimli dosya olusturun ve bilgileri kendinize göre düzenledikten sonra aşağıdaki komutla yetkilendirmeyi tamamlayın.

chmod +x /sbin/5651.sh /sbin/5651.awk

İşlemler tamamlandıktan sonra dosyası aşağıda ki şekilde çalıştırıp test yapabilirsiniz.

sh /sbin/5651.sh

Eğer aşağıdaki şekilde bir cron girdisi oluşturursanız günün belirli saatlerinde logların ftp sunucunuza otomatik gönderilmesini sağlamış olursunuz.

CRON

İsterseniz yukarıdaki dosyaları aşağıda ki link’ten download edebilirsiniz.
http://sametyilmaz.com.tr/pfsense/pfSense5651toFTP.rar

Benzer Yazılar

Yorumlar

Yorum Yazın

Su elementleri kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


dört + = yedi

Arama
RSS
Beni yukari isinla