Friday, October 28, 2011

how to make thunderbird notify new email like evolution on ubuntu

หลังจาก install thunderbird แล้ว ก็เกิดอยากได้ notify new email แบบ evolution บ้างจึงลองค้นดูก็เจอคนถามใน askubuntu พอดีเลย วิธีการคือ
  • add repository and update
    sudo add-apt-repository ppa:ruben-verweij/thunderbird-indicator
    sudo apt-get update
  • Install package
    sudo apt-get install xul-ext-indicator libnotify-bin
จากนั้นสังเกตุไอคอน indicator จะพบ ไอคอน thunderbird อยู่ และเมื่อมี new email ก็จะมี notify แล้วครับ

Read More

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

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

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

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

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

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

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

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

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

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

Wednesday, October 12, 2011

FreeBSD clonning

ไปเจอบทความของคุณครูนิส ที่เว็บนี้ แล้วทำให้นึกขึ้นได้ว่าจริง ๆ แล้วจะ Backup หรือ Clonning ก็ไม่ใช่เรื่องยากอะไรเลย เพราะโปรแกรมอะไรต่าง ๆ ที่อยู่ในแฟ้ม /usr and /var ก็เกิดจากการ compile มาแล้วทั้งสิ้น ทั้งนี้ทั้งนั้นเพียงแค่ copy แฟ้มสำคัญ ๆ เก็บเอาไว้แล้วเอามาใช้งานได้เลย ซึ่งเนื้อหาขั้นตอน ย่อ ๆ จาก เว็บคุณครูนิส ประมาณนี้

ทำการบีบอัดแฟ้ม สำคัญหลัก ๆ เอาไว้ ซึ่ง แฟ้มที่สำคัญคือ /root /boot /etc /usr และ /var ซึ่งนอกจากจะบีบอัดเป็น .tar.gz แล้วอาจประยุกต์ใช้ rsync ในการเก็บก็เป็นได้
- สำรองแฟ้ม /root
cd /root
tar -zcvf /home/root.tar.gz *
- สำรองแฟ้ม /boot
cd /boot
tar -zcvf /home/boot.tar.gz *

อีกสองแฟ้มทำแบบเดียวกันจากนั้นก็ copy ออกมา อาจทำการ write แผ่นเก็บไว้ หรือเก็บไว้ใน แฟรชไดฟ์ ก็ได้ เมื่อต้องการ restore หรือ เอาไปโคลนกับเครื่องอื่นก็จะมีขั้นตอน ดังนี้

Install FreeBSD แบบ Express ก่อน ใช้เวลาไม่นานมาก
เมื่อ Install เสร็จ จากนั้นก็นำไฟล์ที่บีบอัดนำมาลงเครื่องจากนั้นก็ทำการขยายไฟล์ไปตาม แฟ้มเดิม เพียงเท่านี้ก็จะสามารถใช้งานได้ตามเดิมแล้วครับ

สิ่งที่ในเว็บของครูมานิส เพิ่มขึ้นมาคือการเขียน Script สำหรับ restore or clone ซึ่งหากต้องทำหลาย ๆ เครื่องก็จะทำให้สะดวกแก่การใช้งานมากขึ้น

ขอบคุณแหล่งอ้างอิง เว็บคุณครูนิส ครับ

Read More

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

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

[ทิป] ค้นหาคำจากเอกสารด้วย กรึ๊บ (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

Thursday, October 6, 2011

ขอบคุณ สตีฟ (Thank you Steve!)

พอดีเห็น feed เด้งมาเลยเข้าไปดูที่ Blog นี้ เห็นรูปนี้เข้า



ดูแล้วสื่ออะไรหลาย ๆ อย่าง จนต้องเข้าไปอ่านข้อความ ไว้อาลัย แก่ศาสดาของ apple ผู้ที่สร้างสรรหลายสิ่งหลายอย่างขึ้นมา ขอบคุณสำหรับไอเดียสุดเจ๋ง หลาย ๆ อย่าง แม้ว่าจะมีปัญหากันเล็กน้อย (รึป่าวไม่แน่ใจ) กับ Linus ศาสดาของลินุกซ์ แต่เค้าก็จะอยู่ในใจเราตลอดไป

Read More

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

หลายครั้งที่มีเอกสารมาให้เปรียบเทียบกันว่ามีความแตกต่างกันหรือไม่ ต่างกันตรงไหนบ้าง 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

kernel.org กลับมาแล้ว

บางคนอาจสงสัยว่า kernel.org คืออะไรเหรอ? เป็นเว็บเหรอ หรือยังไง คำตอบคือใช่ครับเป็นเว็บครับ เป็นเว็บสำหรับพัฒนา และให้ ดาวน์โหลด ไฟล์ kernel ที่เป็นแกนกลางของ ลินุกซ์ครับ น่าจะประมาณนี้ได้ครับ

อ้าว แล้วเกิดอะไรขึ้นล่ะ kernel.org หายไปไหนเหรอ? เมื่อประมาณเดือนที่แล้วเกิดปัญหาด้านความปลอดภัยขึ้นกับเว็บเค้าน่ะ หรือเรียกภาษาชาวบ้านว่าโดนแฮค นั่นเอง เหมือนจะเข้ากับปัญหาปัจจุบันวันนี้จัง ที่เมื่อไม่กี่วันที่ผ่านมาทวิตเตอร์นายกก็โดนแฮค ดังนั้นคงไม่ต้องอธิบายคำว่าแฮคคืออะไรแล้วล่ะ :)

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

ยินดีต้อนรับการกลับมาของ kernel.org อีกคนครับ

Read More

Wednesday, October 5, 2011

ว่าด้วยเรื่องของ rcS (ต่อ)

หลังจากได้ค้นหาการจัดการเกี่ยวกับเวลาแล้วจึงได้พบว่าในแฟ้มนั้น (/etc/default/rcS) ยังมี อย่างอื่นให้กำหนดด้วย ซึ่งมีดังนี้

TMPTIME=0
SULOGIN=no
DELAYLOGIN=no
UTC=yes
VERBOSE=no
FSCKFIX=no

มีหลายอันเลยแล้วอะไรทำอะไรได้บ้างล่ะ?

หลังจากดูที่หัวไฟล์มีบอกเอาไว้ว่าถ้าอยากรู้ว่าอะไรทำอะไรได้บ้างก็ให้ลอง ผู้ชาย (man) ดู จึงจัดการ man rcS ดูจึงรู้ว่า

TMPTIME เอาไว้ตั้งค่าสำหรับที่เก็บแฟ้มที่อยู่ใน /tmp ซึ่งค่าปกติเวลาปิดเปิดเครื่องใหม่ แฟ้มอะไรก็ตามที่อยู่ในนี้จะถูกลบทั้งหมด หากไม่อยากลบก็อาจจะตั้งค่าเป็น -1 หรือจะตั้งค่าเยอะ ๆ มาก ๆ ก็ได้

SULOGIN ไม่แน่ใจว่าเป็นอะไร แต่เท่าที่อ่านดูเป็นการตั้งค่าให้ตอนบูตตอนแรกเป็นสถานะ su เลย แต่หากไม่ได้ log in ด้วย Administrator ภายใน 30 วินาที session ของ sulogin ก็จะหมดไป

DELAYLOGIN ความหมายก็ตรงกับชื่อ นั่นคือ หน่วงการ log in ไว้ก่อน ซึ่ง ปกติแล้วเวลาบูตเข้าโอเอส จะต้องรอให้ ทำ process ทุกอย่างให้เสร็จก่อนถึงจะ log in ได้ แต่ในทางทฤษฎีคิดว่าไม่จำเป็นต้องรอนานขนาดนั้นก็ได้ ในเมื่อมี process บางตัวรันเสร็จแล้วก็น่าจะสามารถ log in ได้แล้วสิ ดังนั้นหากตั้งค่าเป็น no ก็คือสามารถ log in ก่อนที่จะรันเสร็จทุกอย่างได้ ในขณะที่ yes ให้หน่วงไว้ก่อน รอจนทุกอย่างเสร็จจึง log in

VERBOSE อธิบายสั้น ๆ ว่า เป็นตัวที่เปิด ปิด ข้อความเวลาบูต นั่นเอง

