แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - golfreeze

Pages: 1 ... 143 144 [145] 146
2161
RAID 1
RAID 1 มีอีกชื่อหนึ่งว่า disk mirroring จะประกอบไปด้วย harddisk 2
ตัวที่เก็บข้อมูลเหมือนกันทุกประการ
เสมือนการสำรองข้อมูล หาก harddisk ตัวใดตัวหนึ่งเกิดเสียหาย ระบบก็ยังสามารถดึงข้อมูลจาก harddisk
อีกตัวหนึ่งมาใช้งานได้ตามปกติ สำหรับ RAID controller ที่ถูกออกแบบมาเป็นอย่างดีแล้ว การเขียนข้อมูลลง
harddisk 2 ตัวในเวลาเดียวกัน จะใช้เวลาพอๆ กับการเขียนข้อมูลลง harddisk ตัวเดียว
ในขณะที่เวลาในการอ่านก็จะน้อยลง เพราะ RAID controller จะเลือกอ่านข้อมูลจาก harddisk ตัวไหนก็ได้
โดยหากมีคำสั่งให้อ่านข้อมูล 2 ชุดในเวลาเดียวกัน ตัว RAID controller
ก็สามารถประมวลผลคำสั่งเพื่ออ่านข้อมูลจาก harddisk ตัวหนึ่ง และคำสั่งอีกชุดนึงจาก harddisk
อีกตัวนึงก็ได้

จุดเด่นของ RAID 1 คือความปลอดภัยของข้อมูล ไม่เน้นเรื่องประสิทธิภาพและความเร็วเหมือนอย่าง RAID 0
แม้ว่าประสิทธิภาพในการอ่านข้อมูลของ RAID 1 จะสูงขึ้นก็ตาม

RAID 2
ใน RAID 2 นี้ ข้อมูลทั้งหมดจะถูกตัดแบ่งเพื่อจัดเก็บลง harddisk แต่ละตัวใน disk array โดยจะมี
harddisk ตัวหนึ่งเก็บข้อมูลที่ใช้ตรวจสอบและแก้ไขข้อผิดพลาด (ECC - Error Checking and Correcting)
ซึ่งเป็นการลดเปอร์เซ็นต์ที่ข้อมูลจะเสียหายหรือสูญเสียไป เมื่อมีการส่งข้อมูลไปบันทึกใน disk array
จะเห็นได้ว่ามี harddisk ที่เอาไว้เก็บค่า ECC โดยเฉพาะ ถ้าเกิดการปรากฏว่า harddisk
ตัวใดตัวหนึ่งเสียหาย ระบบก็จะสามารถสร้างข้อมูลทั้งหมดใน harddisk ตัวนั้นขึ้นมาได้ใหม่
โดยอาศัยข้อมูลจาก harddisk ตัวอื่นๆ และจากค่า ECC ที่เก็บเอาไว้ ซึ่งการทำ ECC นี้ส่งผลให้ harddisk
ทั้งระบบต้องทำงานค่อนข้างมากทีเดียว และ RAID 2 นั้นจะเห็นได้ว่าต้องใช้ harddisk
จำนวนมากในการเก็บค่า
ECC ซึ่งทำให้ค่อนข้างสิ้นเปลืองครับ

RAID 3
RAID 3 มีลักษณะที่คล้ายกับ RAID 2 แต่แทนที่จะตัดแบ่งข้อมูลในระดับ bit เหมือน RAID 2
ก็จะตัดเก็บข้อมูลในระดับ byte แทนและการตรวจสอบและแก้ไขข้อผิดพลาดของข้อมูล จะใช้ parity แทนที่จะเป็น
ECC ทำให้ RAID 3 มีความสามารถในการอ่านและเขียนข้อมูลได้อย่างรวดเร็ว เพราะมีการต่อ harddisk
แต่ละตัวแบบ stripe และใช้ harddisk ที่เก็บ parity เพียงแค่ตัวเดียวเท่านั้น แต่ถ้านำ RAID 3
ไปใช้ในงานที่มีการส่งผ่านข้อมูลในจำนวนที่น้อยๆ ซึ่ง RAID 3 ต้องกระจายข้อมูลไปทั่วทั้ง harddisk
จะทำให้เกิดปัญหาที่เรียกว่า คอขวด ขึ้นกับ harddisk ที่เก็บ parity
เพราะไม่ว่าข้อมูลจะมีขนาดใหญ่ขนาดไหน RAID 3 ต้องเสียเวลาไปสร้างส่วน parity ทั้งสิ้น
ยิ่งข้อมูลมีขนาดเล็กๆ แต่ parity ต้องสร้างขึ้นตลอด ทำให้ข้อมูลถูกจัดเก็บเสร็จก่อนการสร้าง parity
ทั้งระบบต้องมารอให้สร้าง parity เสร็จก่อน จึงจะทำงานต่อไปได้นั่นเอง

