Showing posts with label debian. Show all posts
Showing posts with label debian. 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

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

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, 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

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

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

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