ใช้คำสั่ง screen ใน linux อย่างไร? by

30
Apr
0

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 ที่ต้องการได้ ไม่เลวเลยใช่ไหมครับ :)

MongoDB Cheat list และขั้นตอนการทำ Replication by

28
Feb
0

สรุปคำสั่ง 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

อัพเดทฐานข้อมูล Mysql ผ่าน Command line by

30
Aug
0

ตอนทำงานกับฐานข้อมูลใหญ่ๆ และต้องการย้ายหรือคัดลอกฐานข้อมูลขนาดใหญ่แล้ว การ import/export ผ่าน phpmyadmin นั้นจะทำงานได้ช้า หรืออาจจะทำไม่ได้เลยก็เป็นได้ แต่ยังมีขั้นตอนการย้ายฐานข้อมูลผ่านทาง command line ได้ ซึ่งทั้งความเร็ว และการรองรับขนาดข้อมูลต่างสูงกว่าทั้งสิ้น

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน