<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>https://kuutorvaja.eenet.ee/w/index.php?action=history&amp;feed=atom&amp;title=Windowsi_DHCP_logi_kogumine</id>
	<title>Windowsi DHCP logi kogumine - Redigeerimiste ajalugu</title>
	<link rel="self" type="application/atom+xml" href="https://kuutorvaja.eenet.ee/w/index.php?action=history&amp;feed=atom&amp;title=Windowsi_DHCP_logi_kogumine"/>
	<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Windowsi_DHCP_logi_kogumine&amp;action=history"/>
	<updated>2026-04-17T19:59:06Z</updated>
	<subtitle>Selle lehekülje redigeerimiste ajalugu</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Windowsi_DHCP_logi_kogumine&amp;diff=25695&amp;oldid=prev</id>
		<title>Zpotoloom: Uus lehekülg: &#039;== Pooleli... ==   Kuna Windows-i DHCP logide roteerumist seadistada ei saa( hoitakse ühe nädala jagu )  siis tuleb kasutada muud lahendust logide pikaajaliseks säilitamiseks.  S...&#039;</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Windowsi_DHCP_logi_kogumine&amp;diff=25695&amp;oldid=prev"/>
		<updated>2011-11-07T13:33:48Z</updated>

		<summary type="html">&lt;p&gt;Uus lehekülg: &amp;#039;== Pooleli... ==   Kuna Windows-i DHCP logide roteerumist seadistada ei saa( hoitakse ühe nädala jagu )  siis tuleb kasutada muud lahendust logide pikaajaliseks säilitamiseks.  S...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uus lehekülg&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Pooleli... ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuna Windows-i DHCP logide roteerumist seadistada ei saa( hoitakse ühe nädala jagu )&lt;br /&gt;
&lt;br /&gt;
siis tuleb kasutada muud lahendust logide pikaajaliseks säilitamiseks.&lt;br /&gt;
&lt;br /&gt;
Seoses sellega, et DHCP server hoiab logifaile lukus on sealt ridahaaval&lt;br /&gt;
&lt;br /&gt;
andmete kättesaamine raskendatud. Näiteks SyslogAgent ja Epilog&lt;br /&gt;
&lt;br /&gt;
ei saanud logist kõiki ridasid kätte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;dhcplogdb.py&amp;#039;&amp;#039;&amp;#039; - skript mis sisestab eelmise päeva DHCP logist mac aadressiga read andmebaasi&lt;br /&gt;
&lt;br /&gt;
Skript eeldab MySQL andmebaasi dhcp_log ja kasutajat dhcp_log kellel on õigused CREATE ja INSERT&lt;br /&gt;
&lt;br /&gt;
  15 1 * * * /usr/bin/python/ /home/user/scripts/dhcplogdb.py server1 /mnt/loghosts/server1&lt;br /&gt;
Kus server1 on DHCP serveri identifikaator ( SQL-i tabel luuakse nime järgi ) ja&lt;br /&gt;
&lt;br /&gt;
/mnt/hosts/server1 kataloog sisaldab Windows-i DHCP logisid kujul:&lt;br /&gt;
  DhcpSrvLog-{&amp;#039;Sun&amp;#039;,&amp;#039;Mon&amp;#039;,&amp;#039;Tue&amp;#039;,&amp;#039;Wed&amp;#039;,&amp;#039;Thu&amp;#039;,&amp;#039;Fri&amp;#039;,&amp;#039;Sat&amp;#039;}.log&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;#039;&amp;#039;&amp;#039;dhcplogdb.py&amp;#039;&amp;#039;&amp;#039; &amp;lt;dhcpservername&amp;gt; &amp;lt;/path/to/logfiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;from datetime import datetime, date, time&lt;br /&gt;
import MySQLdb, sys, re, string&lt;br /&gt;
&lt;br /&gt;
class DhcpLogToDB:&lt;br /&gt;
&lt;br /&gt;
      def __init__(self, db, name):&lt;br /&gt;
           self.db = db&lt;br /&gt;
           self.name = name&lt;br /&gt;
           self.dbc = self.db.cursor()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      def checktable(self, name):&lt;br /&gt;
           if self.dbc.execute(&amp;quot;SELECT * FROM information_schema.tables WHERE table_name=&amp;#039;&amp;quot; + name + &amp;quot;&amp;#039;&amp;quot;) == 0:&lt;br /&gt;
               sqlcreate = \&lt;br /&gt;
               &amp;quot;CREATE TABLE &amp;quot; + name + \&lt;br /&gt;
               &amp;quot; ( `date` date NOT NULL, \&lt;br /&gt;
               `time` time NOT NULL, \&lt;br /&gt;
               `addr` varchar(15) NOT NULL, \&lt;br /&gt;
               `hostname` varchar(40) NOT NULL, \&lt;br /&gt;
               `mac` varchar(12) NOT NULL)&amp;quot;&lt;br /&gt;
               self.dbc.execute(sqlcreate)&lt;br /&gt;
           return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      def additem(self, date, time, addr, hostname, mac):&lt;br /&gt;
           sql = &amp;quot;INSERT INTO &amp;quot; + self.name + &amp;quot; VALUES( &amp;#039;&amp;quot; + date + &amp;quot;&amp;#039;,&amp;#039;&amp;quot; + time + &amp;quot;&amp;#039;,&amp;#039;&amp;quot; + addr + &amp;quot;&amp;#039;,&amp;#039;&amp;quot; + hostname + &amp;quot;&amp;#039;,&amp;#039;&amp;quot; + mac + &amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
           self.dbc.execute(sql)&lt;br /&gt;
           return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    if len(sys.argv) != 3:&lt;br /&gt;
        print &amp;#039;Usage: %s &amp;lt;dhcpserver-name&amp;gt; &amp;lt;/path/to/logfiles&amp;gt;&amp;#039; % (sys.argv[0])&lt;br /&gt;
        sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
    name = sys.argv[1]           # DHCP server ( MySQL table name, creates new table if not exists )&lt;br /&gt;
    path = sys.argv[2]           # Path to logfiles&lt;br /&gt;
    macx = &amp;#039;([a-fA-F0-9]{2}){6}&amp;#039; # Windows DhcpSrvLog-*.log mac address format&lt;br /&gt;
    Weekdays = (&amp;#039;Sun&amp;#039;, &amp;#039;Mon&amp;#039;, &amp;#039;Tue&amp;#039;, &amp;#039;Wed&amp;#039;, &amp;#039;Thu&amp;#039;, &amp;#039;Fri&amp;#039;, &amp;#039;Sat&amp;#039;) # 0 - Sun, 6 - Sat&lt;br /&gt;
&lt;br /&gt;
    yesterday = datetime.now().isoweekday() - 1&lt;br /&gt;
    file = path + &amp;quot;/DhcpSrvLog-&amp;quot; + Weekdays[yesterday] + &amp;quot;.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    db = MySQLdb.connect( db=&amp;quot;dhcp_log&amp;quot;, user=&amp;quot;dhcp_log&amp;quot;)&lt;br /&gt;
    log = DhcpLogToDB(db, name)&lt;br /&gt;
    log.checktable(name)&lt;br /&gt;
    for line in open(file):&lt;br /&gt;
        dhcp = re.compile(macx).search(line)&lt;br /&gt;
        if dhcp:&lt;br /&gt;
            a = line.split(&amp;#039;,&amp;#039;)&lt;br /&gt;
            log.additem(a[1], a[2], a[4], a[5], a[6])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
      main()&lt;/div&gt;</summary>
		<author><name>Zpotoloom</name></author>
	</entry>
</feed>