Cách sao lưu website thông qua dòng lệnh SSH | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Cách sao lưu website thông qua dòng lệnh SSH

Chia sẻ kiến thức 05/03/2022

Cần sao lưu website của bạn? Hãy quên plugin đi! Đây là cách sao lưu website bằng SSH trên GoDaddy và các web chủ khác.

Cách sao lưu website thông qua dòng lệnh SSH

Sao lưu website hoặc blog của bạn có thể là một nhiệm vụ tốn kém và khó khăn, đòi hỏi nhiều plugin hoặc chi phí trả thêm cho nhà cung cấp dịch vụ lưu trữ của bạn — nhưng thực sự không cần như vậy.

Nếu bạn có quyền truy cập SSH vào trang web của mình, thì rất dễ để thực hiện nhiều tác vụ cấp cao khác nhau từ xa. Đây là cách sao lưu trang web của bạn bằng SSH trong một phiên dòng lệnh.

Dòng lệnh SSH là gì?

SSH cho bạn khả năng ‘nói chuyện’ trực tiếp với máy chủ web (webserver) của bạn. Nó không cung cấp một giao diện hay một GUI (Graphical user interface, hay Giao diện đồ họa người dùng) đẹp, mà chỉ là một dòng lệnh rất mạnh. Điều này có thể gây khó khăn cho một số người dùng, nhưng sức mạnh, tốc độ và mức độ tự động hóa tuyệt đối mà nó cung cấp có thể là một cứu cánh tuyệt đối và làm cho quá trình di chuyển (migrate) các trang web trở nên vô cùng dễ dàng.

Nhiều máy chủ được chia sẻ (shared host) không cho phép truy cập SSH vào tài khoản của bạn theo mặc định. Tuy nhiên, điều này đang thay đổi và nếu bạn đang sử dụng máy chủ Linux, bạn sẽ có quyền truy cập SSH. Nếu trang web của bạn được lưu trữ trên GoDaddy, SSH sẽ được bật theo mặc định. Nếu không, bạn có thể bật SSH trong giao diện cPanel của GoDaddy. Các máy chủ web khác sẽ cung cấp tính năng tương tự.

Cách sử dụng SSH trên máy tính

Cả ba hệ điều hành máy tính để bàn đều có giao diện dòng lệnh có hỗ trợ cho SSH.

  • Windows: sử dụng Windows PowerShell (bạn cũng có thể sử dụng PuTTY)
  • macOS: sử dụng Terminal
  • Linux: cũng sử dụng Terminal

Bạn chỉ cần mở giao diện và nhập lệnh ssh để sử dụng các công cụ liên quan.

Nếu bạn chưa sử dụng môi trường dòng lệnh bao giờ, hướng dẫn dưới đây có vẻ khó khăn. Mặc dù không có thời gian để hướng dẫn bạn mọi thứ về SSH, nhưng đây là một số điểm quan trọng:

  1. Sử dụng các mũi tên lên và xuống để chuyển qua các lệnh đã nhập trước đó
  2. Nhấn phím tab khi bạn nhập tên file dài — nếu không bị lẫn với tên khác, nó sẽ tự động hoàn thành

Khi bạn cảm thấy thoải mái với SSH, đã đến lúc bắt đầu sao lưu trang web của bạn.

Đăng nhập vào trang web của bạn qua SSH

Bắt đầu bằng cách khởi chạy công cụ SSH ưa thích của bạn và nhập thông tin sau:

ssh username@yourdomain.com

Bạn cũng có thể sử dụng địa chỉ IP. Điều này rất hữu ích nếu bạn đang truy cập một máy chủ web chưa được gán URL hoặc nếu bạn đang di chuyển các trang web và URL đã thay đổi. 

ssh username@YOUR.IP.ADDRESS.HERE

Nhập mật khẩu khi được nhắc. Nếu bạn chưa bao giờ sử dụng SSH, bạn có thể ngạc nhiên khi nhập mật khẩu của bạn vì không có gì hiện ra trên màn hình.

Đừng lo lắng, đó là vì lý do bảo mật.

Sau khi đăng nhập, bạn sẽ thấy một dấu nhắc lệnh (command prompt), như sau:

-bash-3.2:~$

Điều này có nghĩa là mọi thứ đều ổn, vì vậy hãy tiếp tục với các lệnh này.

Bắt đầu bằng cách điều hướng đến thư mục web của bạn. Để ‘liệt kê’ các tệp và thư mục hiện tại, gõ:

ls

Để thay đổi thành một thư mục, gõ:  

cd directoryname

Trong trường hợp này, tôi sẽ điều hướng đến thư mục

httpd

Đây là là thư mục gốc (root) của trang web của tôi. Sau đó bạn có thể gõ lệnh sau một lần nữa cho chắc chắn

ls
Truy cập trang web của bạn qua SSH để sao lưu và khôi phục dữ liệu

Tại thời điểm này, chúng ta đã sẵn sàng để bắt đầu quá trình sao lưu SSH.

Sao lưu cơ sở dữ liệu trang web của bạn với SSH

Vì bạn có thể sẽ sao lưu cài đặt WordPress, bạn sẽ muốn sao lưu cơ sở dữ liệu và tệp.

Bạn sẽ cần ba thông tin để sao lưu cơ sở dữ liệu của mình. May mắn là nếu bạn đang chạy WordPress, tất cả những thứ này đều có thể được tìm thấy trong tệp wp-config.php :

  1. Tên cơ sở dữ liệu
  2. Người dùng cơ sở dữ liệu
  3. Mật khẩu cơ sở dữ liệu

(Nếu bạn đang sử dụng một ứng dụng web hướng cơ sở dữ liệu khác, hãy tham khảo tài liệu thiết lập để biết những chi tiết này.)

Sau đó, đưa ra lệnh đơn giản này, đảm bảo thay thế tên người dùng, tên bảng và tên tệp sao lưu nếu cần:

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

Nhấn enter, sau đó nhập mật khẩu của bạn khi được nhắc. Sau khi chạy, bạn có thể phát hành một lệnh

ls

để kiểm tra xem tệp đã được xuất chưa. Xin chúc mừng, đây là tất cả thông tin trong cơ sở dữ liệu của bạn dưới dạng một tệp SQL duy nhất, sẵn sàng để sao lưu hoặc nhập ở nơi khác.

Không có quyền truy cập vào cơ sở dữ liệu bằng SSH

Chúng tôi đã giả định rằng máy chủ cơ sở dữ liệu của bạn đang chạy trên cùng một máy chủ mà bạn đang lưu trữ.

Tuy nhiên, trên GoDaddy, cơ sở dữ liệu MySQL được lưu trữ trên một máy chủ từ xa mà bạn không có quyền truy cập SSH. Trong những trường hợp như thế này, bạn sẽ cần truy cập PHPMyAdmin thông qua cPanel của máy chủ. Điều này nằm ngoài phạm vi của hướng dẫn này.

Sao lưu dữ liệu của trang web với SSH

Với cơ sở dữ liệu được lưu trữ dưới dạng một tệp duy nhất trên máy chủ, bạn có thể tiếp tục và sao lưu trang web của mình qua SSH. Đầu tiên điều hướng (sử dụng cd) đến thư mục bạn muốn tạo bản sao lưu. Tiếp theo, sử dụng

tar -vcf yourbackupfilename.tar /directory/path
Sao lưu trang web của bạn với SSH

Trong đó: 

  • tar

    — là định dạng nén Linux phổ biến, tương tự như zip nhưng hiệu quả hơn.

  • -vcf

    — là các tùy chọn đơn giản có nội dung “tạo một kho lưu trữ (archive) mới và cho tôi biết bạn đang làm gì”.

  • tar

    — là tên bạn đã chọn cho kho lưu trữ

  • /directory/path

    — chỉ định đường dẫn đến thư mục trang web

Một dấu chấm đơn tùy chọn có thể thay thế đường dẫn tệp, hướng dẫn kho lưu trữ để bao gồm mọi thứ. Bạn cũng có thể sử dụng * như một phương thức tóm tắt, nhưng điều này sẽ bỏ qua các tệp ẩn như .htaccess, vốn rất cần thiết cho WordPress.

Sau khi chạy, bạn sẽ có một tệp TAR duy nhất bao gồm mọi file trên trang web của bạn.

Tại thời điểm này, bạn có thể kết nối qua FTP và tải xuống kho lưu trữ của trang web.

Khôi phục sao lưu trang web với SSH

Giả sử có trang web của bạn bị lỗi nghiêm trọng. Bạn có một tệp TAR của mọi thứ mà bạn đã sao lưu vào tuần trước, vì vậy bạn muốn khôi phục nó.

Trước hết, đăng nhập qua FTP và tải tệp sao lưu lên thư mục gốc của máy chủ của bạn.

Bắt đầu bằng cách giải nén tất cả các tệp, đảo ngược những gì chúng ta đã làm để sao lưu chúng:

tar -vxf yourbackupfilename.tar

CẢNH BÁO: Thao tác này sẽ ghi đè lên các tệp hiện có!

Điểm khác biệt quan trọng ở đây là:

-vxf

— hướng dẫn tar giải nén các tập tin thay vì tạo một bản sao lưu mới.

Bước cuối cùng là đưa cơ sở dữ liệu của bạn trở lại vị trí cũ. Bắt đầu bằng cách thiết lập cơ sở dữ liệu trống với cùng mật khẩu và tên bảng như trước. Nếu bạn không có điều này, bạn cũng cần phải thay đổi cài đặt cấu hình trang web của mình.

Để khôi phục cơ sở dữ liệu, hãy sử dụng:

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

Sao lưu trang web SSH: Nhanh hơn so với bảng điều khiển và plugin web

Mặc dù nhiều công cụ và plugin khác nhau đã được ra đời để giúp bạn sao lưu trang web, nhưng không có gì nhanh hơn SSH!

Dịch từ: https://www.makeuseof.com/tag/backup-website-ssh-command-line/

Vân Nguyễn

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại