วิธีใช้คำสั่ง rsync เพื่อคัดลอกไฟล์บน Ubuntu

rsync เป็นเครื่องมือสำหรับการคัดลอกไฟล์ rsync ใช้เพื่อคัดลอกไฟล์จากคอมพิวเตอร์ของคุณไปยังเครื่องระยะไกล จากเครื่องระยะไกลไปยังคอมพิวเตอร์ของคุณจาก a ไดเร็กทอรีไปยังไดเร็กทอรีอื่นบนคอมพิวเตอร์เครื่องเดียวกัน จากคอมพิวเตอร์ของคุณไปยังฮาร์ดไดรฟ์ภายนอกหรือแชร์เครือข่าย เป็นต้น rsync ยังสามารถใช้เพื่อสำรองข้อมูลส่วนเพิ่มได้อีกด้วย

ในบทความนี้ ผมจะแสดงวิธีใช้คำสั่ง rsync เพื่อคัดลอกไฟล์และไดเรกทอรี และทำการสำรองข้อมูลส่วนเพิ่ม ฉันจะใช้ Ubuntu สำหรับการสาธิต แต่การแจกจ่าย Linux สมัยใหม่ควรทำงานได้ดี มาเริ่มกันเลยดีกว่า

กำลังติดตั้ง rsync:

ควรติดตั้ง rsync บน Ubuntu แล้ว แต่ถ้าไม่ได้ติดตั้งบนคอมพิวเตอร์ของคุณด้วยเหตุผลบางประการ คุณสามารถติดตั้งได้จากที่เก็บแพ็คเกจอย่างเป็นทางการของ Ubuntu ด้วยคำสั่งต่อไปนี้:

$ udo apt install rsync -y

รูปแบบของคำสั่ง rsync:

รูปแบบพื้นฐานของคำสั่ง rsync คือ

$ rsync options source destination

  • แหล่งที่มา สามารถเป็นไฟล์หรือไดเร็กทอรีหรือเส้นทางเครือข่าย
  • ปลายทาง สามารถเป็นไดเร็กทอรีหรือเส้นทางเครือข่าย
  • rsync มีตัวเลือกมากมาย คุณสามารถเปลี่ยนลักษณะการทำงานของ rsync ได้โดยใช้ตัวเลือกเหล่านี้ เราจะพิจารณาตัวเลือกทั่วไปบางส่วนระหว่างทาง

เมื่อคุณใช้ rsync คุณจำเป็นต้องรู้สิ่งต่อไปนี้:

  • ถ้าคุณใส่ / หลังชื่อไดเร็กทอรีใน แหล่งที่มา ของ rsync เช่น ไฟล์ของฉัน/หมายความว่าคัดลอกไฟล์ทั้งหมดจากภายในไดเร็กทอรีไปยัง .เท่านั้น ปลายทาง.
  • ถ้าคุณไม่ใส่ / หลังชื่อไดเร็กทอรีใน แหล่งที่มา ของ rsync เช่น ไฟล์ของฉันจากนั้น rsync จะคัดลอกไฟล์ทั้งหมดจากไดเร็กทอรีไปยัง ปลายทาง รวมทั้งไดเร็กทอรี
  • หากคุณพิมพ์ a ปลายทาง เส้นทางไดเรกทอรีที่ไม่มีอยู่ จากนั้น rsync จะสร้างโดยอัตโนมัติตามต้องการ

การสำรองไฟล์และไดเรกทอรีในเครื่องด้วย rsync:

คุณสามารถคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังไดเร็กทอรีอื่นบนคอมพิวเตอร์ของคุณได้อย่างรวดเร็วด้วย rsync.

ตัวอย่างเช่น สมมติว่าคุณมีไฟล์สำคัญบางไฟล์ในไฟล์ ~/ดาวน์โหลด ไดเรกทอรี ตอนนี้ คุณต้องการสำรองข้อมูลไฟล์ทั้งหมดจากไฟล์ ~/ดาวน์โหลด ไดเร็กทอรีไปยัง USB thumb drive ของคุณ /dev/sdb1 ติดตั้งในไดเร็กทอรี /mnt/myusb.

