ลีนุกซ์ (Linux)
Home  Contents KMArticlesMembersSponsorsAbout us

ปรับปรุง : 2556-10-06 (ปรับเป็นรุ่น 3)
ขอบซ้ายขอบบน
Linux : 0423
:: กลับหน้าแรก :: แสดงเนื้อหาทั้งหมด ::

4.23 ใช้ php อ่านข้อมูลจาก /var/log/maillog
: เพื่อรายงานสถิติการใช้ e-mail ของบุคลากร
วันหนึ่งผมอ่านข้อมูลการเข้าใช้ e-mail จาก /var/www/html/mail/database/username_yn1.yonok.ac.th/inbox โดยเช็คจากเวลา update filectime() แต่พบว่าข้อมูลที่ได้คือ ไม่รวมไปถึง user ที่ใช้ outlook อ่าน e-mail ผ่าน pop3 จึงต้องไปอ่านข้อมูลการเข้าใช้ e-mail จากแฟ้ม /var/log/maillog ทำให้รายงายได้ละเอียดขึ้น สามารถดูผลของโปรแกรมนี้ที่ http://www.isinthai.com/mail/database/index.php
อันที่จริง โปรแกรมนี้จะอยู่ที่ไหนก็ได้ แต่ผมเก็บไว้ที่นี่ เพราะห้องนี้ยังไม่เก็บอะไรเกี่ยงกับ mail ที่สำคัญ แต่สิ่งที่ต้องทำคือการ chmod 644 maillog แต่เดิมคุณสมบัติของแฟ้มเป็น 600 จะใช้ php ของ apache ไปอ่านมาไม่ได้
    ตัวอย่างโปรแกรม /var/www/html/mail/database/index.php
    <html><head><title>Username of /var/log/maillog</title></head>
    <body bgcolor=gray topmargin=0 leftmargin=0><font face="fixedsys" size=0><?
    $datefull = date("F d, Y");
    if(date("j") < 10) {$d = date("M")."  ".date("j");}else{$d = date("M j");}
    echo "Today : <font color=yellow>".$datefull."</font><br>";
    echo "Last login: <a href=index.php?act=total>total</a> ";
    if ($_GET['act'] <> "view" && $_GET['act'] <> "total") {
      echo ", <a href=index.php?act=view>today</a> ";
    } else {
    echo "<ol><font color=white>";
    $ar = file("/var/log/maillog");
    if ($_GET['act'] == "total") { $max = 0; } else { $max = count($ar) - 500; }
    $j = 0;
    for ($i=count($ar);$i>=$max;$i--) {  
      if (strpos($ar[$i],"Login user=") && _
         (strpos($ar[$i],"$d") > -1 || $_GET['act'] == "total")) {
        $user = stristr($ar[$i],"user=");
        $uofar = substr($user,5,strpos($user," ")-5);
        $found = "no";
        for($k=0;$k<$j;$k++) { 
          if (strpos($ur[$k],"$uofar") > -1) { $found = "yes"; }
        }
        if ($found == "no") {
          if (strpos($ar[$i],"host=yonok.ac.th") == false) {
            $p="pop";
          } else {
            $p=" ";
          }
          $ur[$j] = $uofar." <font color=black>".substr($ar[$i],7,8)."</font> ".$p;
          $ut[$j] = $uofar." <font color=black>".substr($ar[$i],0,6)."</font> ".$p;
          $j = $j + 1;
        }
      }
    }
    for ($i=0;$i<$j;$i++) { 
      if ($_GET['act'] == "total") {
        echo "<li>".$ut[$i]; 
      } else {
        echo "<li>".$ur[$i]; 
      } 
    }
    }
    ?>
    </ol></body></html>
    

ขอบซ้ายขอบบน
สารบัญ
กรณีศึกษาจาก Redhat 6.2 -> Fedora Core 4 -> Android 4.01
บทที่ 1 : คำสั่งสำหรับผู้ใช้พื้นฐาน (Basic user command)
    1.1 คำสั่ง ls : แสดงรายชื่อแฟ้มในห้องปัจจุบัน หรือห้องอื่น ๆ ที่ต้องการ 1.2 คำสั่ง chmod : เปลี่ยนสถานะของแฟ้มเช่น Read Write eXecute 1.3 คำสั่ง man : แสดงรายละเอียดของคำสั่ง (Manual) 1.4 คำสั่ง mkdir, rmdir, cd : คำสั่งเกี่ยวกับ Directory หรือ Folder เพื่อสร้าง หรือลบ 1.5 คำสั่ง pico : editor ยอดฮิตใน Linux ที่ต้องมากับ Pine เป็น Text mode ที่ใช้ง่ายที่สุด 1.6 คำสั่ง emacs : editor ยอดฮิตใน Linux ใช้ยากกว่า pico นิดหน่อย 1.7 คำสั่ง vi : editor ยอดฮิตใน Linux ที่ใช้ยากที่สุด 1.8 คำสั่ง id, finger, who, w : โปรแกรมตรวจสอบ username ของตนเอง 1.9 คำสั่ง cat : แสดงข้อมูลในแฟ้มเหมือนคำสั่ง type ในระบบ DOS 1.10 คำสั่ง ifconfig : ดู IP หรือเพิ่ม IP เข้าไปใน linux server 1.11 คำสั่ง netstat : แสดงสถานะของเครือข่าย 1.12 คำสั่ง service : แสดงสถานะโปรแกรมที่เปิดให้บริการ 1.13 คำสั่ง xinetd : แสดงบริการที่เปิดใต้โปรแกรม xinetd 1.14 คำสั่ง whereis : ค้นหาแฟ้มที่ต้องการว่าอยู่ที่ห้องใด 1.15 คำสั่ง cp, rm, mv : จัดการแฟ้มเช่น คัดลอก ลบ และย้าย 1.16 คำสั่ง ping : ตรวจสอบ ip และการเชื่อมต่อ internet 1.17 คำสั่ง env : แสดงค่า environment ปัจจุบัน 1.18 คำสั่ง lynx : Text browser ที่ใช้งานง่าย ใช้ดู source หรือ download ได้ 1.19 คำสั่ง nslookup : แสดงข้อมูลเกี่ยวกับ name server จาก ip หรือ domain name 1.20 คำสั่ง tail : แสดงส่วนท้ายของแฟ้มที่มีขนาดใหญ่ ต้องข้ามกับ cat ที่ดูตั้งแต่เริ่มแฟ้ม 1.21 คำสั่ง telnet : ใช้ติดต่อเข้า server ต่าง ๆ ตาม port ที่ต้องการ .
