แสดงบทความที่มีป้ายกำกับ Linux แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Linux แสดงบทความทั้งหมด

วันพุธที่ 5 กันยายน พ.ศ. 2550

1 วันเต็มๆ กับ Ubuntu 7.10 Gutsy Gibbon Tribe 5

วันนี้ผมนึกสนุกขึ้นมาครับ ผมลบ Feisty ออกแล้วลง Gutsy แทนแต่มันไม่สนุกอย่างนั้นสิครับผมใช้ Notebook Acer Spire 1640 ใช้ Sound Card ของ Intel
ที่ว่าไม่สนุกน่ะเหรอครับ ก็เพราะพอผมลง ubuntu เสร็จแล้วเสียงไม่ดังสักกะแอะ ไม่มีเสียงอะไรเลยทั้งๆ ที่เครื่องมันเจอ sound card และก็มี driver ทุกอย่างมีปุ่ม volume ให้ปรับเปิดปิดได้เช็คดูว่า mute ไว้หรือเปล่าก็ไม่ได้ mute แต่ที่ติดใจอยู่ก็คือมัน
ทำไมเครื่องเรามันไม่มี /etc/init.d/alsasound หว่า
ก็เลยพยายามทำให้มันดังอยู่ทั้งวัน

ได้ผลสรุปมาว่าต้อง compile driver กันใหม่มาทำกันเลยครับ

ติดตั้ง packages พื้นฐานสำหรับการ compile

$sudo apt-get install build-essential ncurses-dev gettext
$sudo apt-get install linux-headers-`uname -r`

หยุดการทำงานของ service alsa-utiles

$sudo /etc/init.d/alsa-utils stop

สร้างโฟล์เดอร์สำหรับเก็บ source
$cd ~
$mkdir alsa-src
$cd alsa-src

ดาวน์โหลด source alsa

$wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.14rc4.tar.bz2
$wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.14rc4.tar.bz2
$wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.14rc4.tar.bz2

คลายการบีบอัด
$tar xvf alsa-driver-1.0.14rc4.tar.bz2
$tar xvf alsa-lib-1.0.14rc4.tar.bz2
$tar xvf alsa-utils-1.0.14rc4.tar.bz2

ดาวน์โหลด patch สำหรับ realtek

$wget http://lenovo.dropshock.com/files/realtek6.tar.gz
$tar xvf realtek6.tar.gz
$cp patch_realtek.c ~/alsa-src/alsa-driver-1.0.14rc4/alsa-kernel/pci/hda/

คอมไพล์ alsa-driver

$cd alsa-driver-1.0.14rc4
$./configure --with-cards=hda-intel
$make
$sudo make install

คอมไพล์ alsa-lib

$cd ../alsa-lib-1.0.14rc4
$./configure
$make
$sudo make install

คอมไพล์ alsa-utils

$cd ../alsa-utils-1.0.14rc4
$./configure
$make
$sudo make install

ตอนนี้จะได้ service alsasound มาแล้วครับ ให้ stop alsa-utils กับ alsasound

$sudo /etc/init.d/alsa-utils stop
$sudo /etc/init.d/alsasound stop

$sudo modprobe -r snd-hda-intel && sudo modprobe snd-hda-intel

เริ่มการทำงานใหม่ของ asla service

$sudo /etc/init.d/alsa-utils start
$sudo /etc/init.d/alsasound start

ลอง reboot สักนึงรอบน่ะครับ
หลังจากที่ผมเปิดเครื่องได้ลองเปิดหนังกับโปรแกรม VLC ในที่สุด Notebook ผมก็หายจากอาการเป็นไบ้
สำหรับเพื่อนๆ ที่เจอปัญหาเดียวกับผมก็ลองเอาไปประยุกต์ใช้กันดูน่ะครับ

วันอังคารที่ 28 สิงหาคม พ.ศ. 2550

สคริปส์สำหรับเพิ่ม Font thai ให้ Ubuntu

หลายๆ คนที่ใช้ Open Office และต้องการใช้ฟอนท์ Angsana New UPC, Cordia New UPC แต่ไม่รู้ว่าจะติดตั้งฟอนท์เหล่านั้นยังไง วันนี้ผมเอาสคริปส์สั้นๆ แต่รับรองคุณภาพมาฝากครับ

โดยฟอนส์ที่รวบรวมอยู่ในสคริปส์นี้มี

Angsana New UPC

Cordia New UPC

Tahoma

Microsoft Sans Serif

ขั้นตอน
1. ดาวน์โหลดสคริปส์ thfont.sh <- ได้จากที่นี่
2. สั้ง run script
$chmod +x thfont.sh
$sudo ./thfont.sh

เป็นอันเสร็จพิธี เข้าโปรแกรม Writer ของ Open Office ก็จะฟอนท์ Angsana New ให้เราใช้แล้วละครับ

สำหรับคนที่ใช้ Firefox และ aMSN ก็ลองปรับเปลี่ยนฟอนท์ดูน่ะครับจะมี Tahoma และ Microsoft Sans Serif ให้ได้ใช้เช่นกัน

aMSN ทางเลือกใหม่สำหรับคนรัก MSN

สำหรับคนรัก MSN เป็นชีวิตจิตใจอย่างผม เพื่อนผมหลายคนเคยติดตั้ง amsn แล้วไม่คอยสบอารมณ์กับภาษาไทยของมันเท่าไหร่ เมื่อคืนเพิ่งลง Gutsy Gibbon ไปครับรู้สึกว่าเล่น Pidgin มันไม่ค่อยมันมือเหมือน amsn เลยหาวิธีลงก็เพิ่งได้เมื่อไม่กี่ชั่วโมงนี้เอง ตอนแรกก็ลง

$sudo apt-get install amsn

แล้วเจอปัญหาภาษาไทยไม่ค่อย Work เลยหาวิธีทำให้มันใช้ภาษาไทยได้อย่างสมบูรณ์ Search google แล้ว Search อีก สุดท้ายเข้าเว็ป http://ubuntuforums.org แล้ว Search คำว่า amsn เท่านั้นแหละครับเจอของดีเข้าให้เลยครับ

เป็น shell script สำหรับติดตั้ง amsn ลองๆ อ่านที่เค้าเขียนไว้ดูน่ะครับ
Automatic Script for Anti-Aliasing aMSN


This is a fully automated script to add anti-aliasing support to aMSN. This will compile the latest beta of Tcl and Tk and recompile the latest stable aMSN
release for it. This will NOT replace your existing Tcl/Tk
installation, so this method is much safer to use and easier to revert
than other non-compilation methods. This script works on Edgy, Feisty
and Gutsy, and works on both 32-bit and 64-bit processors.

ขั้นตอนวิธีติดตั้งก็มีดังนี้ครับ

แนะนำว่าให้ลบ amsn ที่มีเติมอยู่ออกก่อนน่ะครับ

$sudo apt-get autoremove amsn

ดาวน์โหลด fixamsn.sh <- ได้จากที่นี่

แตกไฟล์ด้วยคำสั่ง tar

$tar zxvf fixamsn.tar.gz

จากนั้น run shell script fixamsn.sh

$bash fixamsn.sh



รอสักไม่เกิน 10 นาทีก็จะได้ aMSN ที่สามารถใช้ภาษาไทยมาแชทกับเพื่อนแล้วละครับ

Refer : http://ubuntuforums.org/showthread.php?t=297676&highlight=amsn

วันพฤหัสบดีที่ 16 สิงหาคม พ.ศ. 2550

/var/log/messages fills with loopback

ไม่รู้ใครเป็นอย่างผมบ้างหรือเปล่าน่ะครับ ตั้งแต่ผม update snmpd บน server ของคณะทำให้มี log ซึ่งมีข้อความว่า

Aug 16 07:35:02 eng snmpd[16274]: Connection from - 127.0.0.1
Aug 16 07:35:02 eng snmpd[16274]: transport socket = 12
Aug 16 07:35:02 eng snmpd[16274]: Connection from - 127.0.0.1
Aug 16 07:35:02 eng snmpd[16274]: transport socket = 12
Aug 16 07:35:02 eng snmpd[16274]: Connection from - 127.0.0.1
Aug 16 07:35:02 eng snmpd[16274]: transport socket = 12

เข้ามาอยู่ใน /var/log/messages
ทุกๆ 5 นาที ที่ mrtg ทำงานทำให้ log ใหญ่เร็วมาก
ตอนนี้ผมใช้ net-snmp-5.1.2-11.EL4.10 บน CentOS 4.5 ก็พยายามหาทางที่จะไม่ให้มันเก็บเพราะเยอะจริงๆ เวลา monitor log ใน /var/log/messages ก็จะเจอแต่บรรทัดเหล่านี้ ข้อมูลสำคัญๆ นี่หายไปหมด ทนไม่ไหวจึงถามพี่ google ได้ความมาว่าให้แก้ไฟล์

/etc/init.d/snmpd ตรงบรรทัดต่อไปนี้

OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd -a"

ให้แก้เป็น

OPTIONS="-LS 4 d -p /var/run/snmpd -a"

ได้ผลทันตาครับแก้แล้ว restart snmpd ผลคือไอ้บรรทัดที่รำคาญลูกกะตาหายไปอย่างไม่น่าเชื่อ
ใครเจอปัญหาแบบผมก็ลองเอาไปใช้กันดูน่ะครับ

วันจันทร์ที่ 16 กรกฎาคม พ.ศ. 2550

วิธีแก้ปัญหาเมื่อลืม password root ของ mysql

1. stop mysql

/etc/init.d/mysqld stop

2. mysqld_safe --skip-grant-tables &

3. mysql -u root

4. mysql> use mysql;

5. mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';

6. mysql> flush privileges;

7. mysql> quit

8. /etc/init.d/mysqld stop

9. /etc/init.d/mysqld start

10. mysql -u root -p
กรอก password ใหม่ที่ตั้งใหม่


Written by mrGilL

วิธีเปลี่ยน Port MySQL

เมื่อคืนต้อง configure mysql ให้เพื่อนครับ ต้องเปลี่ยน port จาก 3306 เป็น 4242 เนื่องจากทางมหาวิทยาลัยเขา block port 3306 ให้เพื่อนผม Remote เข้าไปได้เลยเอาวิธีการเปลี่ยน port สำหรับ mysql มาฝาก

ขั้นตอน

1.) เปิดไฟล์ /etc/my.cnf
2.) เพิ่มบรรทัดต่อไปนี้เข้าไป

[mysqld]
port=<new_port_number>

[client]
port=
<new_port_number>


**สำหรับ
<new_port_number> เปลี่ยนได้ตามต้องการเลยครับ


3.) จากนั้น Restart Mysql

# service mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]


