ข้ามไปที่เนื้อหาหลัก

บทความ

วิธีสำรองข้อมูลระบบปฏิบัติการ Linux โดยใช้คำสั่ง “dd”

1. เราสามารถสร้างไฟล์ Backup ของฮาร์ดดิสก์และบันทึกลงในอุปกรณ์จัดเก็บข้อมูลอื่นๆ มีข้อดีหลายประการในการสำรองข้อมูลของคุณไปเป็นอิมเมจ อีกประการหนึ่งคือความสะดวกในการใช้งาน โดยทั่วไปวิธีนี้จะเร็วกว่าการสำรองข้อมูลประเภทอื่น ทำให้คุณสามารถกู้คืนข้อมูลได้อย่างรวดเร็วหลังเกิดเหตุที่ไม่คาดคิดขึ้น ใช้คำสั่งด้านล่างเพื่อสำรองข้อมูลฮาร์ดดิสก์ /dev/sda ไปเป็นไฟล์อิมเมจของดิสก์  # dd if=/dev/sda of=/var/tmp/sda_disk.img   if: ไดรฟ์ต้นทาง (/dev/sda)  of: ไดรฟ์ปลายทาง (/dev/sdb)   2.ในการกู้คืนฮาร์ดดิสก์ด้วยไฟล์อิมเมจที่เราสร้างขึ้น ให้ใช้คำสั่ง dd ต่อไปนี้   # dd if=sda_disk.img of=/dev/sdc   if: ไดรฟ์ต้นทาง (/dev/sda)  of: ไดรฟ์ปลายทาง (/dev/sdb)

restart server network Ubuntu / Debian

->ใช้คำสั่งต่อไปนี้เพื่อรีเซทเครือข่ายใหม่ # sudo /etc/init.d/networking restart หรือ # sudo /etc/init.d/networking stop # sudo /etc/init.d/networking start หรือ # sudo systemctl restart networking ->เมื่อเสร็จแล้ว ให้ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบสถานะ # sudo /etc/init.d/networking status หรือ # sudo systemctl status networking

ตรวจสอบสถานะ Kong

เริ่มต้นต้นด้วย รันคำสั่งต่อไปนี้นะครับ kong health จะแสดงผลตามภาพครับ

Add User in Debian for docker (เพิ่ม user ใน Debian)

หลังจากเข้า server พิมพ์คำสั่งดังต่อไปนี้เลยครับ 1.เพิ่ม user sudo adduser username ex ผมเพิ่ม user ชื่อ service Adding user `service' ... Adding new group `service' (1001) ... Adding new user `service' (1001) with group `service' ... Creating home directory `/home/service' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for service Enter the new value, or press ENTER for the default Full Name []: serviceuser Room Number []: docker Work Phone []: Home Phone []: Other []: 2.ต่อมาเพิ่มกลุ่ม กันก่อนครับ ผมจะเพิ่มกลุ่มชื่อ docker นะครับ sudo groupadd docker 3.ต่อมาเราจะมาเพิ่ม user เข้ากลุ่มที่เราสร้างไว้ ด้วยคำสัง sudo usermod -aG docker service เป็นอันเสร็จครับ ***เพิ่มเติม การเปลี่ยน password ใช้คำสั่งตามนี้ครับ passwd service หรือ sudo passwd service *** แถม การลบ user ใช้คำสั่ง deluser เช...

React Router หลังอัปเดท V.5 แล้วไม่แสดงผลหน้าเว็บ

 หลังจากการอัปเดทเวอร์ชันของ React Router ไปใช้ v.5 ที่อัพในโปรเจคเป็น v.5.2.0 แล้วไม่สามารถแสดงหน้าเว็บไซต์ที่เราทำการ Redirect  ไปยังหน้าต่างๆ หลังจากการหาว่ามีปัญหาที่ส่วนไหน สุดท้ายมาเจอตัวที่มีส่วนที่ทำให้สคริปไม่สามารถทำงานได้คือ "history": "^5.0.0" หลังจากที่ได้ลง downgrade ลงเป็น  4.10.1 ปรากฎว่า ทำงานได้ปกติ  ex : import   React   from   "react" ; import   ReactDOM   from   "react-dom" ; import  {  createBrowserHistory  }  from   "history" ; import  {  Router ,  Route ,  Switch ,  Redirect  }  from   "react-router-dom" ;  // core components import   Admin   from   "layouts/Admin.js" ; import   Front   from   "layouts/Front.js" ; import   Authen   from   "layouts/Authen.js" ; import   "assets/css/material-local.css" ; const   hist  =  createBrowserHistory (); Rea...

React.useEffect ***บันทึกไว้กันลืม

