Showing posts with label ubuntu. Show all posts
Showing posts with label ubuntu. Show all posts

Tuesday, November 11, 2014

How to create group with specific group id

Today is small tip for create group
Assume I need to create group "mai-ru" and I don't want group id auto but I want group id "9999"
The command is should be
sudo groupadd -g 9999 mai-ru
* be careful group id Values between 0 and 999 are typically reserved for system accounts.
So you should use group id more than 999 and make sure that the value is not already exist.

Read More

Bookmark and Share

Friday, July 18, 2014

check or remove multiple backup files filter by number

Assume on the backup directory has files like this
backup-2011-01-01-data.tar.gz
backup-2011-02-01-data.tar.gz
backup-2011-03-01-data.tar.gz
. . .
backup-2012-01-01-data.tar.gz
backup-2012-02-01-data.tar.gz
backup-2012-03-01-data.tar.gz
. . .
backup-2013-01-01-data.tar.gz
backup-2013-02-01-data.tar.gz
backup-2013-03-01-data.tar.gz
. . .

If I want to check or remove all files from year 2011 to 2012 by command line, how to do that. Do one by one? just 24 times. but if more?

You can check on file by command line by :

$du -ch backup-2012-01-01-data.tar.gz
3.4M backup-2012-01-01-data.tar.gz
3.4M total

For more files and filter by number can use this command

$du -ch backup-{2011,2012}*
3.4M backup-2011-01-01-data.tar.gz
3.4M backup-2011-02-01-data.tar.gz
3.4M backup-2011-03-01-data.tar.gz
. . .
3.4M backup-2012-12-01-data.tar.gz
81.6M total

And you can remove files

rm backup-{2011,2012}*

Read More

Bookmark and Share

Thursday, June 14, 2012

How to check public ip by command line


ปกติเวลาต้องการดูไอพีจริง (public ip) จากเครื่อง desktop เราก็สามารถเปิดเว็บบราวเซอร์ที่ถนัด ( IE , Firefox , Chrome , Opera , Safari etc. ) ขึ้นมาแล้วเข้าไปที่เว็บที่บอกไอพีจริงได้ เช่น http://myipaddress.com/show-my-ip-address/ ก็จะพบข้อความ

Your computer's IP address is:* xxx.xxx.xxx.xxx

โดยที่ xxx.xxx.xxx.xxx เป็นไอพีจริงครับ
อ้าวแล้วถ้าเราใช้ command line อยู่จะทำยังไงละ จริง ๆ ก็ใช้หลักการเดียวกับการใช้งานบน desktop ครับเพียงแต่ข้อความที่แสดงเป็น code มองจนตาลายครับ และยิ่งกว่านั้นสำหรับเว็บ myipaddress นั้นในบางครั้งจะมีให้ใส่ Captcha ดังนั้นจึงเป็นการลำบากที่จะใช้เว็บนี้
พอดีไปเจอเว็บ itswapshop มีวิธีสั้น ๆ ในการใช้ command line โดยใช้เว็บ ifconfig.me เมื่อเข้าผ่านเว็บบราวเซอร์ก็จะพบข้อความไอพีสั้น ๆ เลย และสำหรับ command line โดยใช้คำสั่งดังนี้
curl ifconfig.me
curl สำหรับ ubuntu or debian สามารถลงด้วยคำสั่ง
sudo apt-get install curl
หากไม่ต้องการลงโปรแกรมเพิ่ม และลินุกซ์มีโปรแกรม wget อยู่แล้วสามารถใช้คำสั่ง
wget -qO- ifconfig.me/ip

ที่มา : itswapshop

Read More

Bookmark and Share

Thursday, April 12, 2012

How to remove old kernel

เมื่อมีการแบ่ง /boot ออกมาอีกพาทิชั่นหนึ่ง พอใช้งานไปนาน ๆ ก็จะมีการอัพเดต kernel ใหม่หลายเวอร์ชั่นจนบางครั้งทำให้ /boot เต็มไม่สามารถอัพเดต kernel ใหม่ ๆ ได้จึงต้องเอา kernel เก่า ๆ ออกไปโดยก่อนที่จะ remove old kernel นั้นจะต้องตรวจสอบก่อนว่า kernel ที่ใช้ปัจจุบันเวอร์ชั่นอะไร
uname -a
จะได้ผลลัพธ์ประมาณนี้
Linux unix-tip 2.6.38-14-generic #58-Ubuntu SMP Mon Mar 5 18:29:54 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
ซึ่งจะพบว่า kernel version คือ 2.6.38-14-generic #58
ต่อไปเป็นคำสั่งในการตรวจสอบว่าในเครื่องมี kernel version อะไรอยู่บ้าง
dpkg -l | grep linux-image
จะได้ออกมาประมาณนี้
ii  linux-image-2.6.38-11-generic         2.6.38-11.50                               Linux kernel image for version 2.6.38 on x86/x86_64
ii  linux-image-2.6.38-12-generic         2.6.38-12.51                               Linux kernel image for version 2.6.38 on x86/x86_64
ii  linux-image-2.6.38-13-generic         2.6.38-13.57                               Linux kernel image for version 2.6.38 on x86/x86_64
ii  linux-image-2.6.38-14-generic         2.6.38-14.58                               Linux kernel image for version 2.6.38 on x86/x86_64
ii  linux-image-generic                   2.6.38.14.29                               Generic Linux kernel image
Now can remove kernel version 2.6.38-11 , 2.6.38-12 , and 2.6.38-13 by command line
sudo apt-get --purge remove linux-image-2.6.38-11-generic linux-image-2.6.38-12-generic linux-image-2.6.38-13-generic

หลังจากนั้นอาจจะใช้คำสั่งนี้ เพื่อลบ header file or unused application
sudo apt-get autoremove

Read More

Bookmark and Share

Friday, April 6, 2012

How to install google chrome on ubuntu by repository


สำหรับ google chrome นั้นถ้าหากจะลงจำเป็นต้องไปโหลดไฟล์ .deb แล้วเอามาลงเอง ซึ่งมันยุ่งยากจนผมไม่เคยไปสนใจเลย ซึ่งปกติผมจะใช้ Chromium แทนมันลงง่ายดีจนกระทั่งวันนี้ได้อ่านบทความจาก ubuntuclub จึงรู้ว่าตอนนี้มี repository ของ google สำหรับลง google chrome ได้แล้วจึงลองสักหน่อย

วิธีการเริ่มด้วยเพิ่ม repository เข้าไป ใช้คำสั่งสองคำสั่งนี้ได้เลย
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' 
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
หลังจากเพิ่ม repository เข้าไปเรียบร้อยแล้วก็ทำการ อัพเดตและลงโปรแกรมครับ
sudo apt-get update
sudo apt-get install google-chrome-stable
เพียงเท่านี้ก็สามารถใช้ google chrome ได้แล้วครับ

Read More

Bookmark and Share

Friday, December 23, 2011

how to backup - restore mysql


เมื่อไม่กี่วันที่ผ่านมี ก็มีข่าวเกี่ยวกับ การย้ายฐานข้อมูลที่ผิดพลาด (ยังระบุไม่ชัดเจน) ของบริษัทที่ให้บริการเกี่ยวกับโทรศัพท์มือถือค่ายหนึ่ง จึงทำให้คนที่ใช้ค่ายนั้น ไม่สามารถโทร หรือใช้ข้อมูล data ได้เลย ดังนั้น จะพบว่าระบบฐานข้อมูลนั้นจึงเป็นส่วนที่สำคัญ ในการพลักดันให้ระบบทำงานไปตามปกติ จึงต้องมีการวางแผนในการทำสำรอง (backup) ระบบฐานข้อมูลอยู่เสมอ และก่อนที่จะกระทำอะไรกับฐานข้อมูลก็ควรทำการ สำรองข้อมูลด้วย
การสำรองฐานข้อมูลที่จะกล่าวในบทความนี้เป็นการสำรองฐานข้อมูลของ MySQL ซึ่งเป็น DBMS ตัวหนึ่งที่นิยมใช้กัน นอกเหนือจากสามารถใช้งานได้ฟรีแล้ว ก็ยังสามารถทำงานได้อย่างมีประสิทธิภาพด้วย เกริ่นมาพอควรแล้วเข้าเรื่องการสำรองฐานข้อมูลกันเลยดีกว่า

  1. mysqldump เป็น script ที่มีประสิทธิภาพมาก ไม่ต้องไปหาจากที่ไหนมาพร้อมกับการติดตั้ง mysql อยู่แล้ววิธีใช้
    backup
    mysqldump -u -p > file.sql
    โดยคำสั่งนี้จะทำการสำรองฐานข้อมูลที่ชื่อ เก็บไว้ที่ไฟล์ file.sql ตัวอย่างเช่น ต้องการสำรองฐานข้อมูลที่ชื่อ unixtip เก็บไว้ที่ unixtip-12-2011.sql โดยฐานข้อมูลมี user คือ root มีรหัสผ่านคือ 1234
    mysqldump -uroot -p1234 unixtip > unixtip-12-2011.sql
    restore
    mysql -uroot -p1234 unixtip < unixtip-12-2011.sql
  2. phpmyadmin เมื่อต้องการทำการสำรองฐานข้อมูล แต่ไม่อยากใช้ คำสั่ง command line ให้วุ่นวาย ก็ใช้ phpmyadmin คงไม่มีใครไม่รู้จัก phpmyadmin นี้ ผมคงไม่ต้องอธิบายเพิ่มเติมแล้วครับ สำหรับวิธีการสำรองฐานข้อมูลก็ง่ายแสนง่าย เพียงเลือกฐานข้อมูล ที่ต้องการสำรอง จากนั้น คลิกที่ menu Export แล้วก็คลิก OK เท่านั้น ในขณะที่การ restore ก็เข้าไปที่ menu Import แล้วเลือกไฟล์ที่ Export มาเท่านั้นเอง ผมไม่ขออธิบายโดยละเอียดสำหรับวิธีการนี้ครับ เพราะมันง่ายจริง ๆ
  3. automysqlbackup สำหรับ script นี้จะเป็นตัวช่วยในการสำรองฐานข้อมูล ทุกวัน ให้เราโดย script นี้จะใช้ mysqldump อีกทีนึงครับ
    Install for debian , ubuntu
    sudo apt-get install automysqlbackup
    ไฟล์สำหรับ config automysqlbackup
    nano /etc/default/automysqlbackup
    สำหรับ automysqlbackup defaule setting นั้นจะทำการสำรองฐานข้อมูลไว้ใน /var/lib/automysqlbackup/ ซึ่งจะแบ่งเป็น daily, weekly และ monthly restore ถ้าทำการบีบอัดไฟล์ จะอยู่ในรูป unixtip_2011-12-23_07h25m.Friday.sql.gz ให้ทำการ decompress ก่อน ด้วยคำสั่ง
    gzip -d unixtip_2011-12-23_07h25m.Friday.sql.gz
    จะได้ไฟล์ unixtip_2011-12-23_07h25m.Friday.sql
    mysql -uroot -p1234 unixtip < unixtip_2011-12-23_07h25m.Friday.sql

Read More

Bookmark and Share

Thursday, October 27, 2011

how to install thunderbird

หลัง ๆ เริ่มได้ใช้โปรแกรมดูดเมล์มา เริ่มตั้งแต่ outlook on windows , evolution mail on ubuntu ก็พอใช้งานได้ แต่สำหรับ evolution เริ่มใช้งานมากขึ้นเจอกับเมล์ข้อความหลาย ๆ บรรทัด ( 2000 - 3000 บรรทัด ) ทีไรเลื่อน ๆ ดูข้อความแล้วชอบเด้งออกตลอดเลย แต่ก็ไม่ค่อยได้ไปสนใจเท่าไร พอดีวันนี้เจอเว็บ webupd8 พูดถึง thunderbird จึงลองดูบ้าง โดยขั้นตอนการ install จาก webupd8 สำหรับ Ubuntu 11.04, 10.10 or 10.04
  1. add repository and update package
    sudo add-apt-repository ppa:mozillateam/thunderbird-stable
    sudo apt-get update
  2. Install thunderbird
    sudo apt-get install thunderbird
  3. Install calendar plugin
    sudo apt-get install xul-ext-lightning
  4. ถ้าหากต้องการปรับแต่งหน้าตาให้ดูดีขึ้น ก็ลง add-on เพิ่มเข้าไป โดยไปโหลด Thunderbird Conversations เก็บไว้ในเครื่องแล้วเข้าโปรแกรม thunderbird แล้วเลือกที่ Tools -> Add-ons แล้วคลิกที่ไอคอน Tools for all add-ons แล้วเลือก Install Add-on from file จากนั้นก็ restart thunderbird ก็จะได้ตามรูป
  5. ถ้าหากมี calendar from evolution ให้ open thunderbird calendar, go Events&Task->import, and look into .local/share/evolution/calendar/system/calendar.ics file...
    หรือถ้ามีข้อมูลเกี่ยวกับ filter หรือการตั้งค่าต่าง ๆ สามารถใช้ tools->import เลยได้ แต่สำหรับผมเหมือนมันจะยังไม่โอเคนะ