4.) สั่ง netstat ดูผลครับ

netstat -apnt | grep mysqld


วันเสาร์ที่ 7 กรกฎาคม พ.ศ. 2550

วิธีแสดง Uptime ในหน้าเว็บเพจ

หลักการก็ไม่ยากเลยครับเขียน Perl Script ขึ้นมาแล้วให้มัน Redirection output ออกไปเป็นไฟล์ html แล้วที่นี่จะเอาไปใส่เป็น frame, iframe ไว้ในไฟล์ไหนก็ได้

ตัวอย่างผมสร้างไฟล์ชื่อ /etc/admin/scripts/uptime_html.sh โดยมี code ของไฟล์ดังนี้

#!/usr/bin/perl
$uptime = `uptime`;
$uptime =~ /up (.*?) day/;
$up = int($1);
print "<html>";
print "<head><title>Uptime</title></head>";
print "<body>";
print "<font size=1 color=#a9a9a9></br>Uptime $up"; print " Days";
print "</body>";
print "</html>";


จากนั้นก็ chmod +x /etc/admin/scripts/uptime_html.sh เพื่อให้ execute ได้

ทดลองสั่งให้ script ทำงาน

#/etc/admin/scripts/uptime_html.sh > /var/www/html/uptime.html

ทดลองเรียก http://localhost/uptime.html ดูครับ

ทีนี้ก็อาศัยความสามารถของ crontab สำหรับตั้งเวลาให้ script ที่เราเขียนเมื่อกี้ทำงาน

#crontab -e

แล้วเพิ่มบรรทัดต่อไปนี้เข้าไป

*/30 * * * * /etc/admin/scripts/uptime_html.sh > /var/www/html/uptime.html

ทีนี้จะเอา uptime.html ไปแทรกเป็น frame หรือ iframe ก็แล้วแต่ความชอบน่ะครับอิอิ

ตัวอย่างผล html ที่จะได้

Uptime 7 Days

วันพฤหัสบดีที่ 5 กรกฎาคม พ.ศ. 2550

หยุด Spam Mail ก่อนที่มันจะเข้ามาใน MailBox ของคุณ

เซิร์ฟเวอร์ที่ผมดูแลอยู่ใช้ Postfix เป็น MTA ครับ เคยโดน spam เยอะมากเลยหาวิธีตรวจสอบมันก่อนที่จะเข้ามากินเนื้อที่ mailbox วิธีแก้ไขทำได้โดยเพิ่มบรรทัดต่อไปเข้าไปในในไฟล์ /etc/postfix/main.cf ของ postfix น่ะครับ

smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
invalid_hostname_reject_code = 554
multi_recipient_bounce_reject_code = 554
non_fqdn_reject_code = 554
relay_domains_reject_code = 554
unknown_address_reject_code = 554
unknown_client_reject_code = 554
unknown_hostname_reject_code = 554
unknown_local_recipient_reject_code = 554
unknown_relay_recipient_reject_code = 554
unknown_sender_reject_code = 554
unknown_virtual_alias_reject_code = 554
unknown_virtual_mailbox_reject_code = 554
unverified_recipient_reject_code = 554
unverified_sender_reject_code = 554

smtpd_recipient_restrictions =
reject_invalid_hostname,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client multi.uribl.com,
reject_rbl_client dsn.rfc-ignorant.org,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client ix.dnsbl.manitu.net,
reject_rbl_client combined.rbl.msrbl.net,
reject_rbl_client rabl.nuclearelephant.com,
permit

smtpd_error_sleep_time = 1s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20

credit : http://www.howtoforge.com/block_spam_at_mta_level_postfix and http://www.cyberciti.biz/tips/postfix-spam-filtering-with-blacklists-howto.html

วันพุธที่ 4 กรกฎาคม พ.ศ. 2550

วิธีป้องกัน Malware สำหรับ Postfix

วันนี้ปรับปรุง Mail Server นิดหน่อยครับ เลยเอาวิธีป้องกัน Malware มาฝากกัน
หลักการก็มีอยู่ว่าให้ postfix ตรวจสอบ body ของ e-mail ที่ส่งมาโดยเปรียบเทียบกับไฟล์ Blacklist น่ะครับ

ขั้นตอนการทำ

1.) ดาว์โหลดไฟล์ Blacklist มาไว้บนเครื่อง

#wget -O - http://www.malware.com.br/cgi/submit?action=list_postfix > /etc/postfix/mbl-body-deny

2.) เปิดไฟล์ /etc/postfix/main.cf แล้วแก้ไขบรรทัดต่อไปนี้

body_checks = regexp:/etc/postfix/mbl-body-deny

หากไม่มีบรรทัด body_checks พิมพ์เข้าไปเองน่ะครับ

3.) สั่งให้ postfix โหลด /etc/postfix/mbl-body-deny เข้าทำงาน

#postmap /etc/postfix/mbl-body-deny

4.) restart postfix

#/etc/init.d/postfix restart

ขั้นตอนต่อไปเป็นการสั่งให้ update blacklist อัตโนมัติ
1.) สร้าง shell script สำหรับ update blacklist

#nano /etc/postfix/fetch.postfixmalware.sh

แล้วเพิ่มบรรทัดเหล่านี้เข้าไป

#!/bin/bash
# Script to update malware urls
/usr/bin/wget -O - http://www.malware.com.br/cgi/submit?action=list_postfix > /etc/postfix/mbl-body-deny
/usr/sbin/postmap /etc/postfix/mbl-body-deny
/etc/init.d/postfix reload

