ข้ามไปยังเนื้อหาหลัก

การโอนย้ายผู้ใช้ระหว่าง FASTPANEL

บทนำ

บทความนี้อธิบายกระบวนการโอนย้ายบัญชีผู้ใช้และข้อมูลที่เกี่ยวข้อง (เว็บไซต์ ฐานข้อมูล อีเมล เป็นต้น) จากเซิร์ฟเวอร์ FASTPANEL หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งโดยใช้ยูทิลิตีการย้ายข้อมูลที่มีมาให้ในตัว

คำสำคัญ

  • เซิร์ฟเวอร์ต้นทาง - เซิร์ฟเวอร์ที่กำลังโอนย้ายข้อมูลออกจาก
  • เซิร์ฟเวอร์ปลายทาง - เซิร์ฟเวอร์ที่กำลังโอนย้ายข้อมูลไปยัง

หมายเหตุสำคัญ

  • โดยค่าเริ่มต้น การย้ายข้อมูลจะทำงานได้อย่างถูกต้องเฉพาะกับไซต์ที่มีการกำหนดค่า FASTPANEL มาตรฐานเท่านั้น

  • ไซต์ที่มีการเปลี่ยนแปลง การกำหนดค่าด้วยตนเอง สามารถโอนย้ายได้ก็ต่อเมื่อใช้แฟล็ก -m สำหรับการแมปที่อยู่ IP

  • หากไม่มีรหัสผ่านที่เข้ารหัสสำหรับเจ้าของฐานข้อมูล ฐานข้อมูลจะไม่ถูกโอนย้าย

  • หากเว็บไซต์ไม่ได้รับการโอนย้าย ฐานข้อมูลที่เกี่ยวข้องก็จะไม่ถูกโอนย้ายเช่นกัน

  • สามารถโอนย้ายได้เฉพาะฐานข้อมูลในเครื่องเท่านั้น

กระบวนการย้ายข้อมูล

การเชื่อมต่อ

เซิร์ฟเวอร์ปลายทางจะเชื่อมต่อกับเซิร์ฟเวอร์ต้นทางผ่าน SSH ระหว่างการเชื่อมต่อครั้งแรก เซิร์ฟเวอร์ปลายทางจะติดตั้งคีย์ SSH บนเซิร์ฟเวอร์ต้นทาง (ทั้งคีย์ที่เตรียมไว้ล่วงหน้าหรือคีย์ที่สร้างจากรหัสผ่าน)

ขั้นตอนการย้ายข้อมูล

  • การติดตั้งโมดูล
  • การรวบรวมข้อมูลเกี่ยวกับอ็อบเจ็กต์ที่สามารถโอนย้ายได้
  • การสร้างผู้ใช้
  • การโอนย้ายใบรับรอง SSL
  • การสร้างเว็บไซต์ บัญชี FTP โดเมนอีเมล และบัญชีอีเมล
  • การสร้างฐานข้อมูลและผู้ใช้ฐานข้อมูล
  • การโอนย้ายไฟล์เว็บไซต์และไฟล์กล่องจดหมายอีเมล
  • การโอนย้ายงาน cron

การโอนไฟล์จะดำเนินการโดยใช้ rsync ฐานข้อมูลจะถูกโอนย้ายโดยการสร้างดัมป์ผ่าน SSH tunnel

คำสั่งเพื่อเริ่มการย้ายข้อมูล

คำสั่งนี้จะรันบน เซิร์ฟเวอร์ปลายทาง โดยผู้ใช้ที่มีสิทธิ์ root:

/usr/local/fastpanel2/fastpanel transfer run [SSH_PARAMETERS] [IP_PARAMETERS] [ADDITIONAL_OPTIONS]

แฟล็กบรรทัดคำสั่ง

การเชื่อมต่อ SSH

  • --remote_host="SOURCE_IP" - ที่อยู่ IP ของเซิร์ฟเวอร์ต้นทาง
  • --remote_port="SSH_PORT" - พอร์ต SSH
  • --remote_username="SSH_USER" - ผู้ใช้ (ต้องเป็น root)
  • --remote_password="USER_PASSWORD" - รหัสผ่านสำหรับผู้ใช้ SSH ที่ระบุ
  • --ssh_key_path="PATH_TO_KEY" - พาธไปยังคีย์ SSH ส่วนตัวบนเซิร์ฟเวอร์ปลายทางสำหรับเชื่อมต่อกับเซิร์ฟเวอร์ต้นทาง หากใช้คีย์ ไม่จำเป็นต้องใช้รหัสผ่าน (--remote_password)

ที่อยู่ IP

