LevelUp! Studio » command https://blog.levelup.in.th Experience the new world. Fri, 26 May 2017 10:06:07 +0000 th hourly 1 http://wordpress.org/?v=3.8.1 ใช้คำสั่ง screen ใน linux อย่างไร? https://blog.levelup.in.th/2013/04/30/how-to-use-screen-in-linux%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b8%84%e0%b8%b3%e0%b8%aa%e0%b8%b1%e0%b9%88%e0%b8%87-screen-%e0%b9%83%e0%b8%99-linux-%e0%b8%ad%e0%b8%a2%e0%b9%88%e0%b8%b2%e0%b8%87%e0%b9%84/ https://blog.levelup.in.th/2013/04/30/how-to-use-screen-in-linux%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b8%84%e0%b8%b3%e0%b8%aa%e0%b8%b1%e0%b9%88%e0%b8%87-screen-%e0%b9%83%e0%b8%99-linux-%e0%b8%ad%e0%b8%a2%e0%b9%88%e0%b8%b2%e0%b8%87%e0%b9%84/#comments Tue, 30 Apr 2013 16:50:42 +0000 http://blog.levelup.in.th/?p=2675 screen คือคำสั่งในการรัน command linux ต่างๆ แบบเปิดทิ้งไว้ แม้เน็ตจะหลุด คอมจะพัง เราก็ยังสามารถ remote มาเปิด session เดิมได้โดยที่มันไม่หายไปดื้อๆ เหมาะอย่างยิ่งสำหรับคนเน็ตไม่เสถียร มีวิธีใช้งานดังนี้ เช่น

screen mysqldump -uroot -pxxx > backup.sql