บันทึกและออกจาก nano editor
3.)เปลี่ยน permission ให้กับ /etc/postfix/fetch.postfixmalware.sh

#chmod +x /etc/postfix/fetch.postfixmalware.sh

4.) เพิ่ม crontab ดังนี้

#crontab -e

จากนั้นเพิ่ม

40 03 * * * /etc/postfix/fetch.postfixmalware.sh >/dev/null 2>&1


credit : http://www.cyberciti.biz/tips/howto-setup-postfix-mail-server-to-block-malware.html

วิธี Block Mail ที่แนบไฟล์ .bat .exe .com .vbs บน Postfix

วิธีนี้เป็นการสั่งให้ postfix ตรวจสอบ mime header ของเมล์ที่ส่งเข้ามาโดยให้ป้องกันไฟล์ที่มีนามสกุล .bat, .exe, .com, .vbs ซึ่งเป็นไฟล์พื้นฐานของพวกไวรัสคอมพิวเตอร์
ซึ่งมีวิธีการให้ postfix ตรวจสอบไฟล์เหล่านั้นดังนี้

1.) เปิดไฟล์ /etc/postfix/main.cf

#nano /etc/postfix/main.cf

2.)กำหนด mime_header_checks ดังนี้

mime_header_checks = regexp:/etc/postfix/mime_header_checks

หากไม่มี mime_header_checks ให้พิมพ์เพิ่มเข้าไปเองน่ะครับ

3.) สร้างไฟล์ /etc/postfix/mime_header_checks

#echo "/name=[^>]*\.(batcomexedllvbs)/ REJECT" > /etc/postfix/mime_header_checks

4.) สั่งให้ postfix โหลด mime_header_checks ทำงาน

#/usr/sbin/postmap /etc/postfix/mime_header_checks

5.) restart postfix

#/etc/init.d/postfix restart


credit : http://www.cyberciti.biz/tips/postfix-block-mime-attachment-files.html

วันจันทร์ที่ 11 มิถุนายน พ.ศ. 2550

ติดตั้ง apt-get บน Fedora Core 6

apt เป็นโปรแกรมจัดการ packages ชนิดนึง เดิมมีใช้ในเฉพาะบน linux ค่าย debian แต่ได้มีการพัฒนาให้สามารถใช้งานบน Fedora ได้แล้ว ซึ่งปกติแล้ว Fedora จะใช้โปรแกรม yum ในการจัดการ packages จากประสบการณ์ใช้งานจริงของผม ผมคิดว่า apt นั้นมีความสามารถในการจัดการ packages ได้ดีกว่า yum มาก สามารถค้นหาชื่อ packages ,ติดตั้งและถอนการติดตั้ง packages ได้ง่ายกว่า รวมไปถึงการ update,upgrade packages ด้วย

การติดตั้ง apt

1. ติดตั้ง apt ด้วย yum

#yum install apt

2. เมื่อติดตั้งเสร็จแล้วให้สั่ง update

#apt-get update

มันจะทำการติดต่อกับ server และดาวน์โหลดรายการ update มาไว้ในเครื่อง

3. เมื่อสั่ง update ไปแล้วก็มา upgrade กันเลย

#apt-get upgrade

ถ้าหากการ update มีรายการ packages ที่ update version หรือมี patch แก้ไข การ upgrade จะดาวน์โหลด packages ใหม่ๆ มาติดตั้งให้เรา

4. การค้นหาชื่อ packages ที่ต้องการ เช่น ผมต้องการติดตั้ง Webalizer

# apt-cache search webalizer
webalizer - A flexible Web server log file analysis program.

มันก็จะไปหาชื่อ packages ที่เราต้องและแสดงเป็น list ให้เรา

5. การติดตั้ง packages เช่น

#apt-get install webalizer

6. การถอนการติดตั้ง packages เช่น

#apt-get remove webalizer

ง่ายดีใช่ไหมครับ ลองทำกันดูครับ

วันอาทิตย์ที่ 10 มิถุนายน พ.ศ. 2550

การ Configure MRTG (Multi Router Traffic Grapher)

กรณีศึกษาใช้ Fedora Core 6
ก่อนการติดตั้ง mrtg ต้องติดตั้ง service snmp ก่อน

การติดตั้ง SNMP

1. ติดตั้ง snmp

yum install net-snmp net-snmp-utils net-snmp-devel

2. เมื่อติดตั้ง snmp ได้แล้วจะได้ไฟล์ /etc/snmp/snmpd.conf ให้ทำการเพิ่มบรรทัดด่อไปนี้เข้าไป

view systemview included .1

ตัวอย่าง
# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1 #เพิ่มบรรทัดนี้เข้าไป

3. สั่งให้ snmpd ทำงานทุกครั้งเมื่อเปิดเครื่องด้วยคำสั่ง

chkconfig snmpd on

4. เช็คว่า snmpd ทำงานอยู่หรือเปล่าด้วยคำสั่ง

/etc/init.d/snmpd status #เช็คสถานะของ snmpd
/etc/init.d/snmpd start # start snmpd
/etc/init.d/snmpd restart # restart snmpd

5. ทดสอบ snmpd ด้วยคำสั่ง snmpwalk

snmpwalk -v 1 localhost -c public system

จะมี responds กลับมาประมาณด้านล่าง

