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:
- Up/Down Arrows: วนคำสั่งที่พิมพ์ไปแล้ว
- 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 อีกครั้งยืนยัน
พร้อมเริ่ม SSH Backup Process
Backup Database ด้วย SSH
ส่วนใหญ่ Backup WordPress -> Backup Database และ Files
ต้องการ 3 ข้อมูล Backup Database: หาได้ใน wp-config.php (WordPress)
- Database Name
- Database User
- 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
อธิบาย:
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
- FTP Upload Backup File ไป Root Directory ของ Server
- Unpack Files (ย้อนกลับการ Backup):
WARNING: จะ Overwrite ไฟล์ที่มีอยู่!tar -vxf yourbackupfilename.tar
ความแตกต่างสำคัญ: -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