วิธีการใช้การก็เพียงแค่พิมพ์คำว่า screen นำหน้าคำสั่งที่เราต้องการ เช่น mysqldump เรารู้ว่ามันนานมาก เลยสั่ง screen ไว้ หากกด CTRL+A คำสั่งเริ่มต้นก่อนจะป้อนคำสั่งอื่นๆ ของ screen ไม่อย่างนั้นจะยังเป็นการสั่งไปยัง process ที่ทำงานภายใน screen ไม่ใช่ตัว screen เช่นเดิม แล้วจะมีคำสั่งต่อดังนี้

  • d – ออกจากคำสั่ง screen โดยจะเข้าไปดูต่อวันหลังได้
  • [ - เข้าสู่ copy mode ตรงนี้เมื่อเข้าแล้วจะมีคำสั่งดังต่อไปนี้ (ส่วนใหญ่แทบจะลอกจาก vi มาทั้งดุ้น)
    • u - ออกจาก copy mode
    • h - ขยับ cursor ไปทางซ้าย
    • j - ขยับ cursor ลงข้างล่าง
    • k - ขยับ cursor ขึ้น
    • l - ขยับ cursor ลง
    • G - ขยับ cursor ไปที่ line ที่กำหนด
    • CTRL+u - เลื่อนขึ้นครึ่งหน้า
    • CTRL+d - เลื่อนลงครึ่งหน้า
    • CTRL+b - เลื่อนขึ้นหนึ่งหน้า
    • CTRL+f - เลื่อนลงหนึ่งหน้า
    • / - search จาก cursor ลงไปข้างล่าง (กด n เพื่อ search next)
    • ? - search จาก cursor ขึ้นข้างบน (กด n เพื่อ search next)

และหากกด d เพื่อออกจากคำสั่ง screen ไปแล้ว หรือเน็ตหลุดระหว่าง run screen เราสามารถพิมพ์ "screen -r" เพื่อกลับไปยัง session เดิมที่รันไว้ หรือหากมีหลาย session จะมีข้อความแสดงเช่นดังนี้


There are several suitable screens on:
24146.pts-5.node1 (04/30/13 23:48:40) (Detached)
23909.pts-5.node1 (04/30/13 23:33:22) (Detached)
23817.pts-5.node1 (04/30/13 23:27:58) (Detached)
23647.pts-0.node1 (04/30/13 23:21:36) (Attached)
Type "screen [-d] -r [pid.]tty.host” to resume one of them.

เราอยากเข้าอันไหนก็พิมพ์ตามที่เค้าบอก เช่น "screen -r 23817.pts-5.node1" ก็จะกลับ session ที่ต้องการได้ ไม่เลวเลยใช่ไหมครับ :)

]]>
https://blog.levelup.in.th/2013/04/30/how-to-use-screen-in-linux%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b8%84%e0%b8%b3%e0%b8%aa%e0%b8%b1%e0%b9%88%e0%b8%87-screen-%e0%b9%83%e0%b8%99-linux-%e0%b8%ad%e0%b8%a2%e0%b9%88%e0%b8%b2%e0%b8%87%e0%b9%84/feed/ 0
MongoDB Cheat list และขั้นตอนการทำ Replication https://blog.levelup.in.th/2013/02/28/mongodb-cheat-list-and-replication-stepmongodb-cheat-list-%e0%b9%81%e0%b8%a5%e0%b8%b0%e0%b8%82%e0%b8%b1%e0%b9%89%e0%b8%99%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3-replic/ https://blog.levelup.in.th/2013/02/28/mongodb-cheat-list-and-replication-stepmongodb-cheat-list-%e0%b9%81%e0%b8%a5%e0%b8%b0%e0%b8%82%e0%b8%b1%e0%b9%89%e0%b8%99%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3-replic/#comments Thu, 28 Feb 2013 14:14:23 +0000 http://blog.levelup.in.th/?p=2422 สรุปคำสั่ง mongoDB ที่ใช้บ่อยๆ

  • use db1 – ใช้งาน database db1 หรือสร้าง database ใหม่
  • show dbs – แสดงรายชื่อ database ทั้งหมด
  • db.getCollectionNames() – แสดง collection (ตาราง) ทั้งหมด
  • db.createCollection(“users”) – สร้าง collection ชื่อ users
  • db.users.drop() – ลบ collection users
  • db.createCollection(“new”, {capped:true, size:1073741824}); – สร้าง capped collection ขนาด 1073741824 bytes
  • db.logMoney.find({time:{$gte: new Date(2013,2,5)}}); – query date มากกว่าเท่ากับวันที่ๆ กำหนด
  • db.logMoney.ensureIndex({‘time’:1},{background:true}) – new index field time โดย background ไว้สั่งให้ทำโดยไม่ lock collection
  • db.logMoney.getIndexes()  - ดู Index ทั้งหมดขณะนั้น
  • db.logMoney.find({time:{$gt:new Date()}}) – query ระบุเวลา สามารถใช้ร่วมกับ mongodump ได้
  • db.logMoney.aggregate({$match:{time:{$gt:new Date(2013,1,1)},chng:{$lt:0}}},{$group:{_id:{usrId:1, }, count:{$sum:1}, sumAll:{$sum:”$chng”}}}) – ตัวอย่างการใช้งาน query ลักษณะเดียวกับ GROUP BY ใน MySQL
    (SELECT *, COUNT(*) as count,  SUM(chng) as sumAll FROM logMoney WHERE time > “2013-01-01″ AND chng < 0  GROUP BY usrId)

วิธีทำ Replication

ก่อนอื่น MongoDB แนะนำว่าควรมีเครื่องในวงอย่างน้อย 3 เครื่องครับ (แต่เราอาจจะใช้ 2 เครื่อง แล้วใช้อีกเครื่องเป็น Arbiter หรือตัวหลอกแทนได้) ขั้นตอนมีดังนี้

  1. Edit /etc/mongodb.conf ด้วยโปรแกรมที่ถนัด
  2. กำหนด replSet = <ชื่อกลุ่มที่ต้องการ> ในที่นี้ผมตั้งว่า rs0
  3. restart mongodb
  4. ทำข้อ 1-3 ใหม่กับเครื่องที่จะเป็น Slave ทุกเครื่อง
  5. เข้าเครื่องที่จะให้เป็น Master (สมมติว่า ip ภายในของเครื่อง master คือ 10.0.0.1) แล้วพิมพ์ mongo 10.0.0.1 (สำคัญมาก ห้ามลืมพิมพ์ ip หรือพิมพ์ผิดเด็ดขาด ไม่อย่างนั้นจะใช้ไม่ได้)
  6. ถ้าหน้าจอปรากฏดังนี้แสดงว่าทำได้ถูกต้อง

    mongo 10.0.0.1
    MongoDB shell version: 2.2.2
    connecting to: 10.0.0.1/test
    rs0:PRIMARY>
  7. สั่ง rs.initiate()
  8. สั่ง rs.add(“10.0.0.2″) (สมมติเครื่อง slave ip 10.0.0.2) และเครื่อง slave เครื่องอื่นๆ
  9. เสร็จ!