[root@eng ~]# snmpwalk -v 1 localhost -c public system
SNMPv2-MIB::sysDescr.0 = STRING: Linux eng.ru.ac.th 2.6.9-55.ELsmp #1 SMP Wed May 2 14:28:44 EDT 2007 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (960677) 2:40:06.77
SNMPv2-MIB::sysContact.0 = STRING: Mr.Montree Phomkam
SNMPv2-MIB::sysName.0 = STRING: eng.ru.ac.th
SNMPv2-MIB::sysLocation.0 = STRING: Faculty Of Engineering,Ramkhamhaeng University
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (6) 0:00:00.06
.....................

จบ snmpd

การติดตั้ง MRTG

1. ติดตั้ง mrtg ด้วยคำสั่ง

yum install mrtg

หรือ

apt-get install mrtg

จะได้

/var/www/mrtg และ /etc/mrtg

2. แก้ไขไฟล์ /etc/httpd/conf.d/mrtg.conf
<Location /mrtg>
Order deny,allow
Deny from all
#Allow from 127.0.0.1 #ใส่ comment หน้าบรรทัดนี้
Allow from all
# Allow from .example.com
</Location>


3. สั่ง restart httpd

/etc/init.d/httpd restart

เปิด browser แล้วลองเข้า http://192.168.200.210/mrtg

4.มาเริ่มสร้างไฟล์ config โดยในตัวอย่างจะเป็นการจับ Traffic ของ Server ที่เป็น localhost สั่ง

ตั้งค่า locale ไม่ให้เป็น utf-8 ด้วยคำสั่ง

export LANG=en_US <<สำคัญมากอย่าลืมพิมพ์

echo "export LANG=en_US" >> /etc/rc.local

ให้ทุกครั้งที่เปิดเครื่องจะได้ export LANG=en_US ทุกครั้ง สร้าง directory สำหรับเก็บไฟล์ของ

mrtg mkdir /var/www/mrtg/traffic

สั่งสร้างไฟล์ config ด้วยคำสั่ง

cfgmaker -global "options[_]:bits,growright" --global "workdir: /var/www/mrtg/traffic" public@localhost > /etc/mrtg/traffic.cfg

*****มาเข้าใจโครงสร้างของ cfgmaker

"options[_]:bits,growright" << ส่วนนี้โดยปกติถ้าไม่กำหนดจะมันจะสร้างกราฟจากซ้ายไปขวาซึ่งทำให้ดูยาก จึงกำหนด growright เพื่อให้สร้างกราฟจากด้านขวาไปซ้าย ซึ่งแทน

"workdir: /var/www/mrtg/traffic" << ตรงส่วนนี้หมายถึงตำแหน่งที่เราต้องการจะเก็บไฟล์ .html กับกราฟที่เป็น .png ซึ่งก็คือ Directory ที่เราต้องการจะเก็บเว็ป mrtg นั้นเอง

"public@localhost" <<ส่วนนี้หมายถึง service name ของ snmp โดยปกติจะเป็น public ส่วน localhost หมายถึงกำหนดให้เป็นเครื่องตัวเองหรืออาจใส่ 127.0.0.1 ก็ได้

"> /etc/mrtg/traffic.cfg" << ตรงส่วนนี้เป็นการ redirection output เพื่อไปเขียนไฟล์ config ซึ่งระบบเป็น /etc/mrtg/traffic.cfg ก็หมายถึงให้สร้างไฟล์ชื่อ traffic.cfg ใน /etc/mrtg นั้นเอง

เมื่อสั่งคำสั่งด้านบนไปแล้วเราจะได้ไฟล์ /etc/mrtg/traffic.cfg มา

cat /etc/mrtg/traffic.cfg ก็จะแสดงรายละเอียดของไฟล์ออกมา

5. สั่งให้ mrtg สร้าง html และ graph มีโครงสร้างดังนี้

/usr/bin/mrtg /where/your/config/file << ตามด้วยที่อยู่ของไฟล์ config ตัวอย่าง

/usr/bin/mrtg /etc/mrtg/traffic.cfg

เมื่อสั่งไปแล้วจะมีข้อความแจ้ง warning นิดหน่อเพราะมันไม่สามารถเขียนทับไฟล์เก่าได้เนื่องจากเราสั่งเป็นครั้งแรก สั่งคำสั่งเดิมซ้ำอีก 2 รอบ warning ก็จะหายไป
ซึ่งตอนเราสร้างไฟล์ config เราได้กำหนด workdir เป็น /var/www/mrtg/traffic หลังจากสั่ง /usr/bin/mrtg /etc/mrtg/traffic.cfg ไปแล้วมันก็จะสร้างไฟล์ .html กับ .png ให้ซึ่งอยู่ใน /var/www/mrtg/traffic

ls -al /var/www/mrtg/traffic
-rw-r--r-- 1 root root 1592 Feb 15 21:15 localhost_2-day.png
-rw-r--r-- 1 root root 6546 Feb 15 21:15 localhost_2.html
-rw-r--r-- 1 root root 48211 Feb 15 21:15 localhost_2.log

ทดลองเรียก

http://202.41.164.210/mrtg/traffic/localhost_2.html

ก็จะแสดงกราฟออกมา ซึ่งจะยังไม่มีเส้นเพราะเพิ่งสร้างเป็นครั้งแรก การเรียก url แบบนี้หลายๆ ครั้งคงจำกันลำบาก ต่อไปเรามาสร้าง index ไฟล์เพื่อให้เรียกดูง่ายๆ กันโดยสั่ง