บทที่ 2 : คำสั่งสำหรับผู้ใช้ระดับกลาง (Intermediate user command) เพื่อต้องการตรวจสอบระบบ
    2.1 คำสั่ง df : แสดง partition ของ linux พร้อมขนาดที่ใช้ไป 2.2 คำสั่ง du : แสดงพื้นที่ใช้งานในแต่ละ Directory 2.3 คำสั่ง ps : แสดง process ที่กำลังทำงานอยู่ทั้งของเครื่อง และตนเอง 2.4 คำสั่ง kill : ยกเลิก process ที่ทำงานอยู่ 2.5 คำสั่ง find : ค้นหาแฟ้มที่ต้องการภายในทุก ๆ directory ได้ 2.6 คำสั่ง gzip : คลายการบีบอัด หรือแตกแฟ้มประเภท .gz 2.7 คำสั่ง tar : คลายการบีบอัด หรือแตกแฟ้มประเภท .tar 2.8 คำสั่ง last : แสดงรายชื่อผู้ใช้งานระบบปัจจุบันไปถึงอดีต 2.9 คำสั่ง grep : เลือกข้อความที่ต้องการภายในแต่ละบรรทัด 2.10 คำสั่ง date, hwclock : ใช้กำหนด หรือแสดงเวลาปัจจุบัน 2.11 คำสั่ง top : แสดง process ที่ทำงานในปัจจุบัน พร้อม refresh ตลอดเวลา 2.12 คำสั่ง ntsysv และ setup : กำหนดบริการที่ต้องการเปิด หรือปิด เช่น httpd หรือ vsftp 2.13 คำสั่ง route : ใช้กำหนด แสดง ตารางเส้นทาง 2.14 คำสั่ง shutdown, reboot : ใช้ปิดเครื่อง หรือ ปิดและเปิดเครื่องใหม่อย่างถูกวิธี 2.15 คำสั่ง runlevel : คู่กับแฟ้ม /etc/inittab 2.16 คำสั่ง fsck : ซ่อมแซมระบบแฟ้มใน linux 2.17 คำสั่ง chown, chgrp : เปลี่ยนเจ้าของ หรือเปลี่ยนกลุ่ม 2.18 คำสั่ง chkconfig : กำหนด หรือแสดง บริการที่สั่งประมวลผลใน level ต่าง ๆ ขณะเปิดเครื่อง 2.19 คำสั่ง mount, umount : เชื่อมต่ออุปกรณ์ หรือ partition เช่น Diskette หรือ Handy drive 2.20 คำสั่ง mkbootdisk : สร้างแผ่น boot disk เพื่อใช้ boot ระบบ linux ขึ้นมาภายหลัง 2.21 คำสั่ง traceroute : แสดงเลข ip ของเครื่องที่ถูกเชื่อมต่อ ไปยังปลายทางที่ต้องการ 2.22 คำสั่ง rpm : ใช้ตรวจสอบ เพิ่ม หรือลบ package ของระบบ linux เกือบทั้งหมด 2.23 คำสั่ง su : ขอเปลี่ยนตนเองเป็น Super user เพื่อใช้สิทธิสูงสุดในการบริหารระบบ 2.24 คำสั่ง useradd : เพิ่มผู้ใช้รายใหม่เข้าไปในระบบ 2.25 คำสั่ง userdel : ลบผู้ใช้รายเดิม ออกจากระบบ 2.26 คำสั่ง usermod : แก้ไขข้อมูลของผู้ใช้ได้ 2.27 คำสั่ง crontab : ตั้งเวลาสั่งงานคอมพิวเตอร์ 2.28 คำสั่ง lspci : ตรวจสอบอุปกรณ์ที่เชื่อมต่อภายในเครื่อง 2.29 คำสั่ง nmap : ตรวจสอบเครือข่ายแบบกวาดทั้งในเครื่อง และ class C .
บทที่ 3 : บทเรียน PERL บทที่ 4 : บทเรียน PHP บทที่ 5 : บทเรียน MYSQL บทที่ 6 : แนะนำเครื่องบริการ บทที่ 7 : การใช้ application บทที่ 8 : ระบบ file และ directory บทที่ 9 : การบริหารระบบ โดย Super User
ผู้สนับสนุน + ผู้สนับสนุน
+ รับผู้สนับสนุน
"Imagination is more important than knowledge" - Albert Einstein
Home
Thaiabc.com
Thainame.net
Lampang.net
Nation university
PHP
MySQL
Visual basic.NET
TabletPC
Linux
Online quiz
Download
Search engine
Web ranking
Add website
Blog : Education
Blog : ACLA
Blog : Lampang
Facebook.com
Twitter.com
About us
My dream
Site map
Sponsor