Tag: Linux

การ Config SAN Multipath I/O บน Ubuntu Server

สวัสดีครับ วันนี้จะมาแนะนำวิธีการคอนฟิก Multipath I/O สำหรับ SAN Storage บน Ubuntu Server กันครับ
อะไรคือ Multipath ตามความเข้าใจของผมคือ สมมติว่าเราสร้าง Volume หรือ LUN ไว้บน Storage ไว้ 1 Volume/LUN แต่เรา Present Volume หรือ LUN นั้นออกมาจาก Port FC 2 Port เพื่อป้องกันการ Fail ของอุปกรณ์ จะทำให้เครื่อง Server เห็น Volume/LUN นั้นเป็น Disk 2 ลูก ทั้งที่จริงแล้วมันคือ Volume/LUN เดียวกัน ดังนั้นเราจำเป็นต้องทำการ Map ให้เครื่อง Server ของเราเห็น Disk เพียงลูกเดียวด้วยการทำ Multipath

ในตัวอย่างนี้ผมใช้ Ubuntu 10.04.3 LTS Server กับ SAN Storage HP MSA P2000 นะครับ

สำหรับ Ubuntu นั้นมี Package ตัวนึงที่ชื่อ multipath-tools ซึ่งเราสามารถติดตั้งด้วยใช้คำสั่ง

root@server1:~# apt-get install multipath-tools

ติดตั้งเสร็จแล้วก็ทำการสร้างไฟล์ /etc/multipath.conf โดยจะคำสั่ง vi สร้างไฟล์ขึ้นมาใหม่หรือจะใช้ cat ตามตัวอย่างด้านล่างก็ได้

root@server1:~# cat <<EOF > /etc/multipath.conf
defaults {
       user_friendly_names     yes
       path_grouping_policy    group_by_serial
       path_checker            tur
}

blacklist {
       devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
       devnode "^sda"
       # blacklist any other locally attached block devices here
}
EOF

จากนั้นสั่ง restart service multipath-tools สักรอบ

root@agoldap:~# /etc/init.d/multipath-tools restart

ดูผลด้วยคำสั่ง multipath -lv

root@server1:~# multipath -lv
mpath0 (3600c0ff000134ec320b7334f02000000) dm-0 ,
[size=149G][features=0][hwhandler=0]
\_ round-robin 0 [prio=0][active]
 \_ #:#:#:#  -   #:#   [active][undef]
\_ round-robin 0 [prio=0][enabled]
 \_ 0:0:1:14 sdb 8:16  [active][undef]
\_ round-robin 0 [prio=0][enabled]
 \_ 1:0:0:14 sdc 8:32  [active][undef]
\_ round-robin 0 [prio=0][enabled]
 \_ 1:0:1:14 sdd 8:48  [active][undef]

ผมก็จะได้ประมาณนี้ โดยเวลาเราจะอ้างถึง raw disk ก็อ้างชื่อเป็น mpath0 ซึ่งอยู่ใน /dev/mapper/mpath0
ลองทดสอง fdisk กันเลย

root@server1:~# fdisk /dev/mapper/mpath0

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/mapper/mpath0: 160.0 GB, 160000000000 bytes
255 heads, 63 sectors/track, 19452 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8ca1da99

              Device Boot      Start         End      Blocks   Id  System
/dev/mapper/mpath0p1   *           1       19452   156248158+  83  Linux

Command (m for help): d
Selected partition 1

Command (m for help): p

Disk /dev/mapper/mpath0: 160.0 GB, 160000000000 bytes
255 heads, 63 sectors/track, 19452 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8ca1da99

              Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19452, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-19452, default 19452):
Using default value 19452

Command (m for help): p

Disk /dev/mapper/mpath0: 160.0 GB, 160000000000 bytes
255 heads, 63 sectors/track, 19452 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8ca1da99

              Device Boot      Start         End      Blocks   Id  System
/dev/mapper/mpath0p1               1       19452   156248158+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

ดู Partition ที่เราสร้างโดยการเข้าไปเช็คที่ /dev/mapper

root@server1:~# cd /dev/mapper/
root@server1:/dev/mapper# ls -l
total 0
crw-rw---- 1 root root  10, 59 2012-05-15 14:14 control
brw-rw---- 1 root disk 251,  0 2012-05-15 15:25 mpath0
brw-rw---- 1 root disk 251,  1 2012-05-15 15:25 mpath0-part1
root@server1:/dev/mapper#

Partition ที่เราเพิ่งสร้างคือ mpath0-part1
ทีนี้ลองมา format มันเป็น ext4 กัน

root@server1:~# mkfs.ext4 /dev/mapper/mpath0-part1
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
9773056 inodes, 39062039 blocks
1953101 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
1193 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
	4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

เสร็จแล้วก็ลอง mount ไปใช้ดู

root@server1:~# mount /dev/mapper/mpath0-part1 /backup
root@server1:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/cciss/c0d0p1     130G  2.1G  121G   2% /
none                  3.9G  236K  3.9G   1% /dev
none                  4.0G     0  4.0G   0% /dev/shm
none                  4.0G  104K  3.9G   1% /var/run
none                  4.0G     0  4.0G   0% /var/lock
none                  4.0G     0  4.0G   0% /lib/init/rw
none                  130G  2.1G  121G   2% /var/lib/ureadahead/debugfs
/dev/mapper/mpath0-part1
                      147G  188M  140G   1% /backup

หากต้องการจะให้มัน mount เองทุกครั้งตอนเปิดเครื่องก็เข้าไปแก้ไขไฟล์ /etc/fstab เองนะครับ
เป็นอันเสร็จครับ

แหล่งข้อมูล : https://www.sit.auckland.ac.nz/Configuring_SAN_access_with_Linux_multipath

Leave a Comment May 15, 2012

วิธีแปลง Unix Time (POSIX Time) เป็นเวลาที่คนธรรมดาอ่านรู้เรื่องบน Linux

วันนี้เป็น Tip สั้นๆ ครับมาไวไปไว สำหรับใครที่ไปเจอ Unix time แล้วอ่านไม่รุ้เรื่องว่ามันคืออะไรลองเอาคำสั่งนี้ไปใช้ดูครับ
ใช้คำสั่ง date -d @xxxxxxxxxx

root@agoldap:~# date -d @xxxxxxxxxx

โดยที่ xxxxxxxxxx เป็น unix time ที่เราต้องการจะ convert

ตัวอย่าง

root@agoldap:~# date +%s 1332144867 root@agoldap:~# root@agoldap:~# root@agoldap:~# root@agoldap:~# root@agoldap:~# date -d @1332144666 Mon Mar 19 15:11:06 ICT 2012 root@agoldap:~#

จบ

ข้อมูลเกี่ยวกับ Unix time : http://en.wikipedia.org/wiki/Unix_time

Leave a Comment March 19, 2012

อยากรู้ว่าเครื่อง Ubuntu แสนรักของเราใส่แรมได้สูงสุดเท่าไหร่ทำไงหนอ

วันนี้เป็น How To สั้นๆ ครับ สำหรับใครที่อยากรู้ว่าเครื่องคอมพิวเตอร์ที่ติดตั้ง Ubuntu ของตัวเองใส่ Ram ได้สูงสุดกี่ GB คำสั่งมีดังนี้
ง่ายแค่สั่ง

sudo dmidecode --type memory

ผลที่ได้

mrgill@mrgill-laptop:~$ sudo dmidecode --type memory [sudo] password for mrgill: # dmidecode 2.9 SMBIOS 2.6 present. Handle 0x0016, DMI type 16, 15 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 8 GB Error Information Handle: Not Provided Number Of Devices: 2 Handle 0x0017, DMI type 17, 28 bytes Memory Device Array Handle: 0x0016 Error Information Handle: No Error Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: SODIMM Set: 1 Locator: DIMM_A Bank Locator: Not Specified Type: Type Detail: Synchronous Speed: 1333 MHz (0.8 ns) Manufacturer: 0198 Serial Number: 8C1CE17A Asset Tag: 1137 Part Number: 99U5428-040.A01G Handle 0x0018, DMI type 17, 28 bytes Memory Device Array Handle: 0x0016 Error Information Handle: No Error Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: SODIMM Set: 1 Locator: DIMM_B Bank Locator: Not Specified Type: Type Detail: Synchronous Speed: 1333 MHz (0.8 ns) Manufacturer: 80CE Serial Number: 673855AF Asset Tag: 1120 Part Number: M471B5273DH0-CH9

จากตัวอย่างเครื่อง Notebook Dell Inspiron N4010 ของผมสามารถใส่ Ram ได้สูงสุดแค่ 8GB และยังบอกอีกว่าใช้ DIMM ไหนไปบ้าง