const Getdata= () => {  // state loaded เอาไว้ render ในกรณีที่ยังไม่ได้ข้อมูลจาก service  [loaded, setLoaded] = React.useState(false)   // state content เอาไว้ใส่ข้อมูล   [content, setContent] = React.useState('') useEffect(() => {  // ดึงข้อมูลเสร็จแล้วค่อยทำ setContent   getContent.then(res => {  setLoaded(true) setContent(res)   })   // เมื่อทำ unmount ก็ clear state กลับเป็นอย่างเดิม   return () => {   setLoaded(false)   setContent('') } },   // state ที่เราสนใจจะ subscribe ใน useEffect ตัวนี้   [loaded, content])  } ***  - useEffect ใน React functional component แทน componentDidMount - useEffect คล้ายๆ componentDidMount  แต่ ยืดหยุ่นกว่า -  componentDidMount ถูก trigger ทุกครั้งที่ component ถูก mount กับ DOM หรือทุกครั้งที่ state เปลี่ยนแปลง -  useEffect ก็จะ trigger ทุกครั้งที่ state หรือ props ของ function เปลี่ยนแปลง ...

วิธีการติดตั้ง Docker บน Debian 9 (Stretch)

Step 1  ก่อนติดตั้ง ถ้ามีการติดตั้ง  Docker มาก่อน ต้องลบก่อนนะครับด้วยคำสั่ง  apt-get purge docker lxc-docker docker-engine docker.io ตอนนี้ติดตั้งแพ็คเกจที่จำเป็นบนระบบของคุณเพื่อติดตั้ง Docker บนระบบ Debian ใช้คำสั่งด้านล่างนี้นี้ครับ: apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common Step 2 ติดตั้ง Docker Repository สร้างคีย์ เพื่อเอาไว้ตรวจสอบลายเซ็นของ packages ก่อนติดตั้งครับด้วยคำสั่งต่อไปนี้ apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common หลังจากนั้นให้เพิ่มที่เก็บ Docker บนระบบ Debian ของคุณซึ่งมีแพ็คเกจ Docker รวมถึงการอ้างอิง คุณต้องเปิดใช้งานที่เก็บนี้เพื่อติดตั้ง Docker บน Debian ด้วยคำสั่งดังนี้ add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable" Step   3 — ติดตั้ง Docker on Debian 9 ระบบของคุณพร้อมสำหรับการติดตั้ง Docker แล้ว รันคำสั่งต่อไปนี้ เลย apt-get update  apt-get install docker-ce  หลังจากติดตั้ง Do...

วิธีการ ใช้ Debian (Linux) ในฐานะ Root User

  "root" account หรือ root user ในคอมพิวเตอร์  Debian ( Linux)  เป็นบัญชีผู้ใช้ที่มีสิทธิ์เต็มที่ในการใช้งานและปรับแต่งส่วนต่างๆ การใช้คอมแบบ root access นั้นจำเป็นถ้าจะใช้คำสั่งบางอย่างใน  Debian ( Linux) โดยเฉพาะ      root access ควรใช้เฉพาะตอนที่จำเป็นจริงๆ อย่าล็อกอินไว้ด้วย root user ตลอด จะได้ไม่เผลอทำไฟล์ระบบที่สำคัญเสียหายได้  1. พิมพ์  . su -   ใน  terminal     แล้วกด   ↵  Enter . เพื่อล็อกอินในฐานะ "super user"  2. ใส่รหัสผ่าน root ตอนที่ถูกถาม.  พอพิมพ์  su -  และกด  ↵  Enter  แล้ว คุณจะถูกถามรหัสผ่าน root  *** วันนี้เอาเท่านี้ก่อนนะครับเดี่ยวเเวะมาเขียนต่อ

Linux command line คำสั่งต่างๆ ที่ต้องทราบเมื่อคุฯต้องใช้งาน linux

Check os version in Linux remote server login using the ssh:  ssh user@server-name พิมพ์หนึ่งในคำสั่งต่อไปนี้เพื่อค้นหาชื่อและเวอร์ชันของระบบปฏิบัติการใน Linux - cat /etc/os-release - lsb_release -a - hostnamectl คำสั่งต่อไปนี้เพื่อค้นหารุ่นเคอร์เนล Linux :   uname -r

Restart all running docker containers

เริ่มต้น กับหาการเช็ค containers กันก่อนครับ  -> docker ps ต่อไปเป็นการรีเซท ทีละ container -> docker restart <container id> สุดท้าย เป็นการรีเซท ทั้งหมดในเซริฟเวอร์เราครับ  -> docker restart $(docker ps -q)

วิธีต่อสตริง Golang

string concatenation เป็นพื้นฐานที่สุดในการเขียนโปรแกรมหลาย ๆ ภาษาจะใช้เครื่องหมาย  +  ในภาษา Go ก็เช่นกัน มาดูกันครับ มีแบบต่างๆให้เราเลือกใช้แบบไหนบ้าง 1.ใช้งาน buffer Package byte package main import ( "bytes" "fmt" ) func main() { var str bytes.Buffer // เริ่มต้นด้วย "Hello " str.WriteString("Hello ") // ต่อคำว่า world! ลงในตัวแปร str.WriteString("world!") fmt.Println(str.String()) } ใช้งานฟังก์ชัน bytes.WriteString ในการต่อสตริง และแปลงให้อยู่ในรูปแบบตัวแปรสตริงด้วยฟังก์ชัน bytes.String    2. ใช้งานฟังก์ชัน copy package main import "fmt" func main() { str:= make([]byte, 13) i := 0 // เริ่มต้นด้วย "Hello " i += copy(str[i:], "Hello, ") // ต่อคำว่า world! ต่อลงไปใน byte i += copy(str[i:], "world!") fmt.Println(string(str)) } ตัวแปร slice ของ byte สามารถ convert type เป็นสตริงได้เลย 3. ใช้งานฟังก์ชัน join package main import ( "fmt" "strings" ) func main() { str := make...

http status code ที่ควรรู้

1xx: Information 100:  Continue  เซิร์ฟเวอร์ได้รับ request header แล้ว, และ client จะส่ง request body ต่อ 101:  Switching Protocols  ผู้ร้องขอต้องการเปลี่ยน protocol 102:  Checkpoint  เซิร์ฟเวอร์กำลังประมวลผล 2xx: Successful 200:  OK  การส่งคำขอสำเร็จ 201:  Created  สร้างทรัพยากรใหม่ 202:  Accepted  คำขอได้รับการยอมรับแล้ว แต่ยังประมวลผลยังไม่เสร็จ 203:  Non-Authoritative Information  คำขอได้รับการประมวลผลเรียบร้อย แต่กำลังส่งคืนข้อมูลที่อาจมาจากแหล่งอื่นๆ 204:  No Content  คำขอได้รับการประมวลผลเรียบร้อย แต่ไม่ส่งคืนเนื้อหาใด ๆ 205:  Reset Content  การร้องขอได้ดำเนินการสำเร็จ แต่ไม่มีเนื้อหาใด ๆ คืนกลับมา ต่างจากรหัส 204 ตรงที่การตอบรับนี้ ผู้ร้องขอจำเป็นต้องรีเซทเนื่อหาเอกสาร 206:  Partial Content  เซิร์ฟเวอร์ส่งข้อมูลมาให้บางส่วน ตามที่ผู้ร้องขอกำหนดไว้ใน header 3xx: Redirection 300:  Multiple Choices  ผู้ใช้สามารถเลือกลิงค์ที่จะ redirect ไป (ไม่เกิน 5 ลิงค์...

แก้ npm ERR! Cannot read property 'match' of undefined

    npm ERR! Cannot read property 'match' of undefined มีวิธีแก้ดังนี้ครับ 1. ลบ node_modules และ package-lock.json 2. รัน npm install อีกครั้งครับ

จัดการกับ react-scripts: Permission denied

วิธีแก้คือการจัดการ การเข้าถึง  node_modules/.bin/react-scripts ubuntu ใช้คำสั่งนี้ในโปรเจค ครับ -> chmod +x node_modules/.bin/react-scripts

ปัดทศนิยม golang

Float to string การแปลงค่าทศนิยมเป็นสตริงโดยใช้ method fmt.Sprintf    s := fmt.Sprintf("%.2f", 100.3456) // ค่าที่ได้คือ "100.35"  Float to float การปัดเศษเป็นค่าทศนิยมให้ใช้หนึ่งในเทคนิคเหล่านี้ x := 100.3456 fmt.Println(math.Floor(x*100)/100)    // 100.34 (round down) fmt.Println(math.Round(x*100)/100)  // 100.35 (round to nearest)  fmt.Println(math.Ceil(x*100)/100)  // 100.35 (round up)  credit  https://yourbasic.org/golang/round-float-2-decimal-places/

Golang Data Types

Data Types แยกได้ดังนี้ครับไปดูกัน  Boolean types ก็เหมือนกับภาษาทั่วๆไป คือ true และ false Numeric types ก็คือตัวเลขที่เป็นพวก integer หรือ float String types คือตัวอักษรเหมือภาษาอื่นๆที่เคยเจอกันนั้นเอง Derived types จะเป็นพวก pointer, array, structure, function, etc. เพิ่มเติม เกี่ยวกับ Numeric types  Integer types (u = Unsigned) uint เป็นทั้ง 32 หรือ 64 bit int เหมือนกับ uint uint8 คือตัวเลขที่มีขนาด 8 bit ตั้งแต่ 0 ถึง 255 uint16 คือตัวเลขที่มีขนาด 16 bit ตั้งแต่ 0 ถึง 65535 uint32 คือตัวเลขที่มีขนาด 16 bit ตั้งแต่ 0 ถึง 4294967295 uint64 คือตัวเลขที่มีขนาด 64 bit ตั้งแต่ 0 ถึง 18446744073709551615 int8 คือตัวเลขที่มีขนาด 8 bit ตั้งแต่ -128 ถึง 127 int16 คือตัวเลขที่มีขนาด 16 bit ตั้งแต่ -32768 ถึง 32767 int32 คือตัวเลขที่มีขนาด 32 bit ตั้งแต่ -2147483648 ถึง 2147483647 int64 คือตัวเลขที่มีขนาด 64 bit ตั้งแต่ -9223372036854775808 ถึง 9223372036854775807 เพิ่มเติม เกี่ยวกับ Floating types  float32 เก็บแบบมาตรฐาน IEEE754 32 bit float64...