Sao lưu toàn bộ website bằng SSH Command Line

QuanTriMang - Việc sao lưu toàn bộ 1 website hoặc blog bất kỳ có thể là công đoạn khó khăn và phức tạp, yêu cầu nhiều phần mềm, công cụ hỗ trợ, người quản trị có nhiều kỹ năng và kinh nghiệm, hoặc sự hỗ trợ trực tiếp từ phía đơn vị cung cấp hosting. Nhưng trên thực tế, thì nhiều lúc bạn sẽ không cần đến những yếu tố trên. Nếu có quyền SSH để truy cập tới host (yêu cầu tối thiểu là 1 mô hình mạng cá nhân ảo – Virtual Private Server), thì mọi việc sẽ trở nên đơn giản hơn rất nhiều, bạn có thể sao lưu, phục hồi, di chuyển... hoặc thực hiện các thao tác khác với toàn bộ website chỉ với vài câu lệnh.

Vậy SSH Command Line là gì?

Hiểu theo cách nôm na, SSH cho phép bạn “nói chuyện” trực tiếp với web server. Không có khái niệm về giao diện, nút điều khiển chức năng... tất cả đều được thực hiện qua dòng lệnh cơ bản. Có thể đây là trở ngại rất lớn đối với nhiều người, nhưng bù lại, sức mạnh tuyệt đối, tốc độ làm việc vô cùng nhanh chóng cùng với tính linh động cao, tích hợp nhiều cơ chế tự động... thì SSH Command Line lại trở thành công cụ không thể thiếu khi bạn đã làm chủ được nó.

Nhưng trên thực tế, hầu hết các gói host chia sẻ lại không cung cấp quyền truy cập SSH tới tài khoản của người dùng. Nếu bạn đang sử dụng dịch vụ của GoDaddy, hãy tham khảo thêm về quá trình này tại đây. Để đăng nhập qua SSH, mở ứng dụng Terminal trong OS X và gõ lệnh theo cú pháp sau:

ssh username@yourdomain.com

Hệ thống sẽ yêu cầu người sử dụng nhập mật khẩu, nếu bạn chưa từng sử dụng SSH từ trước đến giờ, thì chắc hẳn sẽ rất ngạc nhiên vì khi gõ password, màn hinh không hiển thị gì cả. Không cần phải lo lắng, vì tính năng đó được sử dụng để đảm bảo an toàn cho hệ thống. Sau khi đăng nhập vào bên trong, tất cả những gì bạn nhìn thấy chỉ là dòng lệnh, tương tự như sau:

-bash-3.2$

Có nghĩa rằng mọi việc đều ổn định. Tiếp theo, chúng ta sẽ tìm hiểu thêm về những cú pháp cơ bản khác. Để liệt kê ra các thư mục và danh sách file hiện tại, các bạn gõ lệnh:

ls

Còn nếu muốn thay đổi thư mục:

cd directoryname

Trong trường hợp này, chúng ta sẽ chuyển tới thư mục httpdocs – là thư mục gốc của toàn bộ website, sử dụng lệnh như sau:

Sao lưu database:

Thực chất, đây có thể coi là 1 quá trình sao lưu toàn bộ các file quan trọng của website. Trước tiên là 3 thông tin quan trọng nhất của toàn bộ cơ sở dữ liệu, được tìm thấy trong file wp-config.php (đối với WordPress):

- Tên cơ sở dữ liệu

- Tài khoản database

- Mật khẩu

Khi sử dụng cú pháp lệnh này, các bạn nhớ để ý thay thế những thông tin trên với hệ thống thực tế, bao gồm username, table name, file backup... tương ứng:

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

Nhấn Enter, điền mật khẩu và quá trình sẽ tự động được tiến hành. Các bạn nhớ hãy sử dụng lệnh ls để kiểm tra các file được tạo xem có chuẩn xác với yêu cầu hay không.

Sao lưu dữ liệu:

Sau bước trên, toàn bộ cơ sở dữ liệu đã được sao lưu thành 1 file sql duy nhất trên server, tiếp theo là quá trình sao lưu toàn bộ dữ liệu thành 1 file nén duy nhất, đề phòng trường hợp rủi ro xảy ra.

tar -vcf yourbackupfilename.tar .

Thay thế yourbackupfilename với tên file sao lưu theo ý muốn của bạn. Tại câu lệnh này, Tar là 1 chuẩn định dạng file nén phổ biến trong Linux, tương tự như zip nhưng hiệu quả hơn nhiều, còn -vcf là 1 lựa chọn khác của hệ thống, với chức năng tạo file nén và liệt kê danh sách các thao tác đang thực hiện, và tiếp theo là tên của file nén lưu trữ đó. Cuối cùng là 1 dấu chấm để yêu cầu hệ thống sao lưu tất cả mọi thứ, chúng ta có thể sử dụng ký tự * thay thế, nhưng đôi khi sẽ bỏ qua các file ẩn như .htaccess – vốn rất quan trọng với WordPress.

Sau khi kết thúc quá trình trên, chúng ta sẽ có 1 file nén .tar duy nhất, tất cả những gì cần làm tại lúc này là đăng nhập qua FTP và tải file đó về máy tính.

Khôi phục mọi thứ:

Giả sử rằng tình huống xấu nhất xảy ra, bạn mất toàn bộ dữ liệu của website, tất cả những gì còn lại là file sao lưu của quá trình trên. Và bây giờ việc cần làm ngay lúc này là phục hồi lại hoạt động của website. Trước tiên, hãy đăng nhập qua FTP và upload file sao lưu tới server, bên cạnh đó, các bạn hãy nhớ di chuyển file sao lưu gần đây nhất ra khỏi thư mục root và bắt tay vào tiến hành.

Giải nén file sao lưu trực tiếp trên server:

tar -vxf yourbackupfilename.tar

Điểm khác biệt ở đây so với câu lệnh bên trên là cú pháp -vxf, có nghĩa là giải nén file *.tar đó. Điểm cần chú ý quan trọng là tại bước này, hãy tạo 1 cơ sở dữ liệu hoàn toàn trống với tên tài khoản và mật khẩu giống với database trước đó, sau đó gõ lệnh:

mysql -u username -p tablename > databasebackupfilename.sql

Rất đơn giản và dễ dàng, nếu mọi thứ được thiết lập đúng theo yêu cầu của hệ thống, quá trình sao lưu sẽ hoàn tất nhanh chóng và bạn sẽ không còn phải vất vả như trước kia nữa. Trong bài tiếp theo, chúng ta sẽ cùng nhau tìm hiểu và thực hiện việc tự động hóa quá trình này với đoạn shell script và câu lệnh CRON. Chúc các bạn thành công!

Thứ Ba, 12/04/2011 13:26
31 👨 3.598
0 Bình luận
Sắp xếp theo
    ❖ Kiến thức cơ bản