Leave a Comment December 19, 2011

วิธีติดตั้ง Visual CertExam Suite บน Ubuntu 11.10

วันนี้ขอแนะนำ Dark Side Technical เกี่ยวกับการติดตั้งโปรแกรม Visual CertExam Suite สำหรับท่านที่ต้องการลองทำข้อสอบจำลอง Certify ต่างบน Ubuntu กันครับ ในที่นี้ผมขอใช้ version 1.9.987 นะครับ
อันนี้ Search หาใน Google กันได้เลยมี Key ให้เรียบร้อยผมแนะนำแค่นี้พอละกัน ส่วนใหญ่จะเป็น zip ไฟล์มีทั้งตัวติดตั้งและ Registry Key สำหรับ Activate

ขั้นตอนการติดตั้ง
1. หาที่ download ไฟล์กันมาก่อน อันนี้หาเองครับลอง search ใน google ดู key ประมาณ Visual CertExam Suite with reg key ก็จะเจอ
2. ได้ไฟล์ .zip มาก็แตกมันออกครับ
3. ติดตั้ง package wine หากใครมีอยู่แล้วก็ไม่ต้องติดตั้ง
4. เปิด Terminal แล้ว cd เข้าไปยัง Directory ที่เก็บไฟล์ที่แตกออกมาเมื่อกี้
5. ใช้คำสั่ง

$ wine visual_certexam_suite_setup.exe

หรือจะคลิกขวาที่ไฟล์ visual_certexam_suite_setup.exe แล้วเลือก Open With Wine Windows Program Loader
จากนั้นทำตามขั้นตอน step next ไปเรื่อยๆ จนเสร็จ
6. เมื่อติดตั้งเสร็จแล้วจะเข้า Registry Key เข้าไปยังไงนี่แหละปัญหา มัน Double Click ติดตั้งไม่ได้เหมือนใน Windows เรามีวิธีแก้ไม่ยากครับ ให้เปิด Terminal ขึ้นมา จากนั้นใช้คำสั่ง

mrgill@mrgill-laptop:~$ regedit

7. จะมีหน้าต่างโปรแกรม Registry Editor ขึ้นมาเหมือนใน Windows คลิกที่เมนู Registry -> เลือกเมนู Import Registry File…
8. ลองเรียกโปรแกรม Visual CertExam กันเลย ลอง Add ไฟล์ .vce กันได้เลย

เท่านี้ก็พร้อมใช้งานแล้วครับผม

โชคดีในการสอบ

Leave a Comment December 11, 2011

สูตรคำนวณพื้นที่ Disk สำหรับติดตั้ง Zimbra

STORAGE CALCULATION EXAMPLE
(Based on ‘Mailbox Usage of 200 MB’ and 500 users)

+ User Data: 500 users with 200 MB = 100 GB user data
+ MySQL data: 5% of 100 GB (User Data): 5 GB
+ Zimbra binaries: 10 GB
+ Zimbra logs: 20 GB
+ Zimbra indexes: 25% of 100GB (User Data) = 25 GB

SUBTOTAL:
 100 + 5 + 10 + 20 + 25 = 160 GB
Backups: 160 % of Subtotal: 160 * 160% = 256 GB for backups
TOTAL: 160 + 256 = 416 GB

อ้างอิง : http://blog.zimbra.com/blog/archives/2009/05/6-tips-for-a-smooth-zimbra-server-install.html

Leave a Comment December 7, 2011

แก้ปัญหา Emesene connect ไม่ได้บน Ubuntu

ตอนนี้หลายที่คนใช้ Emesene บน Ubuntu คงประสบปัญหาน้ำท่วมกันแถมยัง connect หรือ login เจ้า emesene ไม่ได้อีกใช่ไหมครับ
ปัญหาดังกล่าวเกิดมาจากทาง Server ของ Live Messenger จึงทำให้ Third-party MSN Client ไม่สามารถ login ได้
วิธีแก้ไขปัญหาชั่วคราวตอนนี้ก็ให้ Download Emesene จากลิงค์ข้างล่างมาใช้ไปก่อนครับ

Download Emesene Snapshot

