Centos Network aygıtı eklemek ( Adding network device)

CentOS minimali ilk kurduğunuzda sizi bir süpriz bekliyor olabilir. Ağ kartınız takılı olmasına rağmen

#ifconfig

komutu ile eth0 gibi bir aygıt göremiyorsanız aşağıdaki yolu kontrol edin:

# cd /sys/class/net/arayüz_adiniz_eth0_olabilir

daha sonrada ifcfg-eth0 dosyasını güncelliyoruz


# cd /etc/sysconfig/network-scripts
# vi ifcfg-eth0

DEVICE=eth0
HWADDR=00:0c:29:7c:25:77
NM_CONTROLLED=yes
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
DNS2=195.175.39.40
DNS1=195.175.39.39
IPADDR=192.168.1.6
NETMASK=255.255.255.0
GATEWAY=192.168.1.1


4 Ekim 2013

Posted In: Gezegen, linux, network

Linux isc Dhcp Server da 5651 Logu tutma

5651 sayılı yasaya göre toplu kullanım alanlarında dhcp.leases loglarını "ip" "başlangıç zamanı" "bitiş zamanı" "mac-adresi" başlıkları altında tutmamız gerekiyor. bu işlem için yazılmış bir çok uygulamayı inceledim ancak istediğim gibi bir uygulama bulamayınca kendim bir tane yazayım dedim. Uygulamayı python 2.7 de yazmayı seçtim. öncelikle /var/lib/dhcpd/ altındaki dhcp.leases dosyasını inceleyelim.


 The format of this file is documented in the dhcpd.leases(5) manual page.

# This lease file was written by isc-dhcp-4.1.1-P1



lease 192.168.80.255 {

  starts 4 2013/04/25 14:17:15;

  ends 4 2013/04/25 14:17:22;

  tstp 4 2013/04/25 14:17:22;

  cltt 4 2013/04/25 14:17:15;

  binding state free;

  hardware ethernet e4:1f:13:3f:36:e1;

  uid "\001\344\037\023?6\341";

}

lease 172.16.5.134 {

  starts 0 2013/04/28 21:31:05;

  ends 0 2013/04/28 23:11:05;

  tstp 0 2013/04/28 23:11:05;

  cltt 0 2013/04/28 21:31:05;

  binding state active;

  next binding state free;

  hardware ethernet 00:e0:8e:26:67:39;

  uid "\001\000\340\216&g9";

  client-hostname "zaphyros";

}

gördüğünüz gibi lease dosyamızın içinde lease ile başlayan elemanlar ve altında değerler var. öncelikle dosyayı open("dhcpd.leases", "r") kodu ile okuyoruz ve her bir lease'i bir list'e atıyoruz daha sonrada her lease'i başka bir child list'e atıyoruz. Child listimizin 0,1,2,6 numaralı elemanları istediğimiz bilgiler. Bunlarıda belirli bir düzenle ve zaman bilgisi ekleyerek bir text dosyasına yazdıracağız.
#!/usr/bin/python
# -*- coding: iso-8859-15 -*-

#Dosyamızı yüklüyoruz
dosya = open("dhcpd.leases", "r")
osman = dosya.read()

#Çift tırnakları ve ihtiyacımız olmayan diğer karakterleri temizliyoruz.
osman = osman.replace('"','')
osman = osman.replace('{',';') # şu şekilde olan satırı "lease 192.168.80.255 {" şöyle yapıyoruz "lease 192.168.80.255 ;" çünkü alt satırlarda ";" karakteri ile split edeceğiz
osman = osman.replace('}','')
osman = osman.replace('P1',';')
osman = osman.replace('hardware ethernet ','')
osman = osman.replace('\n','')
osman = osman.replace(' ','')

#listim listesine dhcp.lease lerimizi alıyoruz
listim =osman.split("lease")

#datetime modülünü yüklüyoruz
import datetime
bugun = datetime.date.today() #bugünün tarihini bugun değişkenine alıyoruz
name = "dhcp_log_zaman_"+str(bugun)+".txt" #text dosyamızın adını belirledik
dosya = open(name,"w") #doyamızı yazılabilir formda oluşturuyoruz

#Dosyamızın görsel olarakta 4 sütundan oluşması için öncelikle başlıklarımızı yazıyoruz
dosya.write(" IP ADRESI\t\t\t\tBASLANGIC\t\t\t\t\tBITIS\t\t\t\tMAC ADRESI\n")
dosya.write("----------------\t\t--------------------------\t\t\t--------------------------\t\t-------------------\n")

#i değişkenini listenin o anki elemanı için j değişkeninide listenin tüm elemanları için tanımladık
i=1
j=len(listim) #listemizin toplam eleman sayısı

#döngümüz başlasın
while i < j:
child=listim[i].split(";") #her bir lease 'i kendi içerisinde child isminde bir listeye ";" karakteri ile ayırıyoruz.
k=0
m=len(child)-2 #bazı lease loglarında 9 eleman varken bazılarında 7 eleman olduğundan toplam eleman sayısını 2 azalttık
#ikinci döngümüz başlasın
while k<m:
print child[0],"\t\t\t",child[1],"\t\t\t",child[2],"\t\t\t",child[6] # Bu satır ile ekranada yazdırabilirsiniz. Bu satıra serverda kullanmaya başlayınca ihtiyacınız olmayacak

dosya.write(child[0]) #ip adresi
dosya.write("\t\t\t") #3 tab boşluk bırakıyoruz
dosya.write(child[1]) #başlangıç zamanı
dosya.write("\t\t\t")
dosya.write(child[2]) #bitiş zamanı
dosya.write("\t\t\t")
dosya.write(child[6]) #mac adresi
dosya.write("\n") #satırbaşı
k+=1
i += 1
dosya.close()
isterseniz uygulamamız için birde cron oluşturalım böylece günlük olarak txt dosyalarımız oluşmuş olacak. Bu dosyalarıda bellirli zaman aralıklarında yedekleyip TİB'in zaman damgası ile saklayabiliriz.

 #crontab -e

 komutunu çalıştırdığımızda gelen editöre aşağıdaki kodu yapıştırırsanız her gün saat 01:00 da uygulama çalışacaktır.

0 1 * * * python /var/lib/dhcpd/dhcp_strap.py

4 Mayıs 2013

Posted In: dhcp, dhcp leases, Gezegen, linux, network

WP Twitter Auto Publish Powered By : XYZScripts.com