คุณต้องใช้เพียงหนึ่งในแฟล็กต่อไปนี้เพื่อจัดการที่อยู่ IP ของไซต์ระหว่างการโอนย้าย แฟล็ก -m มีลำดับความสำคัญสูงกว่า

  • -i "IP_ADDRESS_ON_DESTINATION" - กำหนดที่อยู่ IP ที่ระบุให้กับไซต์ทั้งหมดที่โอนย้ายบนเซิร์ฟเวอร์ปลายทาง หากต้องการระบุ IP หลายรายการ (เช่น หากมีหลายรายการบนต้นทาง) ให้ใช้แฟล็กซ้ำสำหรับแต่ละ IP ต้นทางที่ต้องโอนย้าย

  • -m "SOURCE_IP,DESTINATION_IP" - วิธีที่แนะนำ สร้างการแมปโดยตรง: ไซต์ทั้งหมดที่ใช้ SOURCE_IP บนเซิร์ฟเวอร์ต้นทางจะใช้ DESTINATION_IP บนเซิร์ฟเวอร์ปลายทาง สามารถระบุแฟล็กนี้ได้หลายครั้งสำหรับคู่ IP ที่แตกต่างกัน จำเป็นสำหรับการโอนย้ายไซต์ที่มีการแก้ไขการกำหนดค่าด้วยตนเอง เนื่องจากช่วยให้แทนที่ที่อยู่ IP ในคำสั่ง listen ได้อย่างถูกต้อง

การตั้งค่าเพิ่มเติม

  • --users="USER_LIST" - โอนย้ายเฉพาะผู้ใช้ที่ระบุเท่านั้น (คั่นด้วยเครื่องหมายจุลภาค) หากไม่ระบุ จะโอนย้ายผู้ใช้ทั้งหมด
  • --disable_disk_quota - ปิดใช้งานการโอนย้ายโควตาดิสก์ของผู้ใช้
  • --with_user_data - รวมการคัดลอกเนื้อหาทั้งหมดของไดเรกทอรีโฮมของผู้ใช้ (ยกเว้นไดเรกทอรีย่อย logs/) โปรดใช้อย่างระมัดระวัง เนื่องจากอาจเพิ่มเวลาในการโอนย้ายและปริมาณข้อมูลที่โอนย้ายอย่างมาก
  • --only_data - โอนย้ายเฉพาะข้อมูลเท่านั้น (ไฟล์เว็บไซต์ ไฟล์เมล ดัมป์ฐานข้อมูล) มีประโยชน์หากการย้ายโครงสร้างเริ่มต้น (ผู้ใช้ ไซต์ DB ฯลฯ) สำเร็จแล้ว แต่เกิดข้อผิดพลาดระหว่างขั้นตอนการคัดลอกไฟล์หรือดัมป์ ช่วยให้สามารถรันซ้ำเฉพาะส่วนการคัดลอกข้อมูลได้
  • --transfer_timeout - ตั้งค่า timeout ของการดำเนินการ (ค่าเริ่มต้นคือ 60 นาที)

ตัวอย่างคำสั่ง

โอนย้ายผู้ใช้ทั้งหมดจากเซิร์ฟเวอร์ 11.22.33.44 ไปยังเซิร์ฟเวอร์ปัจจุบัน บนเซิร์ฟเวอร์เดิม ไซต์ใช้ IP 11.22.33.44 และ 11.22.33.55; บนเซิร์ฟเวอร์ใหม่ ไซต์เหล่านั้นควรใช้ 99.88.77.66 และ 99.88.77.67 ตามลำดับ เชื่อมต่อผ่าน SSH โดยใช้รหัสผ่าน

/usr/local/fastpanel2/fastpanel transfer run \
--remote_host=11.22.33.44 \
--remote_username=root \
--remote_password=YourSourceRootPassword \
-m 11.22.33.44,99.88.77.66 \
-m 11.22.33.55,99.88.77.67

ปัญหาที่อาจเกิดขึ้นและประเภทของข้อผิดพลาด

ข้อผิดพลาดในบันทึกการย้ายข้อมูลไม่ได้บ่งชี้ถึงปัญหาร้ายแรงเสมอไป แต่อาจชี้ให้เห็นสาเหตุที่อ็อบเจ็กต์บางรายการไม่ได้รับการโอนย้าย

  • ความขัดแย้ง: เกิดขึ้นเมื่อไม่สามารถโอนย้ายอ็อบเจ็กต์ได้เนื่องจากการกำหนดค่าปัจจุบันของเซิร์ฟเวอร์ปลายทาง (เช่น มีผู้ใช้หรือไซต์ชื่อเดียวกันอยู่แล้ว) หรือหากการกำหนดค่าของไซต์บนเซิร์ฟเวอร์ต้นทางไม่เป็นที่รู้จักของแผงควบคุม (เช่น เนื่องจากมีการแก้ไขด้วยตนเองอย่างมาก)

  • ไม่มีรหัสผ่านที่บันทึกไว้: ตามที่กล่าวไว้ก่อนหน้านี้ ผู้ใช้ฐานข้อมูล MySQL ที่ไม่มีรหัสผ่านที่บันทึกไว้ใน FASTPANEL บนเซิร์ฟเวอร์ต้นทางจะไม่สามารถโอนย้ายได้

  • การตั้งค่าด้วยตนเองและที่อยู่ IP: หากไซต์บนเซิร์ฟเวอร์ต้นทางมีการแก้ไขการกำหนดค่าเว็บเซิร์ฟเวอร์ด้วยตนเอง และไม่ได้ใช้แฟล็ก -m ระหว่างการย้ายข้อมูลเพื่อแมปที่อยู่ IP ของไซต์นั้น ไซต์ดังกล่าวจะไม่ถูกโอนย้าย เนื่องจากแผงควบคุมไม่ทราบว่าควรระบุ IP ใดในการกำหนดค่าบนเซิร์ฟเวอร์ปลายทาง