Sao lưu và khôi phục máy chủ Ubuntu toàn diện (Phần 1)

1
3197
(Last Updated On: Th12 4, 2017)

Không biết các bạn thế nào chứ riềng mình thì tình trạng phải di chuyển server hay là cái tính thích tìm một nhà cung cấp máy chủ nào đó mà giá rẻ (rẻ nhưng dịch vụ cũng không đến nổi tệ) thế là mình cứ chuyển nhà cho website suốt. Mà mỗi lần chuyển nhà thì trước đây mình chỉ lưu giữ lại tập tin mã nguồn và cơ sở dữ liệu thôi, thành ra phải cài đặt lại từ đầu – kiểu như phải cài đặt lại LEMP (Linux, nginx, MySQL, PHP), chưa nói một số cái cần bổ sung nữa, khá là mất công nên mình nghĩ sao không bê nguyên những gì máy chủ cũ có qua luôn máy chủ mới luôn có khỏe hơn không.

Thế nhưng vấn đề đặt ra là không đơn giản giống như chúng ta hay Ghost Windows máy tính dùng ở nhà. Không đơn giản chỉ là tạo một file backup rồi restore lại như đối với một máy chủ (hay VPS). Đối với máy chủ có IPMI (Intelligent Platform Management Interface) thì đơn giản mình không nói làm gì vì bạn có thể điều khiển nó giống như là cái máy chủ đang ở trước mặt mình vậy (có thể cho một Boot-CD bằng cách Upload lên hay là bật tắt thông qua trang web của nhà cung cấp máy chủ), nhưng đa phần là các bạn sử dụng VPS hay là Dedicated giá rẻ thì không có IPMI. Cho nên mình xin viết bài này để các bạn có thể làm được.

Trước tiên bạn cứ kết nối tới server thông qua SSH, nhớ là phải dưới người dùng Root nhé:

sao-luu-khoi-phuc-may-chu-ubuntu-1

Sau đó thì chúng ta tiến hành nén tất cả những gì cần thiết lại vào một tập tin – ở đây là tất cả có trên server luôn:

Ra thư mục gốc trước:

cd /

Sau đó nén để lưu trữ hệ thống của bạn:

tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /

Lệnh ở trên sẽ tiến hành tạo tập tin backup.tar.gz chứa toàn bộ dữ liệu trên hệ thống máy chủ của bạn.

sao-luu-khoi-phuc-may-chu-ubuntu-2

Bạn có thể thấy hệ thống đang nén các file lại, tất tần tật có trên máy chủ của bạn.

Sau khi xong thì ta sẽ có giống như thế này:

sao-luu-khoi-phuc-may-chu-ubuntu-3

Đến đây thì bạn đã sao lưu thành công tập tin backup.tar.gz rồi đó, việc cần làm tiếp theo đó là bạn sẽ làm sao để có thể khôi phục trên máy chủ mới, y hệt những gì bạn có trên máy chủ cũ vậy.

Để có thể thành công bạn cần tìm sao bản phân phối hiện tại của máy chủ cũ của bạn bằng dòng lệnh sau:

lsb_release -a

sao-luu-khoi-phuc-may-chu-ubuntu-4

Như ở trên thì đó là bản Ubuntu Server 14.04.5 LTS. Tại sao chúng ta cần thông tin này làm gì nhỉ? Đơn giản đó là trên máy chủ mới của bạn, hãy cái đặt bản phân phối giống hệt như thế, tất nhiên phải là bản cài đặt sạch hoàn toàn nhé.

OK, tiếp theo thì mình sẽ tạo một máy chủ mới với nhà cung cấp mới của mình.

Và cũng kết nối SSH đến máy chủ mới:

sao-luu-khoi-phuc-may-chu-ubuntu-5

Như các bạn đã thấy, mình chưa đụng chạm gì đến server mới cả, giờ thì mình tiến hành lấy tập tin backup.tar.gz ở server cũ qua server mới, các bạn có thể sử dụng Secure Copy (scp):

scp remote_user@remote_host:/path/to/remote/file /path/to/local/file

Ở trên là một ví dụ cho dòng lệnh của bạn, hãy thay thế ip máy chủ của bạn cho đúng và cả user và cả đường dẫn tập tin của bạn nữa nhé.

sao-luu-khoi-phuc-may-chu-ubuntu-6

Vì một chút bảo mật mà mình che đi IP máy chủ cũ (thật ra đây là máy chủ chứa IP thật của trang VnGeek.com, tất nhiên nó chỉ là một Proxy trỏ tới hai máy chủ dự phòng nhưng mà cũng nên giữ kín chứ nhỉ, hi hi).

Bạn có thể thấy tốc độ truyền rất nhanh xấp xỉ 24MB/s.

Giờ đến bước quan trọng này, chúng ta sẽ khôi phục tất cả những gì có trên máy chủ cũ về máy chủ mới của chúng ta. Chỉ đơn giản với một dòng lệnh:

Trước tiên là ra thư mục gốc:

cd /

Theo như dòng lệnh lấy file backup.tar.gz về thì nó nằm ở thư mục gốc luôn (/backup.tar.gz).

Tiến hành khôi phục nào:

tar -xvpzf backup.tar.gz -C / --numeric-owner

Quả là câu lệnh thần thánh, xem nó hoạt động này:

sao-luu-khoi-phuc-may-chu-ubuntu-7

Ghi chú: Các bạn nếu muốn tùy biến thêm một số thư mục được loại bỏ ra tùy chọn có thể sử dụng lệnh sau:

Trước tiên là ra thư mục gốc:

cd /

Và:

tar -cvpzf backup.tar.gz \
--exclude=/backup.tar.gz \
--exclude=/proc \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/dev \
--exclude=/sys \
--exclude=/run \
--exclude=/media \
--exclude=/var/log \
--exclude=/var/cache/apt/archives \
--exclude=/usr/src/linux-headers* \
--exclude=/home/*/.gvfs \
--exclude=/home/*/.cache \
--exclude=/home/*/.local/share/Trash /

Hãy đợi một lát vì chưa xong đâu, mời các bạn xem tiếp phần 2 nhé…

1 BÌNH LUẬN

Bình luận