Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธี Backup Website ผ่าน SSH Command Line

Backup Website/Blog อาจแพ้และลำบาก ต้องใช้ Plugins หลายตัว หรือแผนเพิ่มจาก Hosting Provider — แต่จริงๆ ไม่จำเป็น

หากมี SSH Access ไปที่ Website ง่ายมากที่จะทำ High-level Tasks แบบ Remote นี่คือวิธี Backup Website ด้วย SSH ใน Command Line Session

SSH Command Line คืออะไร?

SSH ให้คุณคุยกับ Web Server โดยตรง ไม่มี GUI สวยงาม แค่ Command Line อันทรงพลัง อาจดูน่ากลัว แต่ Power, Speed, Automation ที่ให้มา เป็นชีวิตใจ และทำ Migration Sites ง่ายมาก

Shared Hosts หลายที่ ไม่อนุญาต SSH Access โดย Default แต่กำลังเปลี่ยน หากใช้ Linux Hosting ควรมี SSH Access GoDaddy: SSH เปิด Default ถ้าไม่ได้ Enable ใน cPanel Host อื่นก็มี Feature คล้ายกัน

VPS และ Dedicated Server อนุญาต SSH ไม่รู้จัก? อ่านคู่มือ Web Hosting Services ของเรา

ใช้ SSH บนคอมพิวเตอร์อย่างไร

ทั้ง 3 Desktop OS มี CLI รองรับ SSH:

  • Windows: Windows PowerShell (หรือ PuTTY)
  • macOS: Terminal
  • Linux: Terminal

เปิด Interface พิมพ์คำสั่ง ssh ใช้ Tools ได้เลย

มือใหม่ CLI อาจดูยาก ไม่มีเวลาสอน SSH ทุกอย่าง นี่ Shortcuts:

  1. Up/Down Arrows: วนคำสั่งที่พิมพ์ไปแล้ว
  2. Tab: Autocomplete ชื่อไฟล์ยาว (ถ้า Unique พอ)

พอคล่อง SSH เริ่ม Backup Website ได้

Login เข้า Website ผ่าน SSH

เปิด SSH Tool พิมพ์:

ssh username@yourdomain.com

ใช้ IP Address ได้: เหมาะสำหรับ Server ที่ยังไม่มี URL หรือ Migration ที่ URL ย้าย

ssh username@YOUR.IP.ADDRESS.HERE

ใส่ Password เมื่อถาม (พิมพ์ Password จะไม่แสดงอะไรบนหน้าจอ — มาตรการความปลอดภัย)

Login สำเร็จ -> Command Prompt เช่น -bash-3.2:~$ ทุกอย่างปกติ ดำเนินต่อ

เริ่มดูโครงสร้าง ไป Web Directory: พิมพ์ ls ดูไฟล์/โฟลเดอร์

cd directoryname

ไป Directory ที่ต้องการ (เช่น httpd Root ของเว็บ) ls อีกครั้งยืนยัน

วิธี Backup Website ผ่าน SSH Command Line

พร้อมเริ่ม SSH Backup Process

Backup Database ด้วย SSH

ส่วนใหญ่ Backup WordPress -> Backup Database และ Files

ต้องการ 3 ข้อมูล Backup Database: หาได้ใน wp-config.php (WordPress)

  1. Database Name
  2. Database User
  3. Database Password

(App อื่น ดูใน Setup Documentation)

รันคำสั่ง (แทนที่ username, tablename, backupfilename):

mysqldump --add-drop-table -u [username] -p [tablename] > [backupfilename].sql

Enter -> ใส่ Password -> รันเสร็จ ls เช็คไฟล์ output -> ได้ SQL File เดียวครบ Database พร้อม Backup/Import

กรณีไม่มี SSH Access ไป Database

สมมติ Database Server รันบน Server เดียวกับ Hosting

แต่ GoDaddy: MySQL อยู่ Remote Server ไม่มี SSH Access -> ต้องเข้า PHPMyAdmin ผ่าน cPanel (นอกขอบเขตบทความ)

Backup ข้อมูล Website ด้วย SSH

Database เก็บเป็นไฟล์เดียวบน Server แล้ว -> Backup Site ผ่าน SSH ไป Directory ที่จะสร้าง Backup ใช้:

tar -vcf yourbackupfilename.tar /directory/path
วิธี Backup Website ผ่าน SSH Command Line

อธิบาย:

  • tar — Linux Compression Format คล้าย Zip แต่มีประสิทธิภาพกว่า
  • -vcf — Options: สร้าง Archive ใหม่ และบอกว่ากำลังทำอะไร
  • tar — ชื่อ Archive ที่คุณตั้ง
  • /directory/path — Path ของ Website Directory

Single Dot (.) แทน File Path ได้ = Include ทุกอย่าง * (Wildcard) ใช้ได้แต่ข้าม Hidden Files เช่น .htaccess (สำคัญสำหรับ WordPress)

รันเสร็จ -> ได้ Single TAR File ครบไฟล์ทั้ง Site

ตอนนี้ FTP Download Site Archive ได้

Restore Website Backup ด้วย SSH

กรณีเลวร้าย: Site พัง มี TAR Backup สัปดาห์ก่อน -> Restore

  1. FTP Upload Backup File ไป Root Directory ของ Server
  2. Unpack Files (ย้อนกลับการ Backup):
    tar -vxf yourbackupfilename.tar
    WARNING: จะ Overwrite ไฟล์ที่มีอยู่!

ความแตกต่างสำคัญ: -vxf = Extract แทน Create

ขั้นสุดท้าย: นำ Database กลับเข้าไป เตรียม Blank Database เดียว Password/Table Name เดิม (หากไม่มี ต้องแก้ Site Config ด้วย)

Restore Database:

mysql -u [username] -p [tablename] < [databasebackupfilename].sql

SSH Website Backups: เร็วกว่า Web Consoles และ Plugins

Tools/Plugins หลายตัวช่วย Backup Site แต่ ไม่มีอะไรเร็วกว่า SSH

หากมี SSH Access กับ GoDaddy หรือ Host อื่น ตอนนี้ Backup Website ได้แล้ว สนใจเพิ่ม? เรียนรู้จัดการ Linux Server ระยะไกลด้วย SSH