ที่นี้มาถึงตัวสำคัญที่ผมสงสัย นั่นคือ FSCKFIX ตอนแรกที่เห็น (ยังไม่ได้อ่านผู้ชาย man) คิดไปถึงว่า เอ๊ะ ... ทำไมเครื่องเราไม่ได้ตั้งค่าให้ ตรวจสอบดิส เหรอเนี่ย หลังจากไปอ่าน man จึงทำให้รู้ว่า ปกติแล้วระบบ เวลารัน fsck จะใส่ค่า -a [ fsck -a ] สำหรับ autorepair ให้เรา แต่บ่อยครั้งที่เกิดข้อผิดพลาด ระบบก็จะเด้ง บอกเราว่าให้เรารัน fsck เอง ซึ่งหากรันเฉย ๆ ก็อาจจะเจอให้ กด y เพียบเลย ดังนั้นจึงมี พารามิเตอร์ -y [ fsck -y ] เพื่อให้ ตอบ y แทนเรา

จากเหตุผลที่บอกไป หากใส่ค่าเป็น FSCKFIX=yes ก็จะเป็นการให้ระบบ ใช้คำสั่ง fsck -y แทนด้วย fsck -a นั่นเอง

แต่ผมก็สงสัยว่าทำไมไม่ให้เริ่มต้น ด้วยคำสั่ง fsck -y ไปเลย เพราะปกติเราก็ต้องใส่ - y กันอยู่แล้วมิใช่รึ จึงเดาว่าอาจเป็นเพราะอยากให้ผู้ดูแลระบบเป็นคนตัดสินใจดีกว่าว่าจะกด y มั้ย หากมีปัญหาจะได้โทษ โอเอส ไม่ได้ว่าทำมาไม่ดี นะ

Read More

เกี่ยวกับเรื่องเวลา

เกี่ยวกับเรื่องเวลานั้นไม่ได้หมายถึง เธอมีเวลาให้เราหรือไม่ แต่เป็น เวลาในเครื่องคอมพิวเตอร์นะจ๊ะ

วันนี้ใช้งาน ubuntu แล้วนึกขึ้นได้ว่า สำหรับ ubuntu & debian นั้นจะมีเวลาสองแบบคือเวลาในเครื่อง (ที่กำหนดใน mainboard) ตรงนี้จะเรียกว่าเวลามาตรฐาน ส่วนเวลาที่อยู่ในระบบปฏิบัติการจะเป็นเวลาตาม ท้องถิ่น (Timezone) เช่น Asia/Bangkok เป็นต้น

ถ้าหากว่าตอนลงไม่ได้กำหนด เวลาท้องถิ่น ไว้จะทำอย่างไร? ก็จะมี tzdata คอยจัดการให้ครับ วิธีการสั่งให้ทำงานดังนี้ครับ

sudo dpkg-reconfigure tzdata

แล้วก็เลือกไปตามต้องการ

ปัญหาต่อไปสำหรับเครื่อง Desktop นั้นปกติ หลาย ๆ คนอาจจะลงไว้หลาย โอเอส (วินโดว์ , ลินุกซ์) บ้าง ซึ่งเวลาเปลี่ยนไปใช้อีกโอเอสนึง เวลาก็จะเปลี่ยนไป อาจต้องรอให้ syn เวลา กับ server ก่อนอีก หรือกระทั่งลงไว้เพียงตัวเดียว แต่กรณีถ่านเมนบอร์ดหมด (ทำไมไม่เปลี่ยนซะที) เวลาจะเปิดเครื่องเราก็จะเจอประโยคที่บอกประมาณว่า ให้กด F1 แล้วไปต่อ หรือยังไม่อยากไปต่อก็กด DEL ไปตั้งค่าซะ ผมชอบกด DEL แล้วไปตั้งค่าก่อนเข้าโอเอส แล้วผมก็ตั้งเวลาปัจจุบันจากนาฬิกาข้อมืออันเที่ยงตรงของเรา แต่พอเข้าไปในโอเอส ก็จะสับสนว่าเมื่อกี้ตั้งตรงแล้วนิ๊ ซึ่งปัญหานี้มันเกิดจากที่เกริ่นไว้ด้านบนนั่นเองครับ

การจัดการให้ ทั้งสองเข้าใจตรงกันเป็นคนชาติเดียวกันนั้นก็ให้เข้าไปจัดการที่แฟ้ม

/etc/default/rcS

แล้วแก้ไขบรรทัด UTC=yes ให้เป็น UTC=no ซะก็เข้าใจตรงกันแล้ว


Read More