สรุปคำสั่ง replication ที่ใช้บ่อย

  • rs.initiate() – เริ่ม replica set
  • rs.status() – status replica set
  • rs.add(“ip”) – เพิ่ม secondary node
  • rs.addArb(“ip”) – เพิ่ม secondary node แบบตัวหลอกเพื่อโหวตตอน fail-over เท่านั้น ไม่มีข้อมูลจริง
  • rs.stepDown() – ถอนตัวจากการเป็น master
  • db.printReplicationInfo() – เช็คว่า oplog มีอายุกี่วัน

วิธี Backup MongoDB

เทียบเท่า mysqldump นั่นเอง ตัวอย่างนั้นใช้ dump เฉพาะตารางที่กำหนด และ query ในช่วงเวลาที่กำหนด ดังนี้

mongodump –host –port –db <ชื่อ database> –collection <ชื่อ collection> -q ‘{“time”:{“$gte”:{“$date”:1360627200000}}}’

วิธี Restore MongoDB

mongorestore

ขอให้สนุกกับ MongoDB :D

]]>
https://blog.levelup.in.th/2013/02/28/mongodb-cheat-list-and-replication-stepmongodb-cheat-list-%e0%b9%81%e0%b8%a5%e0%b8%b0%e0%b8%82%e0%b8%b1%e0%b9%89%e0%b8%99%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3-replic/feed/ 0
อัพเดทฐานข้อมูล Mysql ผ่าน Command line https://blog.levelup.in.th/2010/08/30/import-mysql-file-by-command-line%e0%b8%ad%e0%b8%b1%e0%b8%9e%e0%b9%80%e0%b8%94%e0%b8%97%e0%b8%90%e0%b8%b2%e0%b8%99%e0%b8%82%e0%b9%89%e0%b8%ad%e0%b8%a1%e0%b8%b9%e0%b8%a5-mysql-%e0%b8%9c%e0%b9%88/ https://blog.levelup.in.th/2010/08/30/import-mysql-file-by-command-line%e0%b8%ad%e0%b8%b1%e0%b8%9e%e0%b9%80%e0%b8%94%e0%b8%97%e0%b8%90%e0%b8%b2%e0%b8%99%e0%b8%82%e0%b9%89%e0%b8%ad%e0%b8%a1%e0%b8%b9%e0%b8%a5-mysql-%e0%b8%9c%e0%b9%88/#comments Mon, 30 Aug 2010 13:51:21 +0000 http://blog.levelup.in.th/?p=684 ตอนทำงานกับฐานข้อมูลใหญ่ๆ และต้องการย้ายหรือคัดลอกฐานข้อมูลขนาดใหญ่แล้ว การ import/export ผ่าน phpmyadmin นั้นจะทำงานได้ช้า หรืออาจจะทำไม่ได้เลยก็เป็นได้ แต่ยังมีขั้นตอนการย้ายฐานข้อมูลผ่านทาง command line ได้ ซึ่งทั้งความเร็ว และการรองรับขนาดข้อมูลต่างสูงกว่าทั้งสิ้นขั้นตอน คือ

1. นำไฟล์ .sql มาไว้ในเครื่องที่ต้องการลงฐานข้อมูลไว้

2. รัน cmd

3. ไปยัง directory ของ mysql ก่อน ในกรณีของผมคือ C:\xampp\mysql\bin

4. รันคำสั่ง mysql [database_name] -u [username] -p [password] < [.sql location]

ตัวอย่าง mysql levelstudio_db -u myusername -p mypassword < C:\levelstudio_query.sql

เท่านี้ฐานข้อมูลของเราก็จะถูกจัดเก็บลงไปยังที่ใหม่แล้วครับ

]]>
https://blog.levelup.in.th/2010/08/30/import-mysql-file-by-command-line%e0%b8%ad%e0%b8%b1%e0%b8%9e%e0%b9%80%e0%b8%94%e0%b8%97%e0%b8%90%e0%b8%b2%e0%b8%99%e0%b8%82%e0%b9%89%e0%b8%ad%e0%b8%a1%e0%b8%b9%e0%b8%a5-mysql-%e0%b8%9c%e0%b9%88/feed/ 0