RAID 3 เหมาะสำหรับใช้ในงานที่มีการส่งข้อมูลจำนวนมากๆ เช่นงานตัดต่อ Video เป็นต้น

RAID 4
RAID 4 มีลักษณะโดยรวมเหมือนกับ RAID 3 ทุกประการ ยกเว้นเรื่องการตัดแบ่งข้อมูลที่ทำในระดับ block
แทนที่จะเป็น bit หรือ byte ซึ่งทำให้การอ่านข้อมูลแบบ random ทำได้รวดเร็วกว่า อย่างไรก็ตาม
ปัญหาคอขวดที่กล่าวใน RAID 3 ก็ยังมีโอกาสเกิดขึ้นเหมือนเดิมครับ

RAID 5
มีการตัดแบ่งข้อมูลในระดับ block เช่นเดียวกับ RAID 4 แต่จะไม่ทำการแยก harddisk
ตัวใดตัวหนึ่งเพื่อเก็บ
parity ในการเก็บ parity ของ RAID 5 นั้น จะกระจาย parity ไปยัง harddisk ทุกตัว
โดยปะปนไปกับข้อมูลปกติ
จึงช่วยลดปัญหาคอขวด ซึ่งเป็นปัญหาที่สำคัญใน RAID 3 และ RAID 4 คุสมบัติอีกอันหนึ่งที่น่าสนใจของ RAID
5 คือ เทคโนโลยี Hot Swap คือเราสามารถทำการเปลี่ยน harddisk
ในกรณีที่เกิดปัญหาได้ในขณะที่ระบบยังทำงานอยู่ เหมาะสำหรับงาน Server ต่างๆ ที่ต้องทำงานต่อเนื่อง

RAID 6
RAID 6 อาศัยพื้นฐานการทำงานของ RAID 5 เกือบทุกประการ แต่มีการเพิ่ม parity block เข้าไปอีก 1 ชุด
เพื่อยอมให้เราทำการ Hot Swap ได้พร้อมกัน 2 ตัว (RAID 5 ทำการ Hot Swap ได้ทีละ 1 ตัวเท่านั้น หาก
harddisk มีปัญหาพร้อมกัน 2 ตัว จะทำให้เสียทั้งระบบ) เรียกว่าเป็นการเพิ่ม Fault Tolerance ให้กับระบบ
โดย RAID 6 เหมาะกับงานที่ต้องการความปลอดภัยและเสถียรภาพของข้อมูลที่สูงมากๆ

RAID 7
RAID 7 อาศัยพื้นฐานการทำงานของ RAID 4 โดนเพิ่มคุณสมบัติบางอย่างเข้าไป เพื่อทำให้ harddisk
แต่ละตัวทำงานอิสระต่อกัน ไม่จำเป็นต้องรอให้ harddisk ตัวใดตัวหนึ่งทำงานเสร็จก่อน
(ซึ่งทำให้เกิดปัญหาคอขวดใน RAID 4) โดยการส่งข้อมูลแต่ละครั้ง จะทำการส่งผ่าน X-Bus
ซึ่งเป็นบัสที่มีความเร็วสูง RAID 7 ยังมีหน่วยความจำแคชหลายระดับในตัว RAID Controller
เพื่อแยกการทำงานให้อิสระต่อกัน โดยจะมี Real-Time Operating System อยู่ภายในส่วนที่เรียกว่า Array
Control Processor ทำหน้าที่ควบคุมการส่งข้อมูลบนบัส

RAID 7 เหมาะสำหรับใช้ในองค์กรขนาดใหญ่ เชื่อมต่อได้สูงสุดถึง 12 host 48 drives และราคาของระบบ RAID 7
ค่อนข้างที่จะสูงมาก ด้วย RAID 7 เป็นลิขสิทธิ์เฉพาะของบริษัท Storage Computer Corporation
ทำให้ผู้ใช้งาน RAID 7 ไม่สามารถปรับแต่งอะไรกับเครื่องเลย ทำให้ RAID 7 ไม่ค่อยได้รับความนิยมมากนัก

RAID 10
RAID 10 หรือ RAID 0+1 เป็นการผสมผสานระหว่าง RAID 0 และ RAID 1 เข้าด้วยกัน
ทำให้การเข้าถึงข้อมูลเป็นไปได้อย่างรวดเร็ว และมีการทำ mirror ข้อมูล (backup ข้อมูล) ไปด้วย
ข้อเสียของ RAID 10 คือการเพิ่มจำนวน harddisk ในอนาคตเป็นไปได้ยาก เพราะ harddisk แต่ละตัวมี mirror
เป็นของตัวเอง ยิ่งเพิ่ม harddisk เพื่อใช้งานก็ต้องเพิ่ม harddisk เพื่อ backup ไปด้วย เหมาะสำหรับ
Server ที่ต้องการความเร็วในการเข้าถึงข้อมูลค่อนข้างมาก และไม่ต้องการความจุมากนัก