มาสร้างไฟล์จำลองใน ~/ดาวน์โหลด ไดเรกทอรี

$ สัมผัส ~/ดาวน์โหลด/ทดสอบ{1..100}

ตอนนี้คัดลอกไฟล์ทั้งหมดจาก ~/ดาวน์โหลด ไดเรกทอรีถึง /mnt/myusb ไดเร็กทอรีด้วยคำสั่ง rsync ต่อไปนี้:

$ rsync -avzh ~/ดาวน์โหลด//mnt/myusb

ควรคัดลอกไฟล์

อย่างที่คุณเห็น ไฟล์ต่างๆ อยู่ใน /mnt/myusb ไดเรกทอรี

คุณยังสามารถคัดลอกทั้งหมด ~/ดาวน์โหลด ไดเร็กทอรีไปยัง USB thumb drive ของคุณดังนี้:

$ rsync -avzh ~/ดาวน์โหลด /mnt/myusb

อย่างที่คุณเห็น ไดเร็กทอรีทั้งหมดจะถูกคัดลอกไปยังธัมบ์ไดรฟ์ USB

อีกครั้ง หากคุณต้องการคัดลอกไฟล์ทั้งหมดจากไฟล์ ~/ดาวน์โหลด ไดเร็กทอรีไปยังไดเร็กทอรีอื่น (สมมติว่า mydownloads/) บนธัมบ์ไดรฟ์ USB ของคุณ ให้รัน rsync ดังนี้:

$ rsync -avzh ~/ดาวน์โหลด//mnt/myusb/mydownloads

อย่างที่คุณเห็น ไฟล์ต่างๆ ถูกคัดลอกไปยังธัมบ์ไดรฟ์ USB อย่างถูกต้อง

การสำรองไฟล์และไดเรกทอรีระยะไกลด้วย rsync:

ด้วย rsync คุณสามารถคัดลอกไฟล์และไดเร็กทอรีจากเซิร์ฟเวอร์ระยะไกลไปยังระบบไฟล์ในเครื่องหรือธัมบ์ไดรฟ์ USB เพื่อวัตถุประสงค์ในการสำรองข้อมูล คุณยังสามารถคัดลอกไฟล์และไดเร็กทอรีจากระบบไฟล์ในเครื่องของคุณไปยังเซิร์ฟเวอร์สำรองระยะไกลได้อีกด้วย rsync ใช้ SSH สำหรับการคัดลอกไฟล์และไดเรกทอรีไปยัง/จากเซิร์ฟเวอร์ระยะไกล

คุณต้องมีแพ็คเกจเซิร์ฟเวอร์ SSH (opensh-เซิร์ฟเวอร์ บน Ubuntu) และ rsync แพ็คเกจที่ติดตั้งบนเซิร์ฟเวอร์ระยะไกลหากคุณต้องการใช้ rsync เพื่อวัตถุประสงค์ในการสำรองไฟล์

ตัวอย่างเช่น สมมติว่าคุณต้องการคัดลอกเนื้อหาทั้งหมด (รวมถึงไดเรกทอรี) ของ /www ไดเร็กทอรีจากเซิร์ฟเวอร์ระยะไกลของคุณ www.example1.com กับธัมบ์ไดรฟ์ USB ของคุณที่ติดตั้งอยู่บนเส้นทาง /mnt/myusb บนระบบไฟล์ในเครื่องของคุณ

ในการทำเช่นนั้น คุณสามารถใช้คำสั่ง rsync ต่อไปนี้:

$ rsync -avzh ราก@www.example1.com:/www /mnt/myusb

บันทึก: ที่นี่, ราก เป็นชื่อผู้ใช้ระยะไกล www.example1.com เป็นชื่อ DNS ของเซิร์ฟเวอร์ระยะไกลและ /www เป็นเส้นทางไดเรกทอรีบนเซิร์ฟเวอร์ระยะไกล คุณยังสามารถใช้ที่อยู่ IP ของเซิร์ฟเวอร์ระยะไกลแทนชื่อ DNS ได้หากต้องการ

คุณอาจเห็นข้อความต่อไปนี้หากคุณกำลังเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลเป็นครั้งแรก เพียงพิมพ์ ใช่ แล้วกด .

ตอนนี้พิมพ์รหัสผ่านสำหรับผู้ใช้ระยะไกล (ในกรณีของฉันคือ ราก) และกด .

ไฟล์และไดเร็กทอรีทั้งหมดภายใน /www ไดเร็กทอรีรวมทั้งไดเร็กทอรี /www ควรคัดลอกไปยังธัมบ์ไดรฟ์ USB ดังที่คุณเห็นในภาพหน้าจอด้านล่าง

คุณยังสามารถคัดลอกไฟล์จากระบบไฟล์ในเครื่องของคุณไปยังเซิร์ฟเวอร์ระยะไกลด้วย rsync

ในตัวอย่างก่อนหน้านี้ คุณได้สำรองข้อมูลของ /www ไดเร็กทอรีบนเซิร์ฟเวอร์ระยะไกล สมมติว่า ไฟล์บางไฟล์ในเซิร์ฟเวอร์ระยะไกลเสียหาย และคุณต้องการกู้คืนจากข้อมูลสำรอง

ในการทำเช่นนั้น ให้รันคำสั่ง rsync ดังนี้:

$ rsync -avzh/mnt/myusb/www/ ราก@www.example1.com:/www

ตอนนี้พิมพ์รหัสผ่านของเซิร์ฟเวอร์ระยะไกลของคุณแล้วกด .

ควรคัดลอกไฟล์จากระบบไฟล์ในเครื่องของคุณไปยังเซิร์ฟเวอร์ระยะไกล

การสำรองข้อมูลส่วนเพิ่มด้วย rsync:

ในการสำรองข้อมูลประเภทนี้ แหล่งที่มา และ ปลายทาง ไดเร็กทอรีจะถูกซิงค์ หากมีการเพิ่มไฟล์ใด ๆ ลงใน แหล่งที่มา ไดเร็กทอรีมันถูกเพิ่มลงใน ปลายทาง ไดเร็กทอรีเช่นกัน ในทำนองเดียวกัน หากไฟล์หรือไดเร็กทอรีใด ๆ จากไฟล์ แหล่งที่มา ไดเร็กทอรีจะถูกลบออก จะถูกลบออกจาก ปลายทาง ไดเร็กทอรีเช่นกัน

rsync เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการสำรองข้อมูลส่วนเพิ่ม

สมมติว่าคุณมีไดเรกทอรี ~/คลาวด์ ในผู้ใช้ของคุณ บ้าน ไดเรกทอรี ตอนนี้ คุณต้องการสำรองข้อมูลส่วนเพิ่มของไดเร็กทอรีไปยังธัมบ์ไดรฟ์ USB ที่ติดตั้งบนเส้นทาง /mnt/usb1 บนเซิร์ฟเวอร์ระยะไกล backup.example.com.

บันทึก: คุณต้องมี opensh-เซิร์ฟเวอร์ และ rsync แพ็คเกจที่ติดตั้งบนเซิร์ฟเวอร์ระยะไกลของคุณเพื่อให้ใช้งานได้

เพื่อทำการสำรองข้อมูลส่วนเพิ่มของ ~/คลาวด์ให้รันคำสั่งต่อไปนี้:

$ rsync -avzh–ลบ–ความคืบหน้า ~/คลาวด์/ โชวอน@backup.example.com:/mnt/usb1/สำรอง

ตอนนี้พิมพ์รหัสผ่านสำหรับผู้ใช้ระยะไกลแล้วกด .

เนื้อหาของ ~/คลาวด์ ควรคัดลอกไดเร็กทอรีไปยังธัมบ์ไดรฟ์ USB บนเซิร์ฟเวอร์ระยะไกล

อย่างที่คุณเห็น ไฟล์ทั้งหมดจะถูกคัดลอกไปยังธัมบ์ไดรฟ์ USB ที่ติดตั้งบนเซิร์ฟเวอร์สำรองระยะไกล

ตอนนี้ มาลบไฟล์ออกจากระบบไฟล์ในเครื่องแล้วดูว่าเกิดอะไรขึ้น

$ rm ~/คลาวด์/package.txt

ตอนนี้ ใช้ rsync เพื่อซิงค์ไดเร็กทอรีอีกครั้งด้วยคำสั่งเดิม

$ rsync -avzh–ลบ–ความคืบหน้า ~/คลาวด์/ โชวอน@backup.example.com:/mnt/usb1/สำรอง

อย่างที่คุณเห็นไฟล์ package.txt จะถูกลบออกจากธัมบ์ไดรฟ์ USB ที่ติดตั้งบนเซิร์ฟเวอร์สำรองระยะไกลด้วย

จะไปที่ไหนต่อไป:

คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ rsync ได้ใน man page ของ rsync man page ของ rsync มีคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือกทั้งหมดของ rsync ฉันขอแนะนำให้คุณลองดู

คุณสามารถเข้าถึงหน้า man ของ rsync ด้วยคำสั่งต่อไปนี้:

$ ชาย rsync

นั่นคือวิธีที่คุณใช้ rsync เพื่อคัดลอกไฟล์และทำการสำรองข้อมูลส่วนเพิ่มบน Ubuntu ขอบคุณที่อ่านบทความนี้

ขอบคุณที่มา : linuxhint.com