โหลดมาแล้วก็ Extract มันออกมาครับแล้วเข้าไปในไดเรกทอรี emesene -> ดัลเบิลคลิกที่ emesene เลือก Run
จากนั้นก็กรอกข้อมูล login ปกติได้เลยครับ
หลังจาก login สำเร็จ ระบบอาจแจ้งเตือนว่า profile เรา broken ถ้าเรากด Yes มันก็จะให้เรา login เข้าไปใน Live profile เพื่อแก้ไข profile ได้ครับ

สำหรับหรับใครที่จะใช้ emesene ตัวนี้เป็นการถาวรก็ mv directory emesene ของใหม่ไปทับของเก่าที่ /usr/share/emesene/ ได้เลยครับ

root@mrgill-laptop:~# mv /usr/share/emesene/emesene /usr/share/emesene/emesene.backup #backup ตัวเก่าเก็บไว้ก่อน root@mrgill-laptop:~# mv Desktop/emesene-emesene-00cd2cc/emesene/ /usr/share/emesene/ #ย้ายตัวใหม่มาไว้แทนที่ของเก่า

จบครับ

ขอบคุณข้อมูลจาก : http://www.omgubuntu.co.uk/2011/11/emesene-not-connecting-quick-fix/

Leave a Comment November 11, 2011

การติดตั้ง Notepad++ บน Ubuntu 11.10

เมื่อวานเพิ่งติดตั้ง Ubuntu 11.10 สดร้อนๆ เลยครับ
ก็พยายามติดตั้งโปรแกรมต่างๆ ให้เหมือนเดิม หนึ่งในนั้นคือ Notepad++ editor ที่น่าใช้ตัวนึง
น่าเสียดายที่ตอนนี้ Notepad++ ยังไม่มี version ที่สามารถติดตั้งบน Linux ได้
แต่ก็ไม่ใช่ว่าจะไม่สามารถติดตั้งได้ซะทีเดียว เราสามารถติดตั้ง .exe ได้โดยใช้ความสามารถของ wine เข้ามาช่วย
อย่างแรกคุณต้องติดตั้ง wine ก่อน

sudo installl wine

จากนั้นเข้าไป download Notepad++ จาก http://notepad-plus-plus.org/download/
โหลดเสร็จแล้วเปิด terminal ขึ้นมาครับ ผม save npp.5.9.4.Installer.exe ไว้ที่ ~/Downloads ก็ cd ไปที่ ~/Downloads save ไว้ที่ไหนก็เข้าไปที่นั้นแหละครับ

cd ~/Downloads

มาเริ่มติดตั้งกันเลยโดยใช้คำสั่ง

wine npp.5.9.4.Installer.exe

จากนั้นจะมี Wizard ขี้นมาก็ next อย่างเดียวได้เลยครับ

Leave a Comment October 15, 2011

วิธีเพิ่ม Swap โดยไม่ต้องสร้าง Partition ใหม่

ขั้นตอนง่ายๆ ครับ ไม่มีอะไร ไม่ต้องแบ่ง partition ใหม่ให้ยุ่งยาก แค่สร้าง dump file ขึ้นมาให้เท่ากับขนาดของ swap ที่ต้องการได้เลยโดยใช้คำสั่ง

1. สร้างพื้นที่สำหรับใช้เป็น swap

root@mrgill-laptop:~# dd if=/dev/zero of=/tmp/newswap bs=1MB count=1024

ตัวอย่างผมสร้างไฟล์ขนาด 1GB เพื่อจะใช้เป็น swap (อยากได้กี่ GB ก็คำนวนเอานะครับ x * 1024)

2. เมื่อได้ไฟล์ /tmp/newswap มาแล้วก็ถึงขั้นตอนการสร้าง newswap ให้เป็น swap โดยใช้คำสั่ง

root@mrgill-laptop:~# mkswap /tmp/newswap

3. เรียกใช้งาน newswap ที่เพิ่งสร้างไปจากขั้นตอนที่ 2 โดยใช้คำสั่ง

root@mrgill-laptop:~# swapon /tmp/newswap

4. ทดสอบเรียกดูว่า swap เพิ่มขึ้นหรือเปล่าด้วยคำสั่ง

root@mrgill-laptop:~# free -m

5. หากต้องการให้ swap ที่สร้างถูกเรียกใช้งานเองทุกครั้งที่ restart server ก็ให้ไปเพิ่มบรรทัดด้านล่างเข้าไปในไฟล์ /etc/fstab ดังนี้ครับ

/tmp/newswap swap swap defaults 0 0

ถ้าต้องการเอาไฟล์ swap ไฟล์ที่สร้างเองออกก็ใช้คำสั่ง