indexmaker --column=1 --output=/var/www/mrtg/traffic/index.html /etc/mrtg/traffic.cfg

มาเข้าใจโครงสร้างของ indexmaker กัน

"--column=1 " << ส่วนนี้คือจำนวนคอลัมน์ของกราฟที่ต้องการแสดง

"--output=/var/www/mrtg/traffic/index.html" << "/var/www/mrtg/traffic/" คือตำแหน่งที่เราจำสร้าง index.html นั้นเอง

"/etc/mrtg/traffic.cfg" <<คือตำแหน่งที่อยู่ของไฟล์ config ทีนี้ลองเปิดดูกราฟใหม่โดยเรียก

http://192.168.200.210/mrtg/traffic

มันจะ index หน้ากราฟมาให้เราดูโดยที่เราไม่ต้องกรอกชื่อเต็มๆ ของกราฟตัวนั้น ซึ่งเรามาสามารถคลิกที่รูปกราฟเพื่อดูรายละเอียดได้ สังเกตได้ว่ากราฟที่เราเปิดดูจะยังไม่มีเส้นแสดงรายละเอียดนั้นเป็นเพราะเราเพิ่งสร้างกราฟนั้นเป็นครั้งแรก

ต่อไปก็มาตั้งเวลาให้ mrtg สร้างกราฟให้เราทุกๆ 5 นาทีโดยใช้ crontab เข้ามาช่วยซึ่งโดยปกติ crond จะเป็น service ที่ start เองเมื่อเราเปิดเครื่องอยู่แล้วแต่เพื่อกันความผิดพลาดก่อนอื่นลองมาตรวจสอบว่า crond ได้ทำงานอยู่หรือไม่

/etc/init.d/crond status

ถ้าหากมันรายงาน pid ก็แสดงว่า crond ทำงานอยู่ ต่อไปมาสร้างตารางเวลาให้ mrtg ทำงานทุกๆ 5 นาที

crontab -e

มันจะเปิดหน้าจอ vi มาให้เรากด i แล้วพิมพ์บรรทัดต่อไปนี้เข้าไป

*/5 * * * * /usr/bin/mrtg /etc/mrtg/traffic.cfg

พิมพ์เสร็จแล้วกด esc ตามด้วย :wq เพื่อ save และออกจาก cronedit ดูรายละเอียดที่เราพิมพ์ไปเมื่อกี้ด้วยคำสั่ง

crontab -l

จะแสดงรายละเอียดของงานทั้งหมดที่ตั้งไว้ใน crontab สั่งให้ crond เริ่มทำงานใหม่ด้วย

/etc/init.d/crond restart

ดังนั้นทุกๆ 5 นาที mrtg จะสร้างกราฟให้เราใหม่ซึ่งก็จะทำให้กราฟมีเส้นที่แสดงอย่างต่อเนื่อง เปิด
browser : http://192.168.200.210/mrtg/traffic/index.html มันจะ refresh ตัวเองทุกๆ 5 นาที

#################################################################
ตัวอย่างการใช้ mrtg ตรวจสอบการทำงานของ cpu
ให้สร้างไฟล์ /etc/mrtg/cpu.cfg โดยมีรายละเอียดดังนี้

WorkDir: /var/www/mrtg/traffic
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[myhost-cpu]:ssCpuIdle.0&laLoadInt.1:public@localhost
RouterUptime[myhost-cpu]: public@localhost
MaxBytes[myhost-cpu]: 10000
Title[myhost-cpu]: Idle CPU and Load average
PageTop[myhost-cpu]: <H1>Idle CPU and Load average</H1>
ShortLegend[myhost-cpu]: %
YLegend[myhost-cpu]: CPU and Load Utilization
Legend1[myhost-cpu]: Idle CPU
Legend2[myhost-cpu]: Load average
LegendI[myhost-cpu]: Idle
LegendO[myhost-cpu]: Load
Options[myhost-cpu]: gauge, nopercent, growright

ตัวอย่างการใช้ mrtg ตรวจสอบการใช้งาน memory
ให้สร้างไฟล์ /etc/mrtg/mem.cfg โดยมีรายละเอียดดังนี้

LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost
PageTop[localhost.mem]:<H1>Memory</H1>
WorkDir: /var/www/mrtg/traffic/
Options[localhost.mem]: nopercent,growright,gauge,noinfo
Title[localhost.mem]: Free Memory
MaxBytes[localhost.mem]: 1000000
KMG[localhost.mem]: k,M,G,T,P,X
YLegend[localhost.mem]: bytes
ShortLegend[localhost.mem]: bytes
LegendI[localhost.mem]: Free Memory:
LegendO[localhost.mem]:
Legend1[localhost.mem]: Free memory, not including swap, in bytes

ตัวอย่างการใช้ mrtg ตรวจสอบ tcp connection
ให้สร้างไฟล์ /etc/mrtg/tcp.cfg โดยมีรายละเอียดดังนี้

