Cafemmo Club
← Quay lại danh sách

Hướng dẫn backup dữ liệu từ VPS DigitalOcean

2ndCapricorn27/03/20204966 lượt xem26 bình luận
Đọc title thì các bác thấy hướng dẫn này rất là bình thường đúng không ạ? Đối với em nó mất tới 2 ngày ăn vạ thằng support của DO mới biết được. Vài tiếng nó reply một lần nản quá, em viết bài này để anh em newbie có cái đọc khi gặp trường hợp như em. Trường hợp nào thì cần dùng cách này: Một ngày đẹp trời, cái web của em load cao quá, không rõ nguyên nhân, lười đọc logs nên em "sudo reboot" cái VPS luôn. Như mọi lần thì reboot xong là chạy ok rồi đấy. Lần này thì không, nó từ chối kết nối internet luôn; SSH không vào được, ping không reach được. Vào web console của DO thì được nhưng ping ra ngoài không được, thậm chí dùng VPS khác cùng location để ping cũng không được. Nếu VPS của bạn có triệu chứng tương tự thì đây là cách để các bạn cứu dữ liệu của mình. Các bước tiến hành: Bước 1: Backup dữ liệu: Edit đoạn này tí vì các bác thắc mắc không kết nối được sao lại dump database được. DO có cái Web Console để mình vào gõ lệnh, cái này giống như mình được phép cắm dây trực tiếp vào server để gõ vậy (gần giống SSH nhưng xịn hơn) Các bạn nhớ dump csdl và nén thư mục chứa web của mình lại để các bước sau lấy dữ liệu nhanh hơn. - Backup database:
mysqldump -u mysqlusername -p csdl_cua_ban > /var/www/tenweb-$(date +%F).sql
Dùng câu lệnh trên để dump csdl thành file tenweb-ngay-thang-nam.sql - Backup code:
sudo tar -cvpzf /var/www/tenweb.com.tar.gz -C /var/www/ html
Câu lệnh trên sẽ nén thư mục html nằm ở đường dẫn /var/www/html lại cho bạn. 2 file trên sẽ nằm ở thư mục /var/www/ Bước 2: Boot from Recovery ISO https:// www. digitalocean. com/docs/droplets/resources/recovery-iso/ Ở link trên họ hướng dẫn chi tiết rồi, tuy nhiên mình sẽ lọc phần mình cần cho các bạn dễ hiểu. - Truy cập vào trang quản lý của DO => tìm đến Droplet cần backup sau đó làm lần lượt như sau: + Vào phần Power: bấm turn off. + Vào phần Recovery: Chọn Boot from Recovery ISO. + Quay lại Power: turn on. + Vào phần Access: Bấm Launch Console Đợi nó khởi động xong, Web Console của DO hiện lên sẽ trông như thế này:
This droplet is booted to the DigitalOcean recovery environment.
When you are finished, you may set your Droplet to boot from
the local disk again via the DigitalOcean control panel.

This rescue environment is based on Ubuntu 18.04.

* Network access and SSH have been enabled automatically *
* SSH Host keys do NOT match while using this rescue system *

Root Password has randomly been set to:
  exam-ple0-1234-5678
Your are strongly encouraged to use SSH keys. To import your SSH
public keys:
  From Github:        ssh-import-id gh:<Github user name>
  From Launchpad.net: ssh-import-id lp:<launchpad user name>
--------------------------------------------------------------------
1. Mount your Disk Image [Not Mounted]
2. Check Filesystem
3. Reset Droplet Root Password
4. Configure Keyboard
5. Attempt to 'chroot' into installed system
6. Interactive Shell [/bin/bash]
Choose (1-6) and press Enter to continue.
- Đến đây ta bấm phím 1 enter (Tức là ta đã lựa chọn 1. Mount your Disk Image) - Cứ để Web Console đó ta qua bước 3. Nhớ copy cái pass tạm ở dưới dòng "Root Password has randomly been set to" Bước 3: Kết nối và copy backup file. Nghe ngáo quá nhỉ, nãy vừa bảo không có cách gì kết nối được mà giờ lại đòi kết nối rồi lấy file về. Đây là tính năng xịn của DO mà giờ mình mới biết. Khi tạo Boot from Recovery ISO thì cũng đồng nghĩa ta có một máy mới tinh với cấu hình mạng mà ta có thể truy cập ngon lành. Giờ ta chỉ cần kết nối SSH tới VPS đó và lấy file backup về thôi, nếu cần thì bạn có thể tạo Droplet mới để copy qua đó luôn cho nhanh cũng được.
ssh root@ip-vps-can-backup
Các bạn nhập password tạm thời hiện ở trên Web Console ở bước 2 (nằm dưới dòng này: Root Password has randomly been set to) Lúc này đã kết nối được vào VPS nhưng hiện tại nó là VPS mới tinh, không có gì cả, dữ liệu của chúng ta không có ở đây. Phải làm bước tiếp theo là mount ổ cứng vào VPS thì mới lấy được dữ liệu. - Các bạn làm lần lượt các bước sau để mount ổ cứng: + Kiểm tra các ổ có sẵn bằng lệnh
fdisk -l
Lệnh trên sẽ hiển thị các ổ có sẵn, nó sẽ hiện ra lần lượt tương tự như sau:
/dev/vda1            ... Linux filesystem
/dev/vda14
/dev/vda15
Cái /dev/vda1 là ổ ta cần mount. + Sử dụng lệnh sau để tạo thư mục và mount:
sudo mkdir /media/newhd
sudo mount /dev/sdb1 /media/newhd
df -H
- Sau khi mount ổ xong thì ta kết nối vào VPS bằng FileZilla để lấy dữ liệu. + Kết nối bằng FileZilla Host: sftp://ip-cua-vps User: root Pass: Pass lấy ở Web Console lúc nãy + Vào thư mục /media/newhd/var/www và lấy file về thôi. Bước 4: Thoát kết nối Sau khi lấy xong dữ liệu của mình thì các bạn quay lại Web Console và chọn 1 enter để Unmount Disk Image. Tiếp tục chọn 6 để vào Interactive Shell, tại đây gõ "poweroff" để tắt máy. Lúc này bạn có thể xóa Droplet hoặc quay lại phần Recovery để chọn lại "Boot from Hard Drive" rồi turn on VPS để VPS khởi động bình thường. Chúc các bạn thành công!

Bình luận

Đang tải...

Đang kiểm tra đăng nhập...