root@mrgill-laptop:~# swapoff /tmp/newswap
root@mrgill-laptop:~# rm -rf /tmp/newswap

ลบแล้วก็อย่าลืมไปเอาบรรทัดที่เพิ่มเข้าไปในไฟล์ /etc/fstab ออกด้วยนะครับ
ไม่งั้นเดี่ยวจะติดปัญหาตอน boot ต้องใช้แผ่น rescure เข้าไปแก้ไฟล์ /etc/fstab ยุ่งยากไปกันใหญ่

แหล่งข้อมูล : http://www.linuxreaders.com/2009/10/28/how-to-modify-swap-size/

Leave a Comment July 13, 2011

ขนาดใหญ่สุดของ ASM Disk สำหรับ Oracle

ได้รับมอบหมายให้สร้าง Volume บน SAN เพื่อ Present Disk ให้เครื่อง Database Server ครับ

DBA ขอ Volume ขนาด 3.5 TB มาครับ ก็จัดให้ไป

เขาไปติดตั้ง Oracle RAC บน RHEL 5.5 x86_64

ถึงตอนติดตั้ง Oracle เขาก็เอา 3.5 TB ไปให้ตรงๆ เลยแบ่งแค่ Partition เดียวขนาด 3.5 TB เลย

ใช้ parted ในการสร้าง Partition Disk ขนาด 3.5 TB เพราะใช้ fdisk แบ่ง Partition สูงสุดได้ไม่เกิน 2.2 TB

เอา Partition 3.5 TB ที่สร้างได้ไป Map กับ Oracle ASM ชื่อ DISK1

มาถึงขั้นตอนการติดตั้ง Grid Clusterware ตอน Verify มันก็บอกว่า ASM Disk fail ก็ DBA ก็เลยลอง Ignore ผ่านไปจนมาถึงขั้นตอนรัน root.sh

มันก็ฟ้องมาเลยครับว่า Maximum ASM Disk มีขนาดใหญ่สุดต่อก้อนได้ไม่เกิน 2TB ดังรูป

Oracle Maximum ASM Size

 

ซึ่งวิธีแก้ปัญหานี้ก็ไม่ยากครับ ก็แค่แบ่ง Partition ใหม่โดยแบ่ง 3.5 TB ออกเป็น 1.75 TB 2 Partition แล้ว Add เข้าไปเป็น DISK1 และ DISK2

Oracle จะนำพื้นที่มา Stripe รวมกันให้เอง

3.4 TB

เรียบร้อยโรงเรียนกิว

Leave a Comment July 13, 2011

วิธี Decode Base64 Mail MIME ด้วย Munpack

เรื่องมันมีอยู่ว่าผมใช้งาน TOTNetCall ครับ แล้วที่นี้ผมก็รอให้ระบบส่ง User กับ Password มาให้ รอแล้วรอเล่าก็ยังไม่มีอะไรส่งมาเลย มีแต่ mail welcome ส่งมาให้ซึ่งดูเหมือน Mailscan ของ TOT จะแจ้งว่ามันเป็น Spam ด้วย เลยทำให้เนื้อ mail ที่แท้จริงถูกส่งมาเป็นไฟล์แนบชื่อว่า noname ซึ่งไม่สามารถเปิดด้วย text editor ทั่วไปได้เพราะถูกเข้ารหัสเป็น base64 มาเห้อ