WorkDir: /var/www/mrtg/traffic/
LoadMIBs: /usr/share/snmp/mibs/TCP-MIB.txt
Target[myhost-tcpestab]: tcpCurrEstab.0&tcpCurrEstab.0:public@localhost
RouterUptime[myhost-tcpestab]: public@localhost
MaxBytes[myhost-tcpestab]: 1000000
Title[myhost-tcpestab]: TCP Current Establish
PageTop[myhost-tcpestab]: <H1>TCP Current Establish </H1>
ShortLegend[myhost-tcpestab]: conns
YLegend[myhost-tcpestab]: conns
LegendI[myhost-tcpestab]: Current:
LegendO[myhost-tcpestab]:
Legend1[myhost-tcpestab]: Current, numbers of connections
Legend2[myhost-tcpestab]:
Options[myhost-tcpestab]: nopercent, growright, gauge

ตัวอย่างการใช้ mrtg ตรวจสอบ uptime
ให้สร้างไฟล์ /etc/mrtg/uptime.cfg โดยมีรายละเอียดดังนี้

WorkDir: /var/www/mrtg/traffic/
Target[server-uptime]: `/etc/mrtg/mrtg_uptime.pl`
Colours[server-uptime]: LIGHT BLUE#7AAFFF,BLUE#1000FF,DARK GREEN#006000,VIOLET#FF00FF
Options[server-uptime]: gauge,noinfo, nopercent, growright, unknaszero
MaxBytes[server-uptime]: 200
Title[server-uptime]: server uptime
YLegend[server-uptime]: Days
ShortLegend[server-uptime]: Days
Legend1[server-uptime]: Uptime
Legend2[server-uptime]:
LegendI[server-uptime]:
LegendO[server-uptime]: uptime :
PageTop[server-uptime]:<H1>Uptime in days</H1>

และสร้างไฟล์ /etc/mrtg/mrtg_uptime.pl โดยมีรายละเอียดดังนี้

#!/usr/bin/perl
#Affichage de l'uptime en nombre de jours pour MRTG
$uptime = `uptime`;
$uptime =~ /up (.*?) day/;
$up = int($1);
print "$up\n";
print "$up\n";

จากนั้น chmod 7777 /etc/mrtg/mrtg_uptime.pl
อย่าลืมเพิ่มคำสั่งใน crontab ด้วย

crontab -e

*/5 * * * * /usr/bin/mrtg /etc/mrtg/traffic.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/cpu.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/mem.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/tcp.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/uptime.cfg


การสั่งให้สร้างหน้า index ให้มีกราฟหลายๆ รูปทำได้ดังนี้

indexmaker --column=2 --output=/var/www/mrtg/traffic/index.html /etc/mrtg/traffic.cfg /etc/mrtg/cpu.cfg /etc/mrtg/mem.cfg /etc/mrtg/tcp.cfg /etc/mrtg/uptime.cfg

วันศุกร์ที่ 8 มิถุนายน พ.ศ. 2550

การติดตั้ง Java SDK 1.6 และ Apache Ant 1.7 บน CentOS 4,Fedora Core (4-6)

สวัสดีครับ วันนี้นำเรื่องการติดตั้ง Java SDK กับ Apache Ant มาฝากกัน ก็เป็นการติดตั้งแบบง่ายๆ ไม่มีอะไรยุ่งยากน่ะครับ มาเริ่มกันเลยดีกว่า

การติดตั้ง Java

1. ขั้นแรกเราต้องดาวน์โหลด Java SDK มาจากเว็ปไซต์http://java.sun.com/javase/downloads/index.jsp ผมดาวน์โหลดเป็น .bin มาน่ะครับ

2. upload .bin ที่ดาวน์โหลดมาไปไว้ใน /usr/lib/jvm เมื่อ upload เสร็จจะได้ /usr/lib/jvm/jdk-6u1-linux-i586.bin

3. extract ไฟล์ /usr/lib/jvm/jdk-6u1-linux-i586.bin

#cd /usr/lib/jvm
#chmod +x jdk-6u1-linux-i586.bin
#./jdk-6u1-linux-i586.bin
#rm -rf jdk-6u1-linux-i586.bin

4. เราก็จะได้ /usr/lib/jvm/jdk1.6.0_01/

5. ทำการสร้าง symbolic link ไว้ที่ /etc/alternatives

#ln -s /usr/lib/jvm/jdk1.6.0_01/bin/java /etc/alternatives/java
ln: `/etc/alternatives/java': File exists << แสดงว่าเครื่องเรามี java ติดตั้งอยู่

วิธีแก้ปัญหานี้ให้ลบ symbolic link เก่าออกก็ใช้ได้แล้วครับ

#rm -rf /etc/alternatives/java

แล้วสั่งสร้าง symbolic link ใหม่อีกที

#ln -s /usr/lib/jvm/jdk1.6.0_01/bin/java /etc/alternatives/java

6. สร้าง symbolic link ไว้ใน /usr/bin/java เพื่อสะดวกในการใช้งาน

#ln -s /etc/alternatives/java /usr/bin/java

ถ้ามันมี error แสดงขึ้นมาว่า
ln: `/usr/bin/java': File exists ก็ไม่ต้องสนใจมันครับแสดงว่ามีการทำ link ไว้แล้ว

ทดลองสั่ง
#java -version
java version "1.6.0_01"
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)

ติดตั้ง Java SDK 1.6 สำเร็จแล้ว

การ Setup JAVA_HOME

1. สร้าง symbolic link ที่ใช้ไปยังไดเร็กทอรีที่ติดตั้ง Java ให้กับ JAVA_HOME

#ln -s /usr/lib/jvm/jdk1.6.0_01 /etc/alternatives/jdk

ทดสอบ

#ls -al จะแสดงรายละเอียดเหมือนกับ /usr/lib/jvm/jdk1.6.0_01