RAID 53
RAID 53 มีอัตราความเร็วการเข้าถึงข้อมูลค่อนข้างสูง เพราะมีพื้นฐานการทำงานของ RAID 0 อยู่
และมีการป้องกันความเสียหายที่จะเกิดขึ้นได้ เหมือน RAID 3 ซึ่งแน่นอนว่ายังมีปัญหาคอขวดด้วย นอกจากนี้
RAID 53 ยังสามารถทำ Hot Swap ได้เหมือนใน RAID 5 ครับ

2162
RAID ที่นิยมกันก็มี 0 , 1 , 5 , 0+1 , 1+0 เท่านั้นเอง บางคนอาจสงสัยว่า มีด้วยเหรอ RAID 1+0
อ่านต่อกันนะครับ

คำอธิบาย Logic Drive หมายถึง Drive ที่สร้างขึ้นมาจาก RAID นะครับ

RAID 0
RAID 0 เป็นแบบที่ง่ายและเป็นพื้นฐานที่สุดเลย คือ ทำการรวม HDD 2 ตัว (หรือมากกว่า) ให้กลายเป็น HDD
ตัวเดียวกัน (เรียกว่า Logic Drive) เช่น ถ้ามี HDD 40G 2 ตัว ตัวแรกจะเป็น C อีกตัวก็จะเป็น D
เมื่อเราแปลงเป็น RAID 0 เนื้อที่ของทั้ง 2 ตัวก็จะรวมกันเป็น Drive เดียวกัน ชื่อ C มีขนาด 80G
โดยเมื่อแปลงเป็น RAID 0 แล้ว OS และโปรแกรมต่างๆ ก็จะมอง Drive ใหม่นี่ เสมือนเป็น Drive
เดีวยวกันที่สามารถอ่านเขียนข้อมูลต่างๆ ได้ตามปกติ
ข้อดี คือ ทำให้การอ่านหรือเขียนข้อมูลเร็วขึ้นมาก เพราะมีหัวอ่าน/เขียนข้อมูลเพิ่มมากขึ้น (ในระบบ
SCSI
นะครับ ถ้า IDE หัวอ่านเพิ่มขึ้น ก็ไม่เร็วขึ้นหรอก ไปอ่านที่ อันแรกก็ได้ครับ)
และมันยังขยายเนื้อที่สำหรับเก็บข้อมูลได้ง่ายขึ้นด้วย
ข้อเสีย เนื่องจากมันไม่ได้ทำการสำรองข้อมูลเลย หรือแม้แต่ Parity Bit มันก็ไม่ได้ทำ (แม้แต่นิดเดียว)
ถ้า HDD ตัวไหนเสีย มันจะทำให้ Logic Drive ที่เราสร้างขึ้น เสียไปทั้งหมด ข้อมูลของเราก็จะหมดไปด้วย
(เศร้า)

RAID 1
RAID 1 ต่างจาก RAID 0 แบบว่า หน้ามือเป็นหลังมือเลย เนื่องจาก RAID 1 จะเก็บข้อมูลทั้งหมดลง HDD
ตัวแรก
เหมือนการใช้งานทั่วๆ ไป แต่จะมี HDD ตัวที่สองเพิ่มเข้ามา เราเรียก HDD ตัวนี้ว่า MIRRORING หรือ
DUPLEXED โดยที่ HDD ตัวทั่สองนี้ จะทำการสำรองข้อมูลจากตัวแรก เพื่อป้องกันการสูญหายของข้อมูล
โดยมีข้อกำหนดว่า HDD ทั้ง 2 ตัว ต้องขนาดเท่ากันพอดี ถ้าเป็นไปได้ ควรจะเป็นยี่ห้อ
และรุ่นเดียวกันด้วย
ข้อดี อย่างที่เห็นล่ะครับ ข้อมูลจะถูกสำรองไว้ตลอดเวลา ไม่ต้องกลัวว่าจะหายเลย ถ้า HDD ตัวไหนเสีย
อีกตัวก็จะขึ้นมาทำงานแทนทันที ถ้าเป็น Server ที่มีระบบ Hot Swap เราสามารถถอด HDD ตัวที่เสีย
ไปเปลี่ยน แล้วเอาตัวใหม่มาใส่ได้ทันที โดยไม่ต้องปิดเครื่องเลย เมื่อเราเอา HDD ตัวใหม่มาใส่
ระบบก็จะทำการสำรองข้อมูลไปที่ HDD ตัวใหม่เอง โดยอัตโนมัติ และข้อดีอีกอย่างคือ
มันสามารถเลือกที่จะอ่านข้อมูลจาก HDD ตัวไหนก็ได้ ทำให้มันอ่านข้อมูลได้เร็วขึ้น
ข้อเสีย เนื่องจากมันต้องเขียนข้อมูลลง HDD ถึง 2 ตัวต่อข้อมูล 1 ชุด
ทำให้ภาระในการเรียนข้อมูลมีมากขึ้นเป็น 2 เท่าเลย ทำให้เวลาในการเขียนข้อมูลมากกว่าปกติ
และระบบนี้ใช้เงินเยอะพอสมควร เพราะต้องใช้ HDD 2 ชุด ต่อข้อมูล 1 ชุด