Read More

Bookmark and Share

Tuesday, October 25, 2011

how to move multiple file with CLI

การย้ายไฟล์จากที่หนึ่งไปยังอีกที่หนึ่ง ปกติแล้วถ้าหากใช้ Windows ก็จะเลือกไฟล์หลาย ๆ ไฟล์จากนั้นก็ Drag & Drop file ไปไว้อีกทีนึงได้เลย แต่ถ้าเป็น CLI (Command Line Interface) ละจะทำอย่างไร?
หากต้องการ move file ทั้ง directory '/home/user/a' and rename directory to directory '/home/user/b' เลยอาจใช้คำสั่งนี้
mv /home/user/a /home/user/b
หาก /home/user/b exist can use this command
mv /home/user/a/* /home/user/b
ในขณะที่ file ที่ต้องการจะ move มีบางไฟล์จาก /home/user/a โดยที่ต้องการ move file ที่ไม่ได้ถูกเปลี่ยนแปลงมาแล้วเกินกว่า 30 วัน
find /home/user/a -type f -mtime +30 -exec mv '{}' /home/user/b \;

Read More

Bookmark and Share

Wednesday, October 19, 2011

automatic shutdown server by cron

หลาย ๆ ครั้งที่เครื่อง Server ไม่สามารถ shutdown ได้ในเวลาที่เราทำงาน ครั้นจะให้กลับมา shutdown ตอนดึก ๆ ก็คงจะไม่ดี ตัวช่วยในเรื่องเวลาที่ ubuntu, debian, linux, bsd, freebsd, unix ต่างก็มีนั่นก็คือ cron
การใช้งาน
เข้า Terminal แล้วใช้คำสั่ง สำหรับการตั้งเวลา cron ด้วย root
sudo crontab -e
หากว่าไม่ต้องการใช้ root ตั้งเวลา cron ต้องการเพียงแค่ user ที่ login อยู่ให้ใช้คำสั่ง
crontab -e
หากเรียกใช้งาน crontab ครั้งแรกอาจมีคำถามว่าต้องการเลือก shell editor แบบไหน ผมขอแนะนำให้เลือก nano สำหรับมือใหม่ครับ
เมื่อเรียกใช้คำสั่งแล้วจะพบกับหน้าจอสำหรับ กำหนดให้ cron ทำงาน โดย cron จะมีฟอแมตคือ
MIN HOUR DOM MON DOW CMD
โดยที่
MIN คือนาที มีค่าตั้งแต่ 0 - 59
HOUR คือชั่วโมง มีค่าตั้งแต่ 0 - 23
DOM ย่อมาจาก Day of month คือวันที่นั่นเองครับ มีค่าตั้งแต่ 1 - 31 ตามจำนวนวันในเดือนนั้น ๆ
MON คือเดือน มีค่าตั้งแต่ 1 - 12
DOW ย่อมาจาก Day of week คือ วันในสัปดาห์ มีค่าตั้งแต่ 0 - 6 โดยที่เริ่มตั้งแต่ 0 คือวันอาทิตย์, 1 คือวันจันทร์ ... ไล่ไปเรื่อย ๆ จน 6 คือวันเสาร์
CMD คือคำสั่งที่ต้องการจะสั่งให้ server ทำงานอัตโนมัติตามเวลาที่กำหนด ซึ่งตามบทความนี้คำสั่งที่จะใช้คือ shutdown -h now สำหรับปิดเครื่อง และ reboot สำหรับ restart เครื่อง server
เมื่อรู้ความหมายของ format cron แล้วดังนั้น หากต้องการปิดเครื่อง server ทุกวันเวลา ตีสาม คำสั่งคือ
00 03 * * * /sbin/shutdown -h now
ตัวอย่างสำหรับหากต้องการ restart server ในวันที่ 20 ตุลาคม เวลา ตีสาม ห้านาที มีคำสั่งคือ
05 03 20 10 * /sbin/reboot
เมื่อทำการแก้ไขเสร็จแล้วให้ save ด้วยคีย์ Ctrl+o กด enter และออกจาก editor ด้วยคีย์ Ctrl+x (สำหรับ editor nano) เพียงเท่านี้เครื่อง server ก็สามารถทำงานได้ตามที่เราต้องการโดยไม่ต้องนั่งหน้าเครื่องแล้วครับ

Read More

Bookmark and Share

Cache .dep with squid-deb-proxy server

ปกติถ้าหากใช้เครื่องที่มี ubuntu เพียงเครื่องเดียวก็จะไม่มีความจำเป็นที่จะต้องเก็บ .dep ไว้ในเครื่อง server แต่ถ้าหากมีคนใช้ ubuntu ในออฟฟิศเดียวกันหลาย ๆ คน ครั้นจะให้แต่ละคนอัพเดตของตัวเองก็เกรงจะเปลือง bandwidth โดยใช่เหตุ ดังนั้นตัวช่วยในบทความนี้คือ squid-deb-proxy โดยมีขั้นตอนการติดตั้ง
[server]
  1. Install packages
    sudo apt-get install avahi-utils
    sudo apt-get install squid-deb-proxy
  2. Edit Configuration
    sudo vi /etc/squid-deb-proxy/allowed-networks-src.acl
    Add LAN IP such as LAN IP is 192.168.1.0 - 192.168.1.255 :
    192.168.1.0/24

    sudo vi /etc/squid-deb-proxy/mirror-dstdomain.acl
    Add all repository from all client ( can see in file /etc/apt/source.list ) to configuration file :
    # default ubuntu and ubuntu country archive mirrors
    .archive.ubuntu.com
    ports.ubuntu.com
    security.ubuntu.com
    #official third party repositories
    archive.canonical.com
    extras.ubuntu.com


  3. Restart service :
    sudo service avahi-daemon restart
    sudo service squid-deb-proxy start
    
  4. Check log file at :
    sudo tail -f /var/log/squid-deb-proxy/access.log

[Client]
  1. Install squid-deb-proxy-client
    sudo apt-get install squid-deb-proxy-client
  2. Check client con connect to proxy

    avahi-browse -kprt _apt_proxy._tcp
    +;eth2;IPv4;Squid\032deb\032proxy;_apt_proxy._tcp;local
    =;eth2;IPv4;Squid\032deb\032proxy;_apt_proxy._tcp;local;squidserver.local;192.168.1.10;8000;

    192.168.1.10 is squid-proxy-server
และหากต้องการยกเลิกการใช้งาน proxy ชั่วคราว สามารถทำการแก้ไขไฟล์ 30autoproxy ได้
sudo vi /etc/apt/apt.conf.d/30autoproxy
จากนั้นใส่เครื่องหมาย # ด้านหน้าบรรทัดแบบนี้
#Acquire::http { Proxy "http://192.168.1.10:8000/"; };

Read More

Bookmark and Share

Tuesday, October 18, 2011

how to install openvpn + heartbeat on ubuntu server

การเชื่อมต่อข้อมูลสำหรับองค์กร ในบางครั้งจะมีข้อมูลที่ไม่อยากเอาขึ้น internet อาจเป็นข้อมูลที่มีความลับจึงไม่อยากเสี่ยงที่จะเอาขึ้น internet ดังนั้นจึงทำเป็น intranet (สำหรับในเครือข่าย lan เดียวกัน) ขึ้น แต่เมื่อมี สาขา เพิ่มขึ้นความต้องการใช้ข้อมูลของสาขาแรกในสาขาใหม่ที่อยู่ห่างออกไปก็มี แนวทางในการแก้ปัญหาแนวทางหนึ่งก็คือ openvpn เป็นการเชื่อมโยงสาขาใหม่ให้เสมือนทำงานอยู่ที่เดียวกับสาขาแรก โดยในบทความนี้จะแสดงขั้นตอนการ install openvpn step by step พร้อมกับ install heartbeat เพื่อคอยตรวจสอบ openvpn server โดยมี openvpn server จำนวน 2 เครื่อง ดังรูปด้านบน
กำหนดให้ openvpn server 2 เครื่องคือ 192.168.2.21 ( primary ) and 192.168.2.22 ( slave )
กำหนด virtual ip 192.168.2.20 openvpn
กำหนด real ip 123.4.5.6 ( เป็น firewall ที่ทำการ forward port ไปที่ openvpn server )

[Server]
  1. Install openvpn
    sudo apt-get install openvpn
  2. Copy files from /usr/share/doc/openvpn/examples/easy-rsa to /etc/openvpn
    sudo mkdir /etc/openvpn/easy-rsa
    sudo cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
  3. Edit file vars
    sudo vi /etc/openvpn/easy-rsa/vars
    Change these lines
    export KEY_COUNTRY="TH" #Change to your Country
    export KEY_PROVINCE="CM" #Change to your Province
    export KEY_CITY=""
    export KEY_ORG=""
    export KEY_EMAIL=""
  4. Setup CA and create server certificate
    cd /etc/openvpn/easy-rsa/
    sudo chown -R root:admin .
    sudo chmod g+w .
    source ./vars
    ./clean-all
    ./build-dh
    ./pkitool --initca
    ./pkitool --server server
    cd keys
    openvpn --genkey --secret ta.key
    sudo cp server.crt server.key ca.crt dh1024.pem ta.key ../../
  5. Create certificate file for client
    cd /etc/openvpn/easy-rsa
    source ./vars
    ./pkitool
    note : change to user machine.
  6. Configuring openvpn
    sudo vi /etc/openvpn/server.conf
    Change config :
    local 192.168.2.20   #virtual ip for heartbeat
    port 1194 
    # TCP or UDP server? 
    proto tcp 
    dev tun 
    ca /etc/openvpn/ca.crt 
    cert /etc/openvpn/server.crt 
    key /etc/openvpn/server.key  # This file should be kept secret 
    
    dh /etc/openvpn/dh1024.pem 
    server 192.168.201.0 255.255.255.0   #virtual ip for tunnel
    ifconfig-pool-persist ipp.txt 
    push "dhcp-option DOMAIN simdif.local" 
    push "dhcp-option DNS 192.168.2.1"           #DNS
    push "route 192.168.2.0 255.255.255.0" 
    push "route 192.168.201.0 255.255.255.0" 
    client-to-client 
    tls-auth ta.key 0 # This file is secret 
    comp-lzo 
    user nobody 
    group nogroup 
    persist-key 
    persist-tun 
    status openvpn-status.log 
    verb 4
    
  7. Restart service openvpn
    sudo /etc/init.d/openvpn restart
  8. ทำขั้นตอน 1-7 อีกครั้งกับเครื่อง openvpn server อีกเครื่อง
  9. Install heartbeat
    sudo apt-get install heartbeat
  10. Copy original config to /etc/ha.d/
    cd /usr/share/doc/heartbeat
    sudo cp ha.cf haresources authkeys /etc/ha.d/
  11. Edit ha.cf
    sudo vi /etc/ha.d/ha.cf
    Check and edit configuration
    debugfile /var/log/ha-debug 
    logfacility     local0 
    keepalive 4 
    deadtime 60 
    warntime 10 
    initdead 120 
    udpport 694 
    bcast   eth0            # Linux 
    auto_failback on 
    node openvpnserver01 
    node openvpnserver02
    ping_group group1 192.168.2.21 192.168.2.22
    
  12. Edit haresources
    sudo vi /etc/ha.d/haresources
    Change to :
    openvpnserver01 192.168.2.20 openvpn
  13. Edit authkeys
    sudo vi /etc/ha.d/authkeys
    Change to :
    auth 2
    2 sha1 test-ha
  14. Copy configuration file to 192.168.2.22
    cd /etc/ha.d
    scp ha.cf haresources authkeys username@192.168.2.22:
  15. Go to 192.168.2.22 and copy file to /etc/ha.d
    cd ~
    sudo cp ha.cf haresources authkeys /etc/ha.d
  16. Start heartbeat on the primary 192.168.2.21 and slave 192.168.2.22
    sudo /etc/init.d/heartbeat start
  17. Create firewall NAT both vpn server
    sudo echo 1 > /proc/sys/net/ipv4/ip_forward
    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  18. Edit file /etc/rc.local
    sudo vi /etc/rc.local
    Add 2 lines to configuration file
    sudo echo 1 > /proc/sys/net/ipv4/ip_forward
    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    exit 0
    

[Client]
  1. Install openvpn
    sudo apt-get install openvpn
  2. Copy certificate file from server ca.crt .crt .key ta.key to /etc/openvpn
  3. Edit configuration
    sudo vi /etc/openvpn/client.conf
    Change to :
    client 
    dev tun 
    proto tcp 
    remote 123.4.5.6 1194 
    resolv-retry infinite 
    nobind 
    user nobody 
    group nogroup 
    persist-key 
    persist-tun 
    ca ca.crt 
    cert .crt 
    key .key 
    tls-auth ta.key 1 
    comp-lzo 
    verb 3
    log-append /var/log/openvpn.log
    
  4. Restart service openvpn
    sudo /etc/init.d/openvpn restart
  5. Check connection
    ifconfig
    tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
              inet addr:192.168.201.6  P-t-P:192.168.201.5  Mask:255.255.255.255 
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1 
              RX packets:152 errors:0 dropped:0 overruns:0 frame:0 
              TX packets:182 errors:0 dropped:0 overruns:0 carrier:0 
              collisions:0 txqueuelen:100 
              RX bytes:51111 (51.1 KB)  TX bytes:21776 (21.7 KB)
    

Read More

Bookmark and Share

Monday, October 17, 2011

How to find current runlevel on unix with who

คำสั่ง who เป็นคำสั่งเอาไว้แสดงว่าตอนนี้มีใคร log in อยู่ในระบบบ้าง โดยเมื่อใช้คำสั่ง
who
จะแสดงผลประมาณนี้
yut  tty7         2011-10-17 08:55 (:0)
yut  pts/1        2011-10-17 08:55 (:0)
ในขณะที่คำสั่งสำหรับดู previous and current runlevel ก็คือคำสั่ง runlevel
runlevel
N 2
แต่สำหรับคำสั่ง who นั้นสามารถดู current runlevel ได้ด้วยคำสั่ง
who -r
         run-level 2  2011-10-17 08:54
โดยถ้าหากต้องการดูทั้ง current runlevel และ ดูว่ามีใคร log in ในระบบด้วย จะใช้คำสั่ง
who -a
           system boot  2011-10-17 08:54
           run-level 2  2011-10-17 08:54
LOGIN      tty4         2011-10-17 08:54              1008 id=4
LOGIN      tty5         2011-10-17 08:54              1014 id=5
LOGIN      tty2         2011-10-17 08:54              1034 id=2
LOGIN      tty3         2011-10-17 08:54              1036 id=3
LOGIN      tty6         2011-10-17 08:54              1042 id=6
LOGIN      tty1         2011-10-17 08:54              1637 id=1
yut        + tty7         2011-10-17 08:55  old         2043 (:0)
yut       + pts/1        2011-10-17 08:55 01:03        2133 (:0)

ที่มา www.theunixtips.com

Read More

Bookmark and Share

Sunday, October 16, 2011

how to install ubuntu 11.10 step by step

ubuntu 11.10 ออกมาได้ประมาณ 2 วัน แต่ผมพึ่งจะมีเวลาโหลดมา ไหน ๆ ก็ติดตั้งแล้ว ก็เลยทำ step by step เป็นขั้นตอนสำหรับมือใหม่ด้วยเลยครับ


  • เริ่มแรกให้เข้าไป download ไฟล์ก่อนที่ เว็บ ubuntu แล้ว write cd ซะ
  • ทำการแบ่ง partition ก่อน อาจใช้ partition magic หรือโปรแกรมอื่นตามสะดวกครับ โดยแบ่งเป็น partition ว่าง ๆ โดยยังไม่ต้องทำการ format
  • เมื่อได้แผ่นในการติดตั้งแล้วก็ restart computer แล้วเข้า bios เพื่อเซ๊ตให้ boot ผ่าน cd หรือไม่ก็คอยดูตอนเริ่มบูตจะมีบอกให้กด key เพื่อเลือก boot option บางเครื่องก็เป็น F10 บางเครื่องก็ F11 แล้วแต่เครื่องครับ
  • เมื่อผ่านขั้นตอนกำหนดให้บูตด้วย cd แล้ว รอสักครู่จะพบหน้าจอนี้ หากต้องการ ทดลองใช้ให้เลือก Try Install แต่ถ้าจะลงเลยก็เลือกที่ Install Ubuntu ครับ โดยที่บทความนี้เลือก Install Ubuntu ครับ
  • หลังจากเลือก Install Ubuntu แล้วจะได้หน้าจอนี้ Check box "Download updaes while installing" and "Install this third-party software" จากนั้น click Continue
  • Choose Something else and click Continue
  • Choose "free space" ( partition ว่างที่ทำการแบ่งไว้ก่อนหน้านี้ ) Click Add
    ช่อง "New partition size in megabytes" ให้ใส่พื้นที่ partition ที่ต้องการจะแบ่งในบทความนี้จะแบ่ง partition / and /swap เท่านั้น โดยให้พื้นที่สำหรับ /swap 1000 byte แล้วพื้นที่ที่เหลือสำหรับ /
    เมื่อแบ่งครบแล้ว ให้ click Install Now
  • จากนั้น ubuntu จะทำการ install ซึ่งในขณะนี้จะเป็นการกำหนดค่าต่าง ๆ ที่เหลือ โดยเริ่มจากกำหนด location time then click Continue
  • Choose keyboard layout then click Continue
  • กำหนดชื่อ และ password and click Continue
  • ชงกาแฟมานั่งจิบรอสักพัก
    เมื่อ Install เสร็จแล้ว ให้คลิก Restart Now
  • เมื่อ restart เข้ามาแล้วก็จะพบหน้าจอ login ใส่ password
  • พร้อมใช้งานแล้ว

Read More

Bookmark and Share

Saturday, October 15, 2011

ssh ไม่ต้องใส่รหัสผ่าน

ssh เป็นช่องทางในการ remote ไปจัดการเครื่อง server ที่นิยมใช้กันมากที่สุดเนื่องจากมีความปลอดภัยในการใช้งาน โดยคำสั่งในการใช้งาน ssh โดยปกติแล้วจะใช้
ssh -p [port] [user]@[ip]
โดยที่ [port] เป็นเลข port ในการเชื่อมต่อ ซึ่งหากไม่ใส่จะเป็นค่า default คือ port 22
[user] เป็นชื่อ user ที่อยู่ฝั่ง server
[ip] เป็น ไอพีของฝั่ง server ที่ต้องการเชื่อมต่อ
แต่เมื่อมีการใช้งาน ssh บ่อยมาก ๆ ก็จะเริ่มไม่อยากพิมพ์รหัสผ่านในการเชื่อมต่อ ทุกครั้ง ซึ่งเครื่องที่ใช้ปกติก็ใช้เพียงคนเดียว จึงอยากทำให้ ssh แล้วไม่ต้องใส่รหัสผ่าน โดยแนวทางในการทำ ssh แบบไม่ต้องใส่รหัสผ่านนี้ ได้ใช้แนวทางจาก เว็บ thaicert แต่อาจมีบางคำสั่งที่ไม่เหมือนกันครับ ขั้นตอนการทำมีดังนี้

  • สร้าง private key และ public key ด้วยคำสั่ง
  • ssh-keygen -t rsa
  • จากนั้นจะข้อความดังนี้
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/[user]/.ssh/id_rsa):
    
    ให้กด enter เลยเพื่อเก็บ key ไว้ที่แฟ้ม /home/[user]/.ssh/ โดยที่ [user] คือชื่อ user ของเครื่องที่ใช้ปกติ
  • ข้อความต่อไปจะถามว่าต้องการเข้ารหัสผ่านของ key ด้วยหรือไม่
    Enter passphrase (empty for no passphrase):
    
    หากว่าเป็นเครื่องที่ใช้งานเพียงคนเดียว และแน่ใจว่ามีความปลอดภัยมากพอก็สามารถกด enter ได้เลยเพื่อไม่ต้องกำหนดรหัสผ่าน
  • เมื่อสร้าง key เสร็จแล้ว กำหนด permission เพื่อความปลอดภัยมากขึ้น
    chmod 600 id_rsa
    chmod 644 id_rsa.pub
  • ขั้นตอนสุดท้ายเป็นการนำ public key ไปเก็บไว้ที่เครื่อง server
    ssh-copy-id [user_serv]@[ip_serv]
    [user_serv] คือ ชื่อ user ฝั่ง server
    [ip_serv] คือ ไอพี ฝั่ง server
เพียงเท่านี้ทุกครั้งที่ใช้คำสั่ง ssh ไปยังเครื่อง server ก็จะไม่ต้องใส่รหัสผ่านอีกแล้ว

Read More

Bookmark and Share

Friday, October 14, 2011

ubuntu revelation ImportError: No module named _gnome

หลังจากเริ่มมี password มาเข้ามาอยู่ในชีวิตประจำวันมากขึ้น password ของเราเองก็มากพอสมควร ไหนยังจะ password จากที่ทำงานอีก จึงเหลือบไปเห็นมีคนใช้ revelation for contain password จึงเอาบ้าง ลองลงบ้าง ด้วยคำสั่ง
sudo apt-get install revelation
ลงเสร็จหาโปรแกรมเข้าเลย คลิกไอคอน รอไปพักนึง เอ๊ะ!!!!! เริ่มหลายพักแล้วทำไมไม่มีอะไรเกิดขึ้น จึงเปิด terminal คู่ใจ แล้วลองรันโปรแกรมดู
revelation
จึงพบเข้ากับข้อความแบบนี้
Traceback (most recent call last):
  File "/usr/bin/revelation", line 25, in 
    import gettext, gnome, gobject, gtk, gtk.gdk, os, pwd, sys
  File "/usr/lib/pymodules/python2.7/gtk-2.0/gnome/__init__.py", line 13, in 
    from _gnome import *
ImportError: No module named _gnome
จัดการ ก๊อป error ไปค้นใน กูเกิ้ล หาไปหามา เจอเหมือนบอกว่ายังไม่ได้ลง python-gnome2 ก็แปลกใจกลับมาที่ terminal คู่ใจเหมือนเดิมลองตรวจสอบดู
dpkg -s python-gnome2
ได้ผลแบบนี้
Package: python-gnome2
Status: install ok installed
Priority: optional
Section: python
Installed-Size: 1564
Maintainer: Ubuntu Desktop Team 
Architecture: amd64
Source: gnome-python
Version: 2.28.1-1ubuntu3
Provides: python2.6-gnome2, python2.7-gnome2
เอามาให้ดูส่วนนึงนะ เดี๋ยวยาวเกิน จากด้านบน สังเกตุได้ว่า Status: install ok installed คือลงไปแล้วนั่นเอง อ้าว!!! ก็ลงไปแล้วนี่ไง จึงเริ่มเอ๊ะใจท่าทางคงต้องลองลงใหม่ จึงจัดไปด้วยคำสั่ง
sudo apt-get --reinstall install python-gnome2
หลังจากลงเสร็จลองรัน
revelation
ข้อความ error เปลี่ยนไป เป็น
Traceback (most recent call last):
  File "/usr/bin/revelation", line 27, in 
    from revelation import config, data, datahandler, dialog, entry, io, ui, util
  File "/usr/lib/python2.7/dist-packages/revelation/__init__.py", line 29, in 
    import datahandler
  File "/usr/lib/python2.7/dist-packages/revelation/datahandler/__init__.py", line 28, in 
    from fpm import FPM
  File "/usr/lib/python2.7/dist-packages/revelation/datahandler/fpm.py", line 27, in 
    from revelation import data, entry, util
  File "/usr/lib/python2.7/dist-packages/revelation/data.py", line 26, in 
    import datahandler, entry
  File "/usr/lib/python2.7/dist-packages/revelation/entry.py", line 26, in 
    from revelation import ui
  File "/usr/lib/python2.7/dist-packages/revelation/ui.py", line 1222, in 
    class LinkButton(gnome.ui.HRef):
AttributeError: 'module' object has no attribute 'HRef'
แสดงว่ามาถูกทางแล้ว แต่ปัญหาความนี้คือ HRef มาจาก library ตัวไหนล่ะ?? ด้วยความไม่รู้ก็ไล่ลงไปเรื่อย จากที่เคยลงไว้อยู่แล้ว ไล่ไปตั้งแต่ python-gnome2-dev, python-gnome2-extras-dev, python-gnome2-desktop-dev, python-gnomecanvas
From the last one gnomecanvas, it make the error disapear.

แถมอีกอันนึงถ้าเจอ error แบบนี้
/usr/bin/env: python2: No such file or directory
I found this error from openxenmanager when update to revision 82. This error can fix by
sudo ln -s /usr/bin/python2.7 /usr/bin/python2
I get solution from this link.

Read More

Bookmark and Share

Thursday, October 13, 2011

unix tip shell script if statement double bracket [[ ]]

พอดีได้เขียน shell script แล้วเห็นบางสิ่งที่แปลกตาไปนั่นคือ double bracket คือมีวงเล็บก้ามปูแบบคู่ แบบนี้ [[ ]] ซึ่งปกติแล้วจะเขียนแบบนี้ [ ] ยกตัวอย่างประโยค if statement ที่ใช้ปกติ
if [ $value -lt 1 ]; then echo "increase value"; fi
จากตัวอย่างเป็น if statement ที่ตรวจสอบเงื่อนไขว่า หากค่า $value น้อยกว่า 1 ให้แสดงผล increase value แล้วที่นี้ทำไมต้องมี double bracket ล่ะ เมื่อเกิดข้อสงสัยจึงไปค้นหาข้อมูล และเจอ เว็บนี้ บอกว่า double bracket นี้เป็นเวอร์ชั่นใหม่ ซึ่งนอกจากจะมีคุณสมบัติหลัก ๆ เหมือนเดิมทุกประการแล้วยังเพิ่มความสามารถเจ๋ง ๆ เข้ามาอีกด้วย ซึ่งความสามารถเจ๋ง ๆ ที่เพิ่มเข้ามานี้มีประมาณนี้
- สามารถใช้ * ในการตรวจสอบ string ได้ เช่นต้องการตรวจสอบว่าภายในข้อความของ string $value มีคำว่า foo อยู่รึป่าว สามารถใช้ if statement ดังนี้
if [[ $value == *foo* ]]; then
echo "This string have foo"
fi
- นอกจากนั้นยังใช้สำหรับตัวอักษรตัวเล็ก และตัวใหญ่ได้ เช่นต้องการตรวจสอบ ทั้งคำว่า Foo and foo จะได้ if statement ดังนี้
if [[ $value == [fF]foo ]]; then
echo "This string have foo or Foo"
fi
สำหรับตัวอย่างอื่น ๆ สามารถดูเพิ่มเติมจาก เว็บนี้ ครับ

Read More

Bookmark and Share

Tuesday, October 11, 2011

how to disable startup application by command line

วิธีการยกเลิกการเปิดโปรแกรมอัตโนมัติเวลาเปิดเครื่อง แบบป่าเถื่อนสุดก็คือเข้าไปที่แฟ้ม /etc/rcX.d ( X เป็นตัวเลข runlevel มีค่าเป็น 0-6 ) แล้วแก้ตัวอักษรด้านหน้าจาก S เป็น K

ว่าแต่ว่า runlevel คืออะไร จากเว็บนี้ เค้าบอกว่าประมาณนี้

* 0 System Halt
* 1 Single user
* 2 Full multi-user mode (Default)
* 3-5 Same as 2
* 6 System Reboot


ทีนี้ถ้าอยากแก้ไขให้ ยกเลิก หรือ เพิ่ม startup program หลาย ๆ runlevel ล่ะจะมีตัวช่วยมั้ย แน่นอนต้องมีตัวช่วยอยู่แล้ว ซึ่งพระเอกวันนี้คือ update-rc.d นั่นเองครับ วิธีใช้คร่าว ๆ นะครับ

เพิ่ม startup program เฉพาะที่ 2-5 และที่ 0,1 และ 6 ให้ ยกเลิก

sudo update-rc.d webmin start 20 2 3 4 5 . stop 20 0 1 6 .


ที่นี้ลองยกเลิก startup program ที่ level 2-5 ครับ

sudo update-rc.d openvpn stop 16 2 3 4 5 .


อุ้ย!!! เกิดข้อความ คำเตือนขึ้นมา
update-rc.d: warning: openvpn start runlevel arguments (none) do not match LSB Default-Start values (2 3 4 5)
update-rc.d: warning: openvpn stop runlevel arguments (2 3 4 5) do not match LSB Default-Stop values (0 1 6)
 System start/stop links for /etc/init.d/openvpn already exist.

ให้ใช้คำสั่งดังนี้
sudo update-rc.d -f openvpn remove
sudo update-rc.d openvpn stop 16 2 3 4 5 .

Read More

Bookmark and Share

Monday, October 10, 2011

เกี่ยวกับเวลา (ภาค ntp)

ได้มีบทความเกี่ยวกับเรื่องเวลาในบทความก่อนหน้านี้ไปแล้ว ซึ่งในบทความนี้ก็จะเกี่ยวกับเวลาเช่นเดียวกัน แต่เป็นคนละเรื่องกันนะ โดยในบทความนี้จะกล่าวถึงเรื่อง time syncronize ระหว่างเครื่องคอมพิวเตอร์ ซึ่งก่อนหน้านี้ได้มีโอกาสทำ NTP Server เอาไว้สำหรับ sync เวลาระหว่างเครื่องคอมพิวเตอร์ในวงแลนเดียวกันโดยการทำ NTP Server นั้นมีขั้นตอนง่าย ๆ ดังนี้

[ฝั่ง Server : ip 192.168.0.1]
- Install NTP server

sudo apt-get install ntp


- จากนั้นก็ทำการปรับแต่ง configuration โดยเพิ่มข้อความด้านล่างนี้ที่แฟ้ม /etc/ntp.conf

server 0.th.pool.ntp.org
server 0.asia.pool.ntp.org
server 2.asia.pool.ntp.org
# If machine cannot connect to internet this will use this machine
server 127.127.1.0
fudge 127.127.1.0 stratum 10

สำหรับ 3 บรรทัดแรก บอกว่าให้ทำการ sync เวลากับ server เหล่านี้ ที่ใดที่หนึ่ง ซึ่งหาก internet down หรือเกิดปัญหาในการเชื่อมต่อใด ๆ เกิดขึ้น ก็จะใช้ 3 บรรทัดหลังสุดนั่นคือใช้เวลาในเครื่อง server เครื่องนี้เอง

- เมื่อทำการปรับแต่งค่าเสร็จแล้วก็ทำการ restart service ซะเป็นอันเสร็จพิธี

sudo /etc/init.d/ntp restart


[ฝั่ง client]
- Install NTP เช่นเดียวกัน

sudo apt-get install ntp


- จากนั้นทำการปรับแต่ง แฟ้ม /etc/ntp.conf โดยเพิ่มไอพีเครื่อง Server ด้านบนลงไป

server 192.168.0.1

- สุดท้ายทำการ restart service

sudo /etc/init.d/ntp restart


เพียงเท่านี้ก็จะมีเครื่อง Server สำหรับ sync เวลาภายในแลนเดียวกันใช้แล้วครับ

ต่อไปผมเกิดข้อสงสัยขึ้นเมื่อใช้งาน ntptrace เพื่อทดสอบการ เชื่อมต่อระหว่าง client & server ซึ่งเกิดข้อผิดพลาดขึ้นโดยแจ้งว่า ***Request timed out อ้าว ! ก็เมื่อกี้ทำเสร็จแล้วนี่ตรวจสอบเวลาก็ sync กันแล้วนี่นาทำไม่ timed out ล่ะ จึงค้นหาใน google หาไปหามาไม่กระจ่าง สงสัยใช้คำค้นไม่ดี จึงลองนั่งดูที่ไฟล์ config อีกครั้งจึงไปเจอ ตำแหน่งนี้

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

จึงได้ลองทำการเพิ่มเข้าไปเป็นดังนี้

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
restrict 192.168.0.0 mask 255.255.255.0

บรรทัดสุดท้ายที่เพิ่มเข้าไปเป็น ไอพี วงแลนนั่นเอง ซึ่งตรงส่วนนี้เป็นส่วนที่ อนุญาต (น่าจะเขียนยังงี้นะ จำได้ว่าไม่ใช่ อนุญาติ) ให้เครื่องภายในไอพีที่กำหนด สามารถใช้คำสั่ง ntptrace เพื่อตรวจสอบการเชื่อมต่อได้โดยผลการใช้คำสั่งจะได้ประมาณนี้ครับ

192.168.0.1: stratum 3, offset -0.001071, synch distance 0.101328

Read More

Bookmark and Share

[ทิป] ค้นหาคำจากเอกสารด้วย กรึ๊บ (grep)

การค้นหาคำจากเอกสารสำหรับหน้า GUI นั้น จะคุ้นเคยกับ Ctrl+F ซึ่งสามารถใช้กับ MS word, Texteditor, Firefox etc. แล้วก็ใส่คำที่ต้องการค้นหาไป ก็จะสามารถค้นหาคำที่ต้องการได้ ซึ่งในวันนี้ไม่ได้เล่าถึงวิธีใช้งาน Ctrl+F ที่คุ้นเคยกัน แต่จะแนะนำให้รู้จักกับ กรึ๊บ (grep) คำสั่ง command line บน linux

การใช้ grep ค้นหาคำที่ text file นั้นสามารถใช้คำสั่ง นี้ได้

cat php.ini | grep session

จากคำสั่งข้างต้น อธิบายทีละส่วนได้ ดังนี้

cat php.ini

เป็นคำสั่งในการอ่านไฟล์ php.ini แล้วแสดงผลทีละบรรทัดออกมายังหน้าจอแสดงผล ในขณะที่

grep session

นั้นจะเอาข้อมูลที่ได้จาก "cat php.ini" มาทำการค้นหาบรรทัดที่มีคำว่า session เท่านั้นจึงจะแสดงผล

ซึ่งคำสั่งนี้สามารถนำมาใช้กับการค้นหา package ที่ต้องการค้นหาได้ด้วย เช่น

dpkg -l | grep apache

โดยที่คำสั่ง dpkg -l เป็นคำสั่งในการ แสดงผล package ทั้งหมดที่ install ในเครื่อง ( ubuntu , debian ) ซึ่ง grep apache ก็เป็นการบอกให้แสดงผลเฉพาะบรรทัดที่มี apache เช่นกัน

Tip ในวันนี้ที่จะนำเสนอคือ การค้นหาคำจาก directory ซึ่งมีหลาย ๆ ไฟล์พร้อมกัน เช่นต้องการค้นหาคำว่า session ใน directory ที่มีชื่อว่า folder1 ใช่คำสั่งดังนี้

grep "session" -r folder1

ผลที่ได้จะแสดงที่อยู่ของไฟล์ใน folder1 แล้วจะแสดงผลเฉพาะบรรทัดที่มี session เท่านั้น

Read More

Bookmark and Share

Thursday, October 6, 2011

เปรียบเทียบเอกสารสองแฟ้มว่าต่างกันหรือไม่?

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

บน commandline ก็จะมีตัวช่วยอยู่ ชื่อว่า diff การใช้งานก็เพียงแค่พิมพ์คำสั่งไป

diff doc1 doc2

เป็นการเปรียบเทียบระหว่างเอกสารชื่อ doc1 และ doc2 ซึ่งผลลัพธ์ที่ได้ออกมาจะเป็นประมาณนี้

9,11c9,11
< ii  apt                             0.7.25.3ubuntu9.7                 Advanced front-end for dpkg
< ii  apt-transport-https             0.7.25.3ubuntu9.7                 APT https transport
< ii  apt-utils                       0.7.25.3ubuntu9.7                 APT utility programs
---
> ii  apt                             0.7.25.3ubuntu9.6                 Advanced front-end for dpkg
> ii  apt-transport-https             0.7.25.3ubuntu9.6                 APT https transport
> ii  apt-utils                       0.7.25.3ubuntu9.6                 APT utility programs
27c27
< ii  ca-certificates                 20090814ubuntu0.10.04.1           Common CA certificates
---
> ii  ca-certificates                 20090814                          Common CA certificates

แต่ออกมาแบบนี้ก็แอบดูยากจัง ดังนั้นขอแนะนำตัวนี้เลยครับ meld เป็นโปรแกรมแบบ GUI คือไม่ต้องมานั่งพิมพ์คำสั่งให้ งง อีกต่อไป สำหรับ Ubuntu วิธีลงก็

sudo apt-get install meld

โดยหน้าตาโปรแกรมจะเป็นประมาณนี้ครับ ใช้งานง่ายจริง ๆ ขอบอก :)




Read More

Bookmark and Share