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

Thursday, December 8, 2011

Debian Lenny 5.0 end of life


เจอข่าวจาก web H online บอกว่าทาง Debian ได้เตือนผู้ที่ใช้ Debian Lenny version 5.0 ว่าจะหมดอายุ End Of Life (EOF) แล้ว หรืออีกนัยนึงคือเลิก support แล้ว ในวันที่ 6 กุมภาพันธ์ 2012 ที่จะถึงนี้

โดยทาง Debian ได้เตือนให้อัพเกรดเป็น เวอร์ชั่น 6.0 โค๊ดเนมว่า Squeeze ครับ เครื่องที่ผมใช้อยู่อัพเกรดเรียบร้อยแล้ว :) ที่มา : H-online

Read More

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