RAID 0 + 1
RAID 0+1 คือการนำข้อดีของ RAID 0 และ RAID 1 มารวมกัน ทำให้มีการรวมเนื้อที่จาก HDD หลายๆ
ตัวเข้าด้วยกัน ละมีการทำสำเนาไปพร้อมกันด้วย โดยต้องนำ HDD มาแปลงเป็น RAID 0 จำนวน 2 ชุดก่อน
ทำให้ได้
Logic Drive ที่มีเนื้อที่ของ HDD มารวมกัน แล้วจึงสร้าง RAID 1 ขึ้นมาอีกทีจาก Logic Drive ทั้ง 2 ชุด
ข้อเสีย เปลือง HDD อย่างมาก และถ้า HDD ตัวไหนเสียไป อาจทำให้ Logic Drive เสีย และเจ้งทั้งระบบ

RAID 1 + 0
RAID 1+0 มีการทำงานเหมือนกับ RAID 0+1 เพียงแต่จะเริ่มสร้าง RAID 1 มาก่อน 2 ชุด
เพื่อทำการสำรองข้อมูลกันก่อน แล้วค่อยสร้าง RAID 0 ขึ้นมาอีกที เพื่อรวมข้อมูลทั้งหมดเข้าด้วยกัน
วิธีนี้เป็นที่นิยมมากกว่า RAID 0+1 อีกนะ (ผมก็ใช้ตัวนี้)
ข้อดี ถ้า HDD ตัวไหนเสีย จะไม่ทำให้ Logic Drive เสียไปด้วย
ข้อเสีย เปลือง HDD มากกว่า RAID 0+1 อีก ;-(

RAID 5
RAID 5 ได้นำข้อดีของ RAID แบบต่างๆ มารวมไว้ในตัวเอง คือ ราคา ประสิทธิภาพ
และความสามารถในการป้องกันข้อมูลสูญหาย เพราะ RAID แบบต่างๆ จะมีข้อดีไม่ครบทั้งหมด
คืออย่างมากก็ได้แค่
2 ใน 3 อย่าง RAID 1+0 ประสิทธิภาพดี ป้องกันข้อมูลได้ แต่แพงโคตร RAID 5 ต้องการ HDD 3 ตัวในการทำงาน
โดยนำเนื้อที่ของ HDD แต่ละตัวมาเก็บรวมกันเป็น 1 Logic Drive เหมือนการทำงานของ RAID 0 แล้วสร้าง
Parity Bit เพื่อใช้xxx้ข้อมูลของแต่ละ Drive ขึ้นมาโดยแยกออกไปเขียนใน Drive อื่นๆ เช่น Parity Bit
ของ
HddA จะนำไปไว้ที่ HddC ของ HddC ก็จะนำไปไว้ที่ HddB ส่วนของ HddB ก็จะนำไปไว้ที่ HddA วนกันไป 555
ข้อดี ข้อมูลไม่หายแน่นอน เพราะมีการเก็บ Parity ไว้ใน HDD แต่ละตัว แล้วความเร็วในการอ่านข้อมูล
ก็เยอะมากๆ ด้วย เนื่องจากมี HDD ถึง 3 ตัวนี่
ข้อเสีย เขียนข้อมูลได้ช้ามากๆ เนื่องจากต้องเขียนข้อมูลแล้ว ยังต้องไปเขีนยน Parity อีก
แล้วยังต้องใช้
HDD ถึง 3 ตัว ซึ่งเปลืองมาก (แต่ก็น้อยกว่า RAID 1+0) และอัตราความเร็วในการเขียนข้อมูลก็ช้ามากๆ

2164
###Freebsd style

#cfgmaker
/usr/local/bin/cfgmaker --global "options[_]: growright,bits" --global
WorkDir:/usr/local/www/apache22/data/mrtg --output=/usr/local/etc/mrtg/mrtg.cfg public@10.17.200.22

#indexmaker
/usr/local/bin/indexmaker /usr/local/etc/mrtg/mrtg.cfg --columns=1 --output
/usr/local/www/apache22/data/mrtg/index.html

#run 3 ครั้ง
env LANG=C /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

2165
เกิด error

Can't locate SNMP_util.pm in @INC (@INC contains: /usr/local/bin/../lib/mrtg2 /usr/local/bin
/usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach
/usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach
/usr/local/lib/perl5/5.8.8 .) at /usr/local/bin/cfgmaker line 105.