root@mrgill-laptop:~/Desktop# cat noname Received: from BACKOFFICE (unknown [203.113.125.93]) by mail.totbb.com (Postfix) with ESMTP id F05323F9DE for ; Thu, 31 Mar 2011 19:37:58 +0700 (ICT) MIME-Version: 1.0 From: TOTnetcall To: phmont@gmail.com Date: 31 Mar 2011 19:37:58 +0700 Subject: =?utf-8?B?4Lii4Li04LiZ4LiU4Li14LiV4LmJ4Lit4LiZ4Lij4Lix4Lia4Liq4Li54LmI4Lia4Lij4Li04LiB4Liy4LijIFRPVCBuZXRjYWxsIChXZWxjb21lIHRvIFRPVCBuZXRjYWxsIFNlcnZpY2Up?= Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 Message-Id: <20110331123758.F05323F9DE@mail.totbb.com> PGJyPuC4ouC4tOC4meC4lOC4teC4leC5ieC4reC4meC4o+C4seC4muC4hOC4 uOC4kyAgTW9udHJlZSAgUGhvbWthbSDguYDguJvguYfguJnguKrguKHguLLg uIrguLTguIEgVE9UIG5ldGNhbGw8L2JyPlVzZXJuYW1lIDogMDYwMDA0NzU5 NiAgUGFzc3dvcmQgOiBGR0MxWEM8YnI+4LmC4Lib4Lij4LmC4Lih4LiK4Lix 4LmI4LiZIDogUHJlcGFpZDwvYnI+PGJyPuC4q+C4oeC4suC4ouC5gOC4q+C4 leC4uCA6IFVzZXJuYW1lICDguITguLfguK0gVE9UIG5ldGNhbGwgSUQg4LiC 4Lit4LiH4LiE4Li44LiTPC9icj48YnI+PC9icj48YnI+V2VsY29tZSB0byBU T1QgbmV0Y2FsbCBTZXJ2aWNlPC9icj48YnI+UHJvbW90aW9uOiBQcmVwYWlk LCBVc2VybmFtZTogMDYwMDA0NzU5NiwgUGFzc3dvcmQ6IEZHQzFYQzwvYnI+ PGJyPioqKiBEb3dubG9hZCBTb2Z0cGhvbmUgIOC5hOC4lOC5ieC4l+C4teC5 iCAgaHR0cDovL3d3dy50b3RuZXRjYWxsLmNvbSA8L2JyPjxicj5UaGFuayB5 b3U8L2JyPg==

ผม mail ไปหา support@totnetcall.net ระบบมันก็แจ้งว่าได้รับ Ticket แล้ว ณ วันนี้ยังไม่มี Support ของ totnetcall สักตัวโทรมาหาผมเลย (รักลูกค้าจริงๆ) ผมเลยต้องหาทางแก้ปัญหาของผมเอง ก็อาศัย google อีกเช่นเคยหา key word ที่เกี่ยวกับการ decode base64 ก็ได้เจอจาก blog guru ท่านนึงเค้าได้เขียนไว้ว่าให้ติดตั้ง mpack บน ubuntu ผมก็ลองทำดูโดย

root@mrgill-laptop:~# apt-get install mpack

เมื่อติดตั้งแล้วก็จะมี tool ที่ชื่อว่า munpack มาด้วย วิธีการใช้งาน munpack นั้นแสนง่ายเพียงแค่ cat ไฟล์แนบที่ส่งมาแล้ว pipe ไปหา munpack เราก็จะได้ไฟล์ที่อยู่ในไฟล์แนบออกมา

ตัวอย่างที่ผมทำ

root@mrgill-laptop:~/Desktop# cat noname | munpack munpack: reading from standard input Did not find anything to unpack from standard input

เนื่องจากไฟล์แนบที่ผมได้รับจาก mailscan ของ totnetcall ไม่มีไฟล์แนบอยู่ในนั้นเลยทำให้ไม่ได้ output ที่เป็นไฟล์แนบข้างใน แต่ munpack จะสร้างไฟล์ tempdesc.txt มาให้ซึ่งเป็นเนื้อข้อความที่อยู่ในไฟล์ noname ออกมาซึ่งก็คือ

munpack tempdesc.txt output

จะเห็นว่าเมื่อผม cat tempdesc.txt ก็จะเห็นเนื้อข้อความใน mail ที่แท้จริง(ถูกถอดรหัสแล้วนั้นเอง)

สุดท้ายนี้ฝากผู้ดูแลของ TOTNetCall ช่วยดู Mailscan ของท่านด้วยครับ มันได้สร้างความลำบากให้กับลูกค้าอย่างผมเป็นอย่างมาก(เซ็ง TOT)

ใครอยากลองทำก็ลองโหลด noname ของผมไปเล่นดูก็ได้ครับ

ขอบคุณแหล่งข้อมูล : http://linux.dsplabs.com.au/munpack-mime-base64-multi-part-attachment-php-perl-decode-email-pdf-p82/

Leave a Comment April 2, 2011


Chat

Recent Entries

Random Posts

Social Network

Tag Cloud

Calendar

May 2012
S M T W T F S
« Mar    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Twitter: imrgill

RSS LinuxToday

RSS HowToForge

RSS UbuntuClub

RSS Blognone

RSS PowerWindowsBlog

Tag

Categories

Archives

Blogroll

Meta

Get Adobe Flash player