ตำแหน่งไอทีที่มาแรงในช่วงนี้ DevOps

  • ตำแหน่งงานมาแรงหนีไม่พ้น DevOps มาทำความรู้จักกัน
  • DevOps เป็นหนึ่งในหน้าที่หรือบทบาทที่เกี่ยวข้องกับการพัฒนาและดูแลระบบซอฟต์แวร์ในระบบปฏิบัติการที่เข้ากันได้ (compatible) ระหว่างทีมพัฒนาซอฟต์แวร์ (Development Team) และทีมดูแลระบบ (Operations Team) โดยมีเป้าหมายหลักในการเพิ่มประสิทธิภาพและความรวดเร็วในกระบวนการพัฒนาและการให้บริการซอฟต์แวร์ นี่คือบางหน้าที่หลักของ DevOps:
  • แต่ละองค์กรกำหนดหน้าที่แตกต่างกันไป ขอแจงเป็นภาพรวม ดังนี้
  • 1 – ประสานงานระหว่างทีมพัฒนาระบบกับทีมดูแลระบบเซิร์ฟเวอร์
  • 2 – ผู้รับผิดชอบในการออกแบบและสร้างระบบต้นแบบ (Infrastructure as Code) เพื่อให้ระบบสามารถสร้างและตั้งค่าโดยอัตโนมัติ และสามารถทำงานได้อย่างเสถียรและยืดหยุ่น
  • 3 – การติดตั้งและกำหนดค่าระบบ โดยมีการเลือกใช้เครื่องมือที่ทำงานได้ออัตโนมัติ เพื่อให้การทำงานถูกต้อง และ แม่นยำ
  • 4 – ดูแลเรื่องการเปลี่ยนแปลงของระบบ มีการวิเคราะห์ผลกระทบที่อาจเกิดขึ้น มีการวางแผน ทดสอบ เป็นต้น
  • 5 – การวางแผนและดำเนินการทดสอบซอฟต์แวร์เพื่อให้มีคุณภาพสูง รวมถึงการใช้เทคนิคและเครื่องมือที่เหมาะสมในการทดสอบอัตโนมัติ เพื่อตรวจสอบความถูกต้องและประสิทธิภาพของระบบ
  • 6 – ตรวจสอบความปลอดภัย การดูแลความมั่นคงของระบบ การเข้ารหัส และการป้องกันการโจมตีทางไซเบอร์
  • 8 – ติดตามและการวัดผลในระบบ เพื่อตรวจสอบสถานะ ประสิทธิภาพ และปัญหาที่เกิดขึ้น เพื่อทำการปรับปรุงและปรับแก้ไขตามต้องการ
  • 7 – การสำรองข้อมูลและการกู้คืนข้อมูล เพื่อให้ข้อมูลอยู่ในสภาพแวดล้อมที่ปลอดภัยและสามารถเข้าถึงได้
  • หน้าที่ของ DevOps อาจแตกต่างไปตามองค์กรและบริบทที่ต่างกัน แต่ทุกครั้ง DevOps มุ่งเน้นการรวมกันของการพัฒนาและการดูแลระบบ เพื่อให้มีการสร้างแลเพิ่มความรวดเร็วในกระบวนการพัฒนาและการส่งมอบซอฟต์แวร์ รวมถึงเพิ่มประสิทธิภาพในการดูแลระบบและการสนับสนุนลูกค้า ทั้งนี้ DevOps ยังเน้นการใช้เทคโนโลยีอัตโนมัติ เครื่องมือและกระบวนการเพื่อให้การพัฒนาและการดูแลระบบเป็นไปอย่างราบรื่นและมีประสิทธิภาพสูงขึ้น
  • เครื่องมือสำหรับ DevOps มีอะไรบ้าง เพียงบางส่วนเท่านั้น
  • 1 – Jenkins: สร้างและจัดการระบบแบบอัตโนมัติ (Automation) สร้างและทดสอบโค้ด รวมถึงการปรับปรุงของซอฟต์แวร์
  • 2 – Git: จัดการเวอร์ชันของ Source Code เช่น การอัพโหลด อัพเดท
  • 3 – Docker: จัดการการสร้างและเรียกใช้สิ่งที่เรียกว่า “containers” เพื่อให้แอปพลิเคชันทำงานได้บนแพลตฟอร์มที่แตกต่างกัน
  • 4 – Kubernetes: จัดการและควบคุมคลัสเตอร์ของ containers ซึ่งช่วยให้สามารถรันและจัดการกับแอปพลิเคชันที่มีขนาดใหญ่และเครื่องเซิร์ฟเวอร์หลายเครื่องได้อย่างมีประสิทธิภาพ
  • 5 – Ansible: จัดการระบบและการกำหนดค่าอัตโนมัติที่ใช้ในการติดตั้งซอฟต์แวร์และการกำหนดค่าระบบต่างๆให้กับหลายๆเครื่องเซิร์ฟเวอร์
  • 6 – Terraform: สำหรับสร้างและจัดการโครงสร้างพื้นฐาน (Infrastructure as Code) ในส่วนงาน Infrastructor
  • 7 – Puppet: เครื่องมือการจัดการระบบอัตโนมัติที่ช่วยในการกำหนดค่าและจัดการการติดตั้งและการดูแลระบบ
  • 8 – ELK Stack (Elasticsearch, Logstash, Kibana): เครื่องมือที่ช่วยในการรวบรวม วิเคราะห์ และแสดงผลข้อมูลการเข้าถึงและบันทึกข้อผิดพลาด (logs) ในระบบ หรือ สามารถใช้ Splunk แบบทดลองใช้งานฟรี แต่ใช้ได้จริง
  • เก็บ Log จริงได้ไม่เกิน 500 MBต่อวัน
  • มาดูระบบของ DevOps กันบ้าง ซึ่งแต่ละองค์กรจะมีการแบ่งหรือจำแนกแตกต่างกัน
  • 1 – DevOps Engineer: ผู้รับผิดชอบในการออกแบบและดูแลระบบพัฒนาและดูแลระบบเพื่อให้ได้รับประสิทธิภาพสูงสุด รวมถึงการจัดการอัตโนมัติ
  • 2 – DevOps Architect: ผู้รับผิดชอบในการออกแบบและวางแผนสถาปัตยกรรม DevOps และระบบพัฒนา รวมถึงการสร้างและบริหารจัดการเครื่องมือเพื่อสนับสนุนการพัฒนาและการดูแลระบบ
  • 3 – Automation Engineer: ผู้รับผิดชอบในการสร้างและดูแลระบบอัตโนมัติ เช่น การสร้างสคริปต์การกำหนดค่าและการจัดการระบบ การออกแบบและการพัฒนาเครื่องมืออัตโนมัติ และการเขียนสคริปต์เพื่อให้กระบวนการเป็นอัตโนมัติ
  • 4 – Cloud Engineer: ผู้รับผิดชอบในการออกแบบและดูแลระบบคลาวด์ รวมถึงการกำหนดค่าและการจัดการคลาวด์การติดตั้งและการกำหนดค่าบริการคลาวด์ เช่น AWS, Azure, Google Cloud และการจัดการความปลอดภัยของระบบคลาวด์
  • 5 – Infrastructure Engineer: ผู้รับผิดชอบในการออกแบบและดูแลพื้นฐานของระบบ IT รวมถึงการติดตั้งและการกำหนดค่าอุปกรณ์เครือข่าย การจัดการเครื่องเซิร์ฟเวอร์ และการติดตั้งระบบสำรองข้อมูล
  • 6 – DevOps Consultant: ผู้ให้คำปรึกษาและคำแนะนำเกี่ยวกับ DevOps ให้กับองค์กรหรือโครงการ รวมถึงการออกแบบและการดูแลกระบวนการ DevOps เพื่อสนับสนุนการพัฒนาและการดูแลระบบ
  • 7 – Release Manager: ผู้รับผิดชอบในการวางแผนและการดำเนินงาน ทดสอบระบบก่อนปล่อยซอฟต์แวร์ ตลอดจน การจัดการการเปลี่ยนแปลง และการประสานงานกับทีมพัฒนาและทีมดูแลระบบ
  • 8 – Site Reliability Engineer (SRE): การออกแบบและดูแลระบบที่มีความเสถียรสูง รวมถึงการคาดการณ์และการจัดการปัญหาในระบบ การเขียนสคริปต์อัตโนมัติ เพื่อตรวจสอบสถานะและการดูแลระบบ
  • 9 – Continuous Integration/Continuous Deployment (CI/CD) Engineer: ออกแบบและดูแลกระบวนการ CI/CD รวมถึงการตั้งค่าและการจัดการเครื่องมือ CI/CD เช่น Jenkins, GitLab CI/CD, AWS CodePipeline เป็นต้น
  • มาดูเรื่องเงินเดือนกันบ้าง
  • นี้เพียงการคาดการณ์เพียงเท่านั้น
  • ตำแหน่ง DevOps ในประเทศไทย สามารถใช้ข้อมูลเฉลี่ยดังต่อไปนี้เป็นข้อมูลประมาณการ:
  • ระดับ Entry-level (ผู้มีประสบการณ์งาน 1-3 ปี): ประมาณ 30,000 – 50,000 บาทต่อเดือน
  • ระดับ Middle-level (ผู้มีประสบการณ์งาน 3-5 ปี): ประมาณ 50,000 – 80,000 บาทต่อเดือน
  • ระดับ Senior-level (ผู้มีประสบการณ์งานมากกว่า 5 ปี): ประมาณ 80,000 บาทขึ้นไปต่อเดือน

เปิด Vmware workstation 12 ไม่ได้

เปิดแขึ้นหน้าต่างแล้วขึ้นหน้าต่าง ดังนี้

This virtual machine is configured for 64-bit guest operating systems. However, 64-bit operation is not possible.

This host supports Intel VT-x, but Intel VT-x is disabled.

Intel VT-x might be disabled if it has been disabled in the BIOS/firmware settings or the host has not been power-cycled since changing this setting.


(1) Verify that the BIOS/firmware settings enable Intel VT-x and disable ‘trusted execution.’

(2) Power-cycle the host if either of these BIOS/firmware settings have been changed.

(3) Power-cycle the host if you have not done so since installing VMware Player.

(4) Update the host’s BIOS/firmware to the latest version.

For more detailed information, see http://vmware.com/info?id=152.

แก้ไขด้วยการเปิด Intel VT-X ที Bios

ขอบคุณแหล่งที่มา www.pantip.com