ใน Freebsd ขึ้นมา แก้โดยลง package ข้างล่างเพิ่มครับ

# cfgmaker public@127.0.0.1
Can't locate SNMP_util.pm in @INC (@INC contains: /usr/local/bin/../lib/mrtg2 /usr/local/bin
/usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach
/usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach
/usr/local/lib/perl5/5.8.8 .) at /usr/local/bin/cfgmaker line 105.

Turned out SNMP_util is missing and required a quick install of SNMP_Session to make cfgmaker work.

cd /usr/ports/*/p5-SNMP_Session
make install clean

2166
ถ้าขึ้น error อย่างนี้

[root@mrtg]# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
Thursday, 21 January 2010 at 9:37: ERROR: Target[cpu][_IN_]
'.1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2: public@127.0.0.1' (warn): (Missing
operator before ?)
Thursday, 21 January 2010 at 9:37: ERROR: Target[cpu][_OUT_]
'.1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2: public@127.0.0.1' (warn): (Missing
operator before ?)
Thursday, 21 January 2010 at 9:37: ERROR: Target[mem][_IN_]
'.1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0: public@127.0.0.1' (warn): (Missing
operator before ?)
Thursday, 21 January 2010 at 9:37: ERROR: Target[mem][_OUT_]
'.1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0: public@127.0.0.1' (warn): (Missing
operator before ?)
Thursday, 21 January 2010 at 9:37: ERROR: Target[server.newconns][_IN_]
'tcpPassiveOpens.0&tcpActiveOpens.0: public@127.0.0.1' (warn): (Missing operator before
?)
Thursday, 21 January 2010 at 9:37: ERROR: Target[server.newconns][_OUT_]
'tcpPassiveOpens.0&tcpActiveOpens.0: public@127.0.0.1' (warn): (Missing operator before
?)
Thursday, 21 January 2010 at 9:37: ERROR: Target[server.estabcons][_IN_]
'tcpCurrEstab.0&tcpCurrEstab.0: public@127.0.0.1' (warn): (Missing operator before ?)
Thursday, 21 January 2010 at 9:37: ERROR: Target[server.estabcons][_OUT_]
'tcpCurrEstab.0&tcpCurrEstab.0: public@127.0.0.1' (warn): (Missing operator before ?)

ลองเช๊คดู syntax ของ config ด้วยครับว่ามี เว้นวรรคตรง : public@127.0.0.1 ถ้ามี ก็ลบ space bar ไป 1
ช่องครับให้ค่ามันติดกัน

เป็น :public@127.0.0.1 แล้วสั่งรัน command ใหม่
[root@mrtg]# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
3 ครั้งครับ

2167
### Load Average ###
Target[cpu]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:public@127.0.0.1

ไม่มี space bar นะ ต้องต่อกันนะครับ ต้องเช๊คที่ config ด้วย ไม่งั้นจะ error ครับผม

2168
เพิ่มเติม ถ้า graph ของ traffic ออกมา แค่ 10M เป็นเพราะ ค่า default มัน เป็น ethernet ธรรมดา support
แค่ 10M แต่ถ้าเว็บท่าน มี traffic มากกว่า 10 M ก็ แก้ไขตามนี้ น่ะครับ

จัดการ สร้าง สร้าง config ใหม่โดย

#cfgmaker --global 'options[_]: growright,bits' --global 'WorkDir: /home/golf/xxx'
--output=/etc/mrtg.cfg public@127.0.0.1

แก้ไขไฟล์ /etc/mrtg.cfg
MaxBytes[127.0.0.1_2]: 1250000

เพิ่ม "0" อีกตัวน่ะครับ เพราะจะได้ support กับ fast ethernet

MaxBytes[127.0.0.1_2]: 12500000

สั่งสร้าง index.html ใหม่

#indexmaker /etc/mrtg.cfg --columns=1 --output /home/golf/xxx/index.html

ใน debian สั่ง mrtg 3 ครั้ง
#mrtg
#mrtg
#mrtg

แค่นี้ ก็ เรียบร้อย ครับ อิอิ

2169
ใช้ OS Debian 3.1
1.สั่งโหลด จาก mirror ในไทยครับ
โดยเพิ่มไปที่ /etc/apt/sources.list
แล้วสั่ง apt-get update แล้ว

#aptitude install snmpd
#aptitude install mrtg

แล้วมา config

#/etc/snmp/snmpd.conf

ให้เอา # ใส่หน้า คำสั่ง

com2sec paranoid default public

แล้วเอาเครื่องหมาย # ออกจากคำสั่ง

com2sec readonly default public

แล้วสั่ง daemon start

#/etc/init.d/snmpd restart

แล้วต่อไปมา config ไฟส์ mrtg บ้าง

แล้วพิมพ์ ตามนี้เพื่อทำการ สั่งให้สร้าง config


#cfgmaker --global 'options[_]: growright,bits' --global 'WorkDir: /home/golf/xxx' --output=/etc/mrtg.cfg public@127.0.0.1

การเพิ่มกราฟ นั้นไม่จำต้องลบไฟส์ในห้อง DocumentRoot ออกก็ได้น่ะครับแต่เพิ่มกราฟ establish กับ tcp
connection ดังนี้ในไฟส์ดังนี้ (ผมใช้เป็น OS Debian 3.1 ครับ)

#vi /etc/mrtg,cfg

โดยเพิ่ม

### Load Average ###
Target[cpu]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2: public@127.0.0.1
MaxBytes[cpu]: 100
Unscaled[cpu]: dwmy
Options[cpu]: gauge, absolute, growright, noinfo, nopercent
YLegend[cpu]: CPU Load(%)
ShortLegend[cpu]: (%)
LegendI[cpu]:   CPU System
LegendO[cpu]:   CPU User
Title[cpu]: CPU Analysis
PageTop[cpu]: <H1>CPU Analysis</H1>

### Memory Free ###
Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0: public@127.0.0.1
MaxBytes1[mem]: 1030288
MaxBytes2[mem]: 1052216
Unscaled[mem]: dwmy
Options[mem]: gauge, absolute, growright, noinfo
YLegend[mem]: Memory Free
ShortLegend[mem]: Bytes
kilo[mem]: 1024
kMG[mem]: k,M,G,T,P
LegendI[mem]: Real
LegendO[mem]: Swap
Legend1[mem]: (MBytes)
Legend2[mem]: (MBytes)
Title[mem]: Memory Analysis
PageTop[mem]: <H1>Memory Analysis</H1>

### New TCP Connection Monitoring (per minute) ###
Target[server.newconns]: tcpPassiveOpens.0&tcpActiveOpens.0: public@127.0.0.1
Title[server.newconns]: Newly Created TCP Connections
PageTop[server.newconns]: <H1>New TCP Connections</H1>
MaxBytes[server.newconns]: 10000000000
ShortLegend[server.newconns]: c/s
YLegend[server.newconns]: Conns / Min
LegendI[server.newconns]: In
LegendO[server.newconns]: Out
Legend1[server.newconns]: New inbound connections
Legend2[server.newconns]: New outbound connections
Options[server.newconns]: growright,nopercent,perminute

### Established TCP Connections ###
Target[server.estabcons]: tcpCurrEstab.0&tcpCurrEstab.0: public@127.0.0.1
Title[server.estabcons]: Currently Established TCP Connections
PageTop[server.estabcons]: <H1>Established TCP Connections</H1>
MaxBytes[server.estabcons]: 10000000000
ShortLegend[server.estabcons]:
YLegend[server.estabcons]: Connections
LegendI[server.estabcons]: In
LegendO[server.estabcons]:
Legend1[server.estabcons]: Established connections
Legend2[server.estabcons]:
Options[server.estabcons]: growright,nopercent,gauge

และสุดท้ายก็สั่ง คำสั่งข้างล่างนี้เพื่อให้แสดง output ออกมาที่ไฟส์ไหนถ้ารูปไม่ออกอาจเกิดจากการระบุ
output ผิดครับ

#indexmaker /etc/mrtg.cfg --columns=1 --output /home/golf/xxx/index.html

แล้วสั่ง mrtg 3 ครั้งสำหรับ Debian ครับ

#mrtg
#mrtg
#mrtg

แต่ถ้าเป็น ubuntu 6.06ให้สั่ง

#env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
#env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
#env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

3 ครั้งน่ะครับ

จะได้กราฟตามนี้ครับที่ ===> http://www.saiyaithai.org/mrtg

2170
สำหรับ hard link ที่ใช้กัน ส่วนใหญ่ จะเป็น

เป็นการสร้างเพื่อ ชี้มาที่ inode เดียวกัน

ไฟล์ A---->inode 0001
สร้างhard link ไปที่ไฟล์ B และ ไฟล์ C ชี้ไปที่ ไฟล์ A ซึ่งมี inode = 0001
ไฟล์ B ก็ชี้ไปที่ inode 0001
ไฟล์ C ก็ชี้ไปที่ inode 0001

ดังนั้น
-ถ้าเราทำการแก้ไข ไฟล์ต้นฉบับ (A) ไปก็จะส่งผลกระทบต่อไฟล์ที่เชื่อมโยง (B) และ (C) ด้วย เพราะมี inode
เดียวกัน
-ถ้าเราทำการลบ ไฟล์ A ไป ไฟล์ C ก็ยังเข้าได้ผ่านไฟล์ B ได้ เพราะชี้ไปที่ inode เดียวกัน
-แต่ถ้าเราลบไฟล์ B ไปอีก ไฟล์ C จะเข้าไม่ได้ เพราะมันไม่ไฟล์ให้เข้าถึงอีก

แต่ข้อเสีย ของ hard link คือใช้งานกับ directory ไม่ได้ หรือข้าม partition ไม่ได้
เหมาะกับการเอาไปเป็นข้อมูล backup
ที่เป็นไฟล์สำคัญๆและป้องกันข้อมูลสูญหายมากกว่า
----------------------------------------------------------------------------------------------

Soft link (symlink) เหมือนการทำ short cut ซึ่งจะทำการสร้าง inode ออกมาจาก ตัว inode หลักนั้นๆ

เมื่อมีการสร้างไฟล์ A และสร้าง soft link ไฟล์ B และ C
ก็จะทำการสร้าง inode ของไฟล์นั้นเข้ามาใหม่ ทำให้ inode ไม่ซ้ำกับไฟล์ต้นฉบับ

ซึ่งถ้า มีไฟล์ symlink_file อยู่ต้องการสร้าง soft link ไปที่ไฟล์หลัก
soource_file จะทำได้โดย
#ln -s source_file symlink_file
ถ้าเราทำการลบไฟล์ source_file ไปก็จะทำให้เข้าไปใช้งานไฟล์ symlink_file ไม่ได้
เพราะว่า inode หลักที่อ้างถูกลบไปแล้ว

แต่ข้อดีของ soft link คือสามารถทำผ่าน partition ได้ครับ

ถ้ามีปัญหาสงสัย ก็โฟสไว้ได้น่ะครับ
golfreeze[at]packetlove.com

2171
ฟอร์แมตแรกที่จะแนะนำก็คือ gzip ย่อมาจาก GNU zip คำสั่งก็ตรงไปตรงมาครับ ก็คือ

gzip filename.txt

หลังจากกด enter ไปไฟล์ filename.txt ของเราจะหายไป แล้วกลายร่างเป็น filename.txt.gz เสียแล้ว
แต่ใครยังอยากเก็บไฟล์ต้นฉบับไว้อยู่ก็ให้ใส่ -c เข้าไปซึ่งเป็นการบอกให้ gzip แสดงเข้ามาออกทาง
standard output จากนั้นเราก็ทำการเปลี่ยนทิศทางไปยังไฟล์ที่เราต้องการ

gzip -c filename.txt > filename.txt.gz

ผลลัพธ์ที่ได้ก็จะเหมือนกับคำสั่งแรกต่างกันที่ต้นฉบับเรายังอยู่ ไม่ไปไหน
และถ้าเราอยากให้ไฟล์ที่ได้บีบกันแบบสุดๆ ก็ให้ใส่ -9 แต่ถ้าอยากได้ความเร็วก็ใส่ -1
จริงแล้วเราสามารถใช้ค่าได้ตั้งแต่ -1 ถึง -9 อย่างเช่น

gzip -9 filename.txt

แต่ถ้าใครอยากใช้ -9 ตลอดแต่ไม่อยากพิมพ์ทุกครั้งก็ให้เซ็น environment variable ดังนี้

export GZIP="-9"

อะพอเราบีบเสร็จ ก็ต้องทำการแตกไฟล์ ก็ทำโดย

gunzip filename.txt.gz

และเหมือนเดิมไฟล์ .gz จะหายไป ถ้าไม่อยากให้หายก็ต้องทำอย่างนี้

gzip -c filename.txt.gz > filename.txt

เป็นยังไงสำหรับฟอร์แมตแรก ใช้ไม่อยากเลย อะฟอร์แมตที่สองที่จะแนะนำก็คงเป็น bzip2 นั่นเอง
ซึ่งอันนี้มาทีหลัง gzip แต่บีบได้เล็กกว่า รูปแบบคำสั่งก็จะคล้ายกัน ดังนี้

bzip2 filename.txt

เราก็จะได้ filename.txt.bz2 มา แต่ไฟล์ต้นฉบับก็จะหายไป
ถ้าไม่อยากให้หายไม่ต้องทำการเปลี่ยนทิศทางให้เมื่อยเหมือน gzip เพราะมี option -k มาให้ k ย่อมาจาก
keep ก็ใช้ง่ายๆ ดังนี้

bzip2 -k filename.txt

และเหมือนกันกับ gzip ซึ่งมีระดับการบีบอัด ตั้งแต่ 1 ถึง 9 ซึ่ง 1 จะใช้เวลาน้อยที่สุด ส่วน 9
จะบีบอัดได้สูงสุด

bzip2 -9 filename.txt

ไหนๆ ก็เหมือนกันมาเยอะแล้ว ก็ต้องกำหนดค่า default ได้โดย

export BZIP2="-9"

และถ้าเราอยากแตกไฟล์ออกก็ใช้คำสั่ง

bunzip2 filename.txt.bz2

ซึ่งไฟล์ .bz2 ก็จะหายไป ถ้าไม่อยากให้หายก็ใส่ -k ไปด้วยน้า

มาถึงคำสั่งสำคัญอีกคำสั่ง คือ คำสั่ง tar คำสั่งนี้ไม่ได้มีการบีบอัดใดๆ แต่จะเป็นการรวมไฟล์หลายๆ
ไฟล์ไว้เป็นไฟล์เดียวกัน รูปแบบคำสั่งก็จะเป็นดังนี้

tar -cvf test.tar filename.txt mydir

คำสั่งขั้นบนจะเป็นการนำไฟล์ filename และไดเร็กทอรี่ mydir มา tar แล้วเก็บไว้ในชื่อไฟล์ text.tar โดย
option c หมายถึงเป็นการสร้างไฟล์ tar -v เป็นการแสดงรายละเอียดขณะทำงาน และ -f
หมายถึงระบุชื่อไฟล์ที่เราต้องซึ่งก็คือ test.tar

อะและถ้าเราต้องการ extract ไฟล์ก็ทำได้โดย

tar -xvf test.tar

ซึ่ง -x หมายถึงการ extract นั่นเอง ขั้นตอนต่อไปจะเป็นการรวมพลังกันระหว่างการบีบอัดและการ tar
ถ้าเราต้องการรวมพลัง tar กับ gzip ก็ใช้คำสั่ง

tar -cvzf test.tar.gz filename.txt mydir

ซึ่งเราจะ tar ไฟล์ filename.txt และไดเร็กทอรี่ก่อน แล้วจึงทำการบีบอัดด้วย gzip แต่ถ้าใครชอบ bzip2
ก็ให้ใช้คำสั่

tar -cvjf test.tar.bz2 filename.txt mydir

จะเห็นว่าถ้าเป็น gzip เราจะใช้ option -z แต่ถ้าเป็น bzip2 จะเป็น -j อะดังนั้นถ้าเราต้องการ extract
ก็ให้ใช้คำสั่ง สำหรับ gzip

tar -xvzf test.tar.gz

และ bzip2 ก็จะเป็น

tar -xvjf test.tar.gz

เรียบร้อยครับ เป็นยังไงใช้กันไม่อยากครับ ตรงไปตรงมา ไปและ



Special Thank = http://www.logicdream.com

2172
มีปัญหาสั่งรัน crontab ไม่ได้

ให้เช๊คที่ ไฟล์

/etc/security/access.conf
comment ปิดที่ -:ALL EXCEPT root:LOCAL

ให้ comment เปิดที่ + : ALL : cron crond

แล้วลองสั่งรัน ใหม่ดูน่ะครับ

เพราะว่า มันกันไม่ให้ใครรัน crontab แม้จะเป็น root ก็ตาม

2173
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (sames as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".

EXAMPLE CRON FILE

# use /bin/sh to run commands, overriding the default set by cron
SHELL=/bin/sh
#
# mail any output to `paul', no matter whose crontab this is
MAILTO=paul
#
# run five minutes after midnight, every day
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
#
# run at 2:15pm on the first of every month -- output mailed to paul
15 14 1 * * $HOME/bin/monthly
#
# run at 10 pm on weekdays, annoy Joe
0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"
5 4 * * sun echo "run at 5 after 4 every sunday"

2174
ปกติเราสามารถตั้งค่า MAILTO ใน crontab

เพื่อที่จะ ส่ง email ไปยังผู้ดูแลระบบได้ เมื่อรันคำสั่ง crontab

โดยแก้ที่

vi /etc/crontab

แก้ที่ MAILTO=root
เป็น
MAILTO=golfreeze[at]packetlove.com

ได้ครับ

เท่านี้ คำสั่ง crontab ที่รันก็ส่ง output ไปยัง email คนนั้นแล้วครับ

2175
สำหรับวิธีการให้ส่งเมล ไปถึง user ผู้รันคำสั่งนั้นๆ วิธีการคือ

ก็ไม่ต้องใส่คำสั่ง นี้ น่ะครับ
>/dev/null 2>&1

แต่ถ้าจะ disable email ก็ให้ใส่ คำสั่งนี้ ไปด้วยท้าย คำสั่ง crontab เช่น

*/5 * * * * root mrtg /etc/mrtg.cfg >/dev/null 2>&1
ครับ

Pages: 1 ... 143 144 [145] 146