2. กำหนดตัวแปรโกลบอล JAVA_HOME

#nano /etc/profile

เพิ่ม 2 บรรทัดต่อไปนี้เข้าไปไว้บรรทัดสุดท้าย

export JAVA_HOME="/etc/alternatives/jdk"
export PATH="$PATH:$JAVA_HOME/bin"

3. logout ออกจากระบบ แล้วลอง login เข้ามาในระบบใหม่ จากนั้นสั่ง

#echo $JAVA_HOME จะได้
/etc/alternatives/jdk

เป็นอันเสร็จการตั้งค่า JAVA_HOME

การติดตั้ง Apache Ant

1. ดาวน์โหลด Apache Ant ได้จาก http://ant.apache.org/bindownload.cgi

#cd /usr/local
#wget http://mirror.in.th/apache/ant/binaries/apache-ant-1.7.0-bin.tar.gz

2. แตกไฟล์ apache-ant-1.7.0-bin.tar.gz

#tar zxvf apache-ant-1.7.0-bin.tar.gz
#rm -rf apache-ant-1.7.0-bin.tar.gz

3. สร้าง symbolic link ให้กับ ant

#ln -s /usr/local/apache-ant-1.7.0/bin/ant /etc/alternatives/ant
#ln -s /usr/local/apache-ant-1.7.0 /etc/alternatives/anthome
#ln -s /etc/alternatives/ant /usr/bin/ant

4. กำหนดตัวแปรโกลบอล ANT_HOME เหมือนกับ Java ด้านบน

#nano /etc/profile

เพิ่มบรรทัดต่อไปนี้เข้าไว้ด้านล่าง JAVA_HOME

export ANT_HOME="/etc/alternatives/anthome"

และเพิ่ม ANT_HOME เข้าไปไว้ใน PATH โดยแก้ไข

export PATH="$PATH:$JAVA_HOME/bin:$ANT_HOME"

5. logout และเข้าระบบใหม่

ตรวจสอบ ant

#ant -version
Apache Ant version 1.7.0 compiled on December 13 2006

ตรวจสอบ ANT_HOME

#echo $ANT_HOME
/etc/alternatives/anthome


เสร็จเรียบร้อยแล้วครับ ไม่ยากเลยใช่ไหมครับ

วันอังคารที่ 29 พฤษภาคม พ.ศ. 2550

มาทำความรู้จักกับ Super Proxy Script (Proxy Loadbalancing) กัน

ข้อมูลสรุปนี้ไม่พร้อมใช้งาน โปรด คลิกที่นี่เพื่อดูโพสต์

บันทึกการติดตั้ง Ubuntu Studio

วันนี้ตัดสินใจลง ubuntu studio บน notebook acer ของเรา
ก็ลงตาม step ครับมั่วๆ เข้าไว้ ติดปัญหาหลังจากลงเสร็จนิดนึง
คือ notebook ของผมมันไม่มี VGA นอก ใช้ intel graphic chip
ที่ติดมากับ notebook เลยทำให้เข้า x-windows ไม่ได้ตอนแรกคิดว่า
ทำอะไรผิดแน่ๆ ลงใหม่ไป 4-5 รอบแล้วชักเซ็งในจิต เลยไปถามพี่ google
ก็ได้คำตอบมาว่า driver default ของมันเป็นการ์ด vesa ก็เลยจัดการโหลด driver ของ intel มาใส่แล้วก็ไขไฟล์ /etc/X11/xorg.conf นิดหน่อยก็เข้า x-windows ได้ดีใจสุดๆ

มาดูวิธีการแก้ปัญหานี้กัน

1. sudo apt-get install xserver-xorg-video-intel

2. sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.org


3. sudo nano /etc/X11/xorg.conf

ในส่วนของ Section ¨Device¨ Identifier ¨Generic Video Card¨ ให้เปลี่ยน ¨vesa¨
เป็น ¨intel¨ และเพิ่มบรรทัด VideoRam 128000 เข้าไปดังตัวอย่างนี้

Section "Device"
Identifier "Generic Video Card"
Driver "intel"
BusID "PCI:0:2:0"
VideoRam 128000
EndSection
บันทึกและออกจาก nano

reboot สัก 1 รอบ
เย้ๆ ได้ x-windows มาใช้แล้ว

original : http://ubuntuforums.org/showthread.php?t=447491

วันจันทร์ที่ 28 พฤษภาคม พ.ศ. 2550

เทคนิคการทำให้เวลาบนเครื่อง Server ของเราเที่ยงตรงเสมอ

ไม่ทราบว่าหลายคนเคยสังเกตกันหรือเปล่าเวลาเราใช้ linux ไปนานๆ
ลองสั่ง date เพื่อดูเวลาจะพบว่าเวลาของเครื่อง Server ของเราเดินไม่ตรงกับเวลาจริงเท่าไหร่ลองเพิ่มคำสั่งใน crontab แบบนี้ดูน่ะครับ

crontab -e

จากนั้นพิมพ์บรรทัดด้านล่างเพิ่มเข้าไป

*/30 * * * * /usr/sbin/ntpdate -u clock.nectec.or.th

ทีนี้ทุกๆ 30 นาทีเครื่องของเราก็จะ synchronize เวลากับ ntp server ของ nectec แน่ใจได้เลยว่า server ของคุณจะมีเวลาที่เที่ยงตรงแน่นอนครับ

Written by mrGilL