Cách thiết lập Raspberry Pi làm máy chủ dự phòng cho máy tính để bàn Linux và Windows

theanh

Administrator
Nhân viên
Raspberry Pi là một loạt máy tính bảng nhỏ. Chúng khá rẻ và rất phù hợp để chạy máy chủ sao lưu hoặc máy chủ voip. Vào tháng 2 năm 2015, Raspberry Pi 2 đã được phát hành. Nó có nhiều RAM hơn, CPU mới hơn và có 4 cổng USB tích hợp.

Giá hiện tại của Raspberry Pi 2 là 35 đô la. Tuy nhiên, ngoài ra bạn cần một số thứ khác:
  • Thẻ nhớ microSD: Raspberry Pi 2 yêu cầu thẻ nhớ microSD để khởi động. Bất kỳ thẻ nào cũng được với 4GB trở lên. Đối với máy chủ sao lưu, 4GB là đủ. Bạn có thể muốn mua một thẻ đọc nhanh.
  • Bộ sạc nguồn Micro USB: Bạn cũng sẽ cần nguồn điện cho nó. Nó được cấp nguồn bằng cổng micro USB nên rất có thể bạn sẽ có bộ sạc ở nhà từ điện thoại di động cũ mà bạn không cần nữa.
  • Bộ lưu trữ USB ngoài: Vì hướng dẫn này là về việc thiết lập máy chủ sao lưu, nên bạn cũng cần có bộ lưu trữ USB ngoài. Có thể một ổ cứng ngoài 512GB là đủ, có thể bạn cần một ổ đĩa 4TB. Tất cả tùy thuộc vào nhu cầu lưu trữ của bạn.
  • Vỏ: Điều cuối cùng là vỏ. Bạn không nhất thiết phải có vỏ nhưng nếu bạn không sử dụng vỏ thì bạn sẽ chỉ có toàn bộ bo mạch chủ nằm xung quanh đâu đó và nó dễ bị hư hỏng hơn.
Vì vậy, tổng chi phí sẽ vào khoảng 35 đô la cho Raspberry Pi, khoảng 10 đô la cho thẻ nhớ microSD, khoảng 10 đô la cho vỏ, không có gì cho bộ sạc micro usb vì bạn có thể có một cái, và sau đó là bất kỳ ổ đĩa USB ngoài nào có giá bao nhiêu.

Ngoài ra, để lấy bản sao lưu, tôi thiết lập samba và chia sẻ ở chế độ chỉ đọc mà không cần bất kỳ thông tin xác thực nào. Nếu được định cấu hình đúng theo hướng dẫn này, nó sẽ chỉ khả dụng trong mạng cục bộ và từ chối mọi nỗ lực kết nối từ bên ngoài mạng cục bộ. Việc thiết lập người dùng samba và thông tin xác thực khác sẽ nằm ngoài phạm vi của hướng dẫn này. Có rất nhiều hướng dẫn khác giải thích về điều này và bạn có thể dễ dàng kết hợp nếu cần.

Thiết lập Raspberry Pi làm máy chủ sao lưu​

Thiết lập Raspberry Pi làm máy chủ sao lưu là phần "khó" nhất vì trước tiên bạn phải flash một hình ảnh rồi chuẩn bị mọi thứ. Tuy nhiên, hướng dẫn từng bước sẽ hướng dẫn bạn thực hiện.

1. Tải xuống Raspian Image​

Đầu tiên, hãy tải xuống Raspian Image hiện tại từ đây https://www.raspberrypi.org/downloads/

2. Flash hình ảnh vào thẻ nhớ microSD​

Sau khi tải xuống hình ảnh, bạn sẽ cần flash hình ảnh vào thẻ nhớ microSD. Vì đã có hướng dẫn tuyệt vời để thực hiện việc này, nên không cần phải lặp lại ở đây. Tốt nhất là làm theo hướng dẫn tại đây

3. Khởi động / Cấu hình đầu tiên​

Sau khi bạn đã flash Raspberry Pi bằng Raspian Image, hãy gắn màn hình HDMI vào và khởi động. Khi khởi động lần đầu, bạn sẽ thấy màn hình cấu hình. Màn hình cấu hình đó khá đơn giản và có một vài thứ bạn nên thiết lập.



Tuyên bố miễn trừ trách nhiệm: Các bức ảnh được chụp bằng điện thoại di động nên chúng không được đẹp lắm.

4. Mở rộng hệ thống tệp​

Trước tiên, chúng ta muốn có đủ dung lượng trên thẻ sdcard. Đối với các bản sao lưu, điều này không thực sự quan trọng vì dù sao chúng cũng sẽ được lưu trữ trên ổ đĩa ngoài. Tuy nhiên, tôi muốn có đủ dung lượng. Vì vậy, hãy chọn 1 Mở rộng hệ thống tệp và sau đó bạn sẽ được nhắc nhở bằng thông báo rằng khi khởi động lại lần tiếp theo, hệ thống tệp sẽ được mở rộng.


5. Thay đổi mật khẩu người dùng​

Sau đó, chúng ta muốn thay đổi mật khẩu mặc định cho người dùng "pi". Vì vậy, hãy chọn 2 Thay đổi mật khẩu người dùng và sau đó nhập mật khẩu mong muốn của bạn hai lần, mỗi lần theo sau là Enter. Một lần nữa bạn sẽ được nhắc nhở với một thông báo rằng mật khẩu đã được thay đổi.


6. Đăng nhập Console​

Sau đó, chúng ta muốn đảm bảo rằng chúng ta không khởi động và gui. Vì vậy, hãy chọn 3 Bật Boot to Desktop/Scratch. Trên màn hình tiếp theo, hãy chọn Console Text console, yêu cầu đăng nhập (mặc định).


7. Bản địa hóa​

Sau đó, chúng ta muốn thiết lập ngôn ngữ hệ thống và các ngôn ngữ khả dụng khác, bố cục bàn phím, v.v. Đối với điều đó, chúng ta vào 4 Tùy chọn quốc tế hóa. Khi bạn nhập vào đó, bạn sẽ được trình bày để thay đổi ngôn ngữ, múi giờ và ngôn ngữ bàn phím. Tất cả các hộp thoại đều dễ dàng, vì vậy tôi sẽ không đi vào chi tiết thêm.



Lưu ý: Nếu bạn đã chọn một trong những tùy chọn đó, bạn sẽ lại quay về màn hình cấu hình chính.

8. Tùy chọn nâng cao​

Bây giờ hãy vào 8. Tùy chọn nâng cao. Ở đó, chúng ta có một loạt thứ khác mà chúng ta có thể thiết lập. Ba thứ quan trọng là A2 Hostname, A3 Memory Split và A4 SSH.


9. Thiết lập Hostname​

Hostname sẽ cho phép bạn truy cập Raspberry Pi bằng hostname của nó trên mạng LAN. Lưu ý: Bạn chỉ có thể sử dụng chữ cái và số. Trong ví dụ này, tôi sử dụng rpi2bu làm tên máy chủ - viết tắt của Raspberry Pi 2 Backup nhưng tất cả tùy thuộc vào bạn.


10. Phân chia bộ nhớ​

Vì chúng ta muốn chạy Raspberry Pi này làm máy chủ sao lưu, nên chúng ta không muốn lãng phí ram quý giá vào gpu. Hãy nhớ rằng: Đây là máy chủ không có giao diện. Vì vậy, hãy đặt phân chia ram thành 16MB.


11. Bật Máy chủ OpenSSH​

Vì chúng ta sẽ thực hiện sao lưu bằng rsync thông qua ssh và vì quyền truy cập ssh tốt cho việc quản lý lại Raspberry Pi, nên hãy bật Máy chủ OpenSSH trong menu tùy chọn nâng cao.


11. Hoàn tất và Khởi động lại​

Vậy là xong, đó là tất cả những thứ cần thiết lập từ màn hình cấu hình và giờ bạn có thể chọn từ cấu hình chính. Sau khi thực hiện xong, Raspberry Pi sẽ khởi động lại và sau một lúc, bạn sẽ được nhắc nhập thông tin đăng nhập. Hiện tại, người dùng là pi và mật khẩu được đặt giống như bạn đã đặt ở bước 5. Ngoài ra, nó sẽ hiển thị cho bạn địa chỉ IP hiện tại của Raspberry Pi.


12. Cập nhật và cài đặt các gói cần thiết​

Để có Raspberry Pi làm máy chủ dự phòng, chúng ta sẽ cần cài đặt thêm hai gói: rsync và samba. Rsync là công cụ đồng bộ hóa các tệp từ máy tính Windows / Linux của bạn và sau đó samba sẽ tạo bản sao lưu khả dụng trên mạng (ở chế độ chỉ đọc).

Vì luôn có nhiều thay đổi và bản cập nhật sắp tới, trước tiên chúng ta chạy:
Mã:
sudo apt-get update && sudo apt-get upgrade
và sau đó chúng ta cài đặt các gói cần thiết bằng cách:
Mã:
sudo apt-get install rsync samba
Lưu ý: Người dùng mặc định pi có thể chạy các lệnh hệ thống với tư cách là root bằng lệnh sudo. Khi bạn sử dụng lệnh sudo, bạn sẽ được nhắc nhập mật khẩu đăng nhập một lần nữa. Mật khẩu này cũng sẽ được lưu trong bộ nhớ đệm trong một thời gian, vì vậy việc chạy hai lệnh sudo sau nhau chỉ nên kích hoạt một lần khi nhập mật khẩu.

13. Tiếp tục với kết nối SSH từ xa hoặc trên Raspberry Pi​

Các bước tiếp theo có thể được thực hiện trong chính Raspberry Pi hoặc thông qua kết nối ssh. Tôi thích kết nối ssh và trên linux, tôi chỉ sử dụng Konsole trong KDE của mình. Trên Windows, bạn có thể sử dụng Putty hoặc Kitty

14. Xác định vị trí và định dạng ổ USB ngoài​

Trước khi cấu hình máy chủ samba, chúng ta cần gắn ổ USB ngoài và tạo người dùng sao lưu. Trước khi có thể gắn ổ USB ngoài, chúng ta cần định dạng ổ và biết UUID của ổ. Vì vậy, trước khi bạn gắn ổ USB ngoài, hãy chạy:
Mã:
ls -al /dev/disk/by-uuid
và nó sẽ trả về kết quả như sau:
Mã:
tổng cộng 0drwxr-xr-x 2 root root 100 Mai 19 18:22 .drwxr-xr-x 6 root root 120 Jan 1 1970 ..lrwxrwxrwx 1 root root 15 Mai 19 18:22 13d368bf-6dbf-4751-8ba1-88bed06bef77 -> ../../mmcblk0p2lrwxrwxrwx 1 root root 15 Tháng 5 19 18:22 15CD-3B79 -> ../../mmcblk0p1
Bây giờ hãy gắn ổ USB ngoài và chạy lại lệnh. Bạn sẽ thấy, kết quả khác và có một thiết bị mới ở đó.
Mã:
tổng cộng 0drwxr-xr-x 2 root root 100 Tháng 5 19 18:22 .drwxr-xr-x 6 root root 120 1 Tháng 1 1970 ..lrwxrwxrwx 1 root root 15 Tháng 5 19 18:22 13d368bf-6dbf-4751-8ba1-88bed06bef77 -> ../../mmcblk0p2lrwxrwxrwx 1 root root 15 Tháng năm 19 18:22 15CD-3B79 -> ../../mmcblk0p1lrwxrwxrwx 1 root root 10 Tháng năm 19 18:22 eac53de3-9f06-4e46-999c-684da279298b -> ../../sda1
Điều này cho chúng ta biết hai điều. Thiết bị mới là /dev/sda1 và uuid của nó là eac53de3-9f06-4e46-999c-684da279298b. Khi bạn đính kèm nhiều dirve thì sda1 có thể thay đổi. Vì vậy, đối với mục đích gắn kết sau này, chúng ta sẽ chỉ sử dụng UUID của nó, UUID này sẽ không thay đổi miễn là các phân vùng không bị thay đổi hoặc phân vùng đang được định dạng - tuy nhiên, chúng ta sắp định dạng phân vùng thành hệ thống tệp phù hợp.

Trước khi có thể sử dụng, chúng ta sẽ phải định dạng ổ đĩa này. Tôi thích ext4 nhưng một số người có thể thích btrfs vì tính năng chụp nhanh và kiểm tra tính toàn vẹn của nó. Để định dạng nó thành ext4, chỉ cần chạy lệnh này:
Mã:
sudo mkfs.ext4 /dev/sda1
Cảnh báo: Đảm bảo sử dụng nhãn thiết bị phù hợp, nếu không bạn có thể phá hủy dữ liệu trên thiết bị khác.

Như đã nói, định dạng cũng làm thay đổi UUID, vì vậy bạn cần phải đưa ra lại lệnh đã đề cập ở trên và ghi chú UUID mới.

15. Gắn ổ USB ngoài​

Tiếp theo là chúng ta phải gắn nó. Ở đây, bạn phải quyết định nơi bạn muốn gắn nó. Tôi đã chọn gắn ổ đĩa vào thư mục gốc của người dùng sao lưu. Tôi cũng có thể gắn nó vào /home nếu muốn. Tuy nhiên, nếu tôi có nhiều bản sao lưu để thực hiện, tôi muốn tạo chúng trên các ổ đĩa riêng lẻ. Vì vậy, một người dùng = 1 ổ đĩa và ổ đĩa được gắn vào thư mục gốc của người dùng. Trên Rasperry Pi, bạn có thể trực tiếp gắn 4 thiết bị USB, do đó, dễ dàng mở rộng cho người dùng khác nếu cần. Trước khi gắn, tôi thêm người dùng sao lưu theo - trong hướng dẫn này, tôi gọi người dùng đó là bu. Để tạo người dùng đó, hãy chạy lệnh sau:
Mã:
sudo adduser bu
Bạn sẽ được nhắc lại hai lần để cung cấp mật khẩu cho người dùng đó.

Sau khi người dùng được thêm vào, bạn có thể dễ dàng gắn ổ đĩa ngoài vào đó bằng lệnh sau:
Mã:
sudo mount /dev/sda1 /home/bu
Tuy nhiên, trước khi chúng ta có thể sử dụng nó, cần thực hiện một bước cuối cùng. Bây giờ, bạn cần thay đổi quyền sở hữu của thư mục đã gắn thành người dùng bu:
Mã:
sudo chown bu:bu /home/bu
Vì vậy, bây giờ chúng ta đã gắn ổ đĩa USB ngoài và thiết lập các quyền theo yêu cầu. Nếu bây giờ bạn chạy lệnh sau, bạn sẽ thấy /dev/sda1 được gắn kết vào /home/bu
Mã:
df -h
Mã:
Filesystem Size Used Avail Use% Mounted onrootfs 15G 2.4G 12G 18% //dev/root 15G 2.4G 12G 18% /devtmpfs 484M 0 484M 0% /devtmpfs 98M 236K 98M 1% /runtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 195M 0 195M 0% /run/shm/dev/mmcblk0p1 56M 19M 37M 34% /boot/dev/sda1 2.7T 260M 2.6T 1% /home/bu
Vì tôi đã có một số dữ liệu thử nghiệm trên ổ USB ngoài nên nó cho thấy tôi đã sử dụng 260MB. Trên ổ đĩa mới thì phải là 0.

16. Gắn ổ USB ngoài khi khởi động​

Mọi thứ có vẻ ổn nhưng sau khi khởi động lại, ổ USB ngoài không được gắn nữa. Thông thường, bạn chỉ cần thêm một mục vào /etc/fstab nhưng có vấn đề là khởi động quá nhanh và phát hiện USB quá chậm. Giải pháp khá dễ.

Chỉnh sửa: /boot/cmdline.txt

và bạn sẽ thấy có một dòng chứa:
Mã:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 Elevator=deadline rootwait
Chỉ cần thêm rootdelay=10 vào để trông như sau:
Mã:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 Elevator=deadline rootwait rootdelay=10
Tiếp theo, chỉnh sửa /etc/fstab

và thêm dòng này vào cuối file
Mã:
UUID=eac53de3-9f06-4e46-999c-684da279298b /home/bu ext4 defaults 0 2
Tất nhiên là sử dụng UUID của riêng bạn thay vì UUID được cung cấp trong ví dụ trên.

Vậy là giờ chúng ta đã đảm bảo rằng các ổ USB ngoài được gắn vào /home/bu ngay cả sau khi khởi động lại. Nếu bạn gắn nhiều hơn một thiết bị USB, điều mà tôi chưa từng thử nghiệm, và bạn nhận thấy rằng tôi không thêm tất cả chúng đúng cách, thì có thể mở rộng rootdealy lên hơn 10.

17. Cấu hình Samba​

Tiếp theo, chúng ta sẽ cấu hình samba để nó có thể sao lưu tất cả các bản sao lưu trên mạng. Samba là một daemon hoạt động cung cấp các chia sẻ mạng cũng có thể được truy cập thông qua Windows bằng giao thức smb.

Chỉ cần chỉnh sửa /etc/samba/smb.conf và thay thế ngữ cảnh của tệp cấu hình bằng nội dung sau:
Mã:
[toàn cục] nhóm làm việc = chuỗi máy chủ WORKGROUP = máy chủ %h; wins support = không; wins server = w.x.y.z dns proxy = không; name resolve order = lmhosts host wins bcast name resolve order = bcast lmhosts host wins socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE; interfaces = 127.0.0.0/8 eth0; bind interfaces only = yes hosts allow = 127.0.0.1, 10.0.0.0/24 hosts deny = 0.0.0.0/0 log file = /var/log/samba/log.%m max log size = 1000# syslog only = no syslog = 0 panic action = /usr/share/samba/panic-action %d security = user encrypt passwords = true map to guest = bad user guest account = bu# valid users = root#========================== Định nghĩa chia sẻ =======================[Backup] comment = Backup Share path = /home/bu read only = yes guest only = yes guest ok = yes hosts allow = 127.0.0.1, 10.0.0.0/24 force user = bu force group = bu hosts deny = 0.0.0.0/0
Để đảm bảo không có thông tin nào bị rò rỉ ra ngoài mạng LAN, tôi đã thiết lập trong phần toàn cục để từ chối mọi địa chỉ IP và chỉ cho phép localhost cũng như mạng LAN. Tôi sử dụng 10.0.0.x cho mạng LAN của mình. Có khả năng bạn sử dụng 192.168.0.0, vì vậy hãy thay đổi thông tin này cho phù hợp.

Ngoài ra, trong phần toàn cục, bạn thấy rằng tài khoản khách là người dùng bu và trong phần chia sẻ thực tế, bạn có thể thấy rằng khách có quyền truy cập và đó là quyền truy cập chỉ đọc.

Lưu và thoát tệp và khởi động lại samba:
Mã:
sudo /etc/init.d/samba restart
Với lệnh này, chúng ta đã hoàn tất việc cấu hình các dịch vụ.

18. Tệp điều khiển sao lưu trên Raspberry Pi​

Tạo và chỉnh sửa /home/bu/backups.sh và điền nội dung sau vào đó:
Mã:
#!/usr/bin/env bashbasePath="/home/bu"action="${1}"function checkMonth (){ now=$(date +"%Y-%m") last=$( "checkMonth.txt" fi}function makeHardlink (){ # Tạo bản sao hardlink ngay bây giờ=$(date +"%Y-%m-%d_%H-%M") mkdir -p "${basePath}/old/${now}" cp -al "${basePath}/current"* "${basePath}/old/${now}"}function checkFree (){ # Kiểm tra xem có cần xóa các tệp cũ không freeSpace=$( df -P | grep "${basePath}" | awk '{print $4}' ) curUse=$( cd "${basePath}/current" | du -s | awk '{print $1}' ) estUse=$(( curUse * 2 )) echo "${freeSpace} - ${curUse} - ${estUse}" while [[ ${freeSpace} -le ${estUse} ]] do echo "Không đủ dung lượng... đang xóa các bản sao lưu cũ..." IFS= read -r -d $'\0' line < /dev/null | sort -z -n) oldDir="${line#* }" rm -Rf "${oldDir}" freeSpace=$( df -P | grep "${basePath}" | awk '{print $4}' ) echo "${freeSpace} - ${curUse} - ${estUse}" xong}case ${action} in newMonth) checkMonth ;; hardLink) makeHardlink checkFree ;;esac
Tập lệnh này có hai mục đích. Nó phải được chạy trước và sau mỗi lần sao lưu.

Hàm checkMonth sẽ xem có tháng mới nào kể từ lần sao lưu cuối cùng hay không. Như bạn đã biết, ổ cứng có thể bị hỏng hoặc đúng hơn là một số bộ phận của nó có thể bị lỗi. Nếu điều đó xảy ra, bạn không thể truy cập các tệp dữ liệu trong các sector bị hỏng nữa. Tuy nhiên, việc tạo bản sao lưu đầy đủ mọi lúc đòi hỏi rất nhiều dung lượng đĩa. Để tiết kiệm dung lượng đĩa, tôi liên kết cứng các bản sao lưu, nghĩa là tôi chỉ ghi các tệp "chỉ mục" hệ thống tệp mới trỏ đến cùng một dữ liệu. Vì vậy, nếu sector dữ liệu bị hỏng, tệp không thể được truy xuất nữa đối với tất cả các tệp được liên kết cứng vì tất cả chúng đều trỏ đến cùng một dữ liệu. Để giảm thiểu rủi ro đó, tôi đảm bảo rằng mỗi tháng đều ghi một bộ sao lưu hoàn chỉnh mới. Điều này sẽ chiếm dung lượng lưu trữ của bạn. Ví dụ: nếu bạn có 400 GB dữ liệu, điều đó có nghĩa là trong tháng 1, nó sẽ sử dụng 400 GB + các tệp đã thay đổi. Trong tháng 2, nó sẽ sử dụng thêm 400 GB + các tệp đã thay đổi, v.v.

Điều này cũng có nghĩa là lần đồng bộ đầu tiên và lần đồng bộ đầu tiên trong tháng mới sẽ mất nhiều thời gian. Tất cả những cái khác đều nhanh.

Hàm makeHardlink thực sự sẽ tạo bản sao liên kết cứng của bản sao lưu cuối cùng. Bản sao liên kết cứng hầu như không yêu cầu dung lượng và trên bản sao lưu, chỉ có các tệp mới được ghi mới. Ngoài ra, khi kết hợp với bản sao liên kết cứng, tôi chạy hàm checkFree.

Hàm checkFree kiểm tra dung lượng trống của /home/bu. Nó cũng kiểm tra kích thước đã sử dụng của bản sao lưu cuối cùng. Nếu dung lượng trống nhỏ hơn gấp đôi so với bản sao lưu cuối cùng, thì nó sẽ bắt đầu xóa các bản sao lưu cũ cho đến khi có lại gấp đôi dung lượng trống đó. Tôi có xu hướng nghĩ rằng nếu bạn đã có 400 GB dữ liệu mà bạn muốn sao lưu, thì không có khả năng vào ngày hôm sau/thời điểm sao lưu tiếp theo, bạn sẽ có hơn 800 GB.

Điều này có nghĩa là bạn có thể sử dụng cơ chế sao lưu này "mãi mãi". Nó sẽ tự động xóa các bản sao lưu cũ nếu dung lượng trống quá nhỏ.

Sau khi lưu tập lệnh đó, hãy thực thi tập lệnh đó và thay đổi quyền sở hữu thành người dùng bu:
Mã:
sudo 0755 /home/bu/backups.sh
 sudo chown bu:bu /home/bu/backups.sh
Vậy là xong phần Raspberry Pi.

Sao lưu vào Rasperry Pi từ Linux​

Để sao lưu vào Raspberry Pi, bạn chỉ cần thêm người dùng hiện tại (hoặc root nếu muốn) vào tài khoản người dùng sao lưu Raspberry Pi.

Tôi cho rằng bạn đã cài đặt ứng dụng khách ssh và có khóa công khai để sử dụng. Cuối cùng, trước tiên bạn cần cài đặt rsync.

19. Tạo khóa ssh công khai​

Nếu bạn chưa có khóa công khai nào cho đến thời điểm này, hãy tạo một khóa:
Mã:
ssh-keygen -t rsa -b 4096 -C "[emailprotected]"
Tất nhiên là thay thế bằng email của bạn hoặc điền bất kỳ thông tin nào nếu bạn muốn.

20. Sao chép khóa ssh công khai vào người dùng sao lưu Rasperry Pi​

Sau đó, bạn cần sao chép khóa công khai của mình vào tài khoản người dùng sao lưu Raspberry Pi:
Mã:
ssh-copy-id ~/.ssh/id_rsa.pub bu@rpi2bu
Thay thế bu và rpi2bu bằng người dùng sao lưu và tên máy chủ thực tế của bạn. Nếu vì lý do nào đó Raspberry Pi không thể được phát hiện theo tên máy chủ của nó, hãy sử dụng địa chỉ IP của nó.

21. Tạo tập lệnh sao lưu trên màn hình​

Bây giờ chúng ta có thể đăng nhập vào Raspberry Pi mà không cần cung cấp mật khẩu, chúng ta cần một tập lệnh bash nhỏ để thực hiện sao lưu. Tạo backup.sh trên màn hình nền.

Chỉnh sửa ~/Desktop/backup.sh" và thêm nội dung này
Mã:
#!/usr/bin/env bash# Kiểm tra tháng mớissh bu@rpi2bu '/home/bu/backups.sh newMonth'# Chạy rsync backuprsync -avzpH --partial --delete ~/ bu@rpi2bu:/home/bu/current/# Tạo bản sao lưu và kiểm tra dung lượng trốngssh bu@rpi2bu '/home/bu/backups.sh hardLink'
Sau đó thực thi:
Mã:
chmod 0755 ~/Desktop/backup.sh
Và thế là xong - tất nhiên đừng quên đặt tên máy chủ phù hợp cho Raspberry Pi và thay đổi người dùng nếu bạn sử dụng tên khác.

Sao lưu vào Rasperry Pi từ Windows​

Trên Windows, việc này khó hơn một chút vì tất cả các công cụ *nix tuyệt vời đó đều không có. Đặc biệt là ssh và rsync. Tuy nhiên, giải pháp đơn giản ở đây là cài đặt cygwin với các gói tương ứng.

22. Tải xuống Cygwin​

Trước tiên, chúng ta cần tải xuống và cài đặt cygwin. Tải xuống từ tại đây. Nhiều khả năng bạn muốn sử dụng phiên bản 64 bit.

23. Cài đặt Cygwin với các gói bắt buộc​

Khi quá trình tải xuống trình cài đặt Cygwin hoàn tất, hãy chạy nó. Sau đó, bạn sẽ được nhắc nhập một vài thông tin đầu vào. Nhập thông tin theo danh sách bên dưới:

Chọn Nguồn Tải Về -> Cài đặt từ Internet
Chọn Thư mục Cài đặt Gốc -> C:\cygwin
Thư mục Gói Cục bộ -> C:\Users\\Downloads (giữ nguyên mặc định)
Chọn Kết nối Internet của Bạn -> Kết nối Trực tiếp
Chọn Trang Tải Về -> Chọn trang tải về gần bạn

Sau đó, bạn sẽ thấy hộp thoại Chọn Gói. Tại đây, điều quan trọng là phải chọn rsync và openssh. Tốt nhất là bạn có thể lọc danh sách bằng hộp Tìm kiếm. Chỉ cần nhập rsync và sau đó bạn sẽ tìm thấy nó trong thư mục Net. Nhấp vào nó và sau đó cột Bin? sẽ được chọn. Lặp lại thao tác này cho openssh.

Sau đó, nó sẽ bắt đầu tải xuống tất cả các gói và cài đặt chúng. Vì nó sẽ tải xuống rất nhiều công cụ *nix nên sẽ mất một lúc.

24. Tạo khóa ssh công khai​

Sau khi cài đặt cygwin bao gồm rsync và openssh, bạn sẽ có mục "Cygwin" mới trong menu bắt đầu. Bên trong mục đó, bạn sẽ tìm thấy liên kết đến Cygwin Terminal. Chạy mục này và một terminal sẽ mở ra. Trong terminal, chúng ta tạo khóa ssh công khai bằng cách đưa ra lệnh này:
Mã:
ssh-keygen -t rsa -b 4096 -C "[emailprotected]"
Tất nhiên là thay thế bằng email của bạn hoặc điền bất cứ thông tin gì nếu bạn muốn.

25. Sao chép khóa ssh công khai vào người dùng sao lưu Rasperry Pi​

Sau đó, bạn cần sao chép khóa công khai của mình vào tài khoản người dùng sao lưu Raspberry Pi:
Mã:
ssh-copy-id ~/.ssh/id_rsa.pub bu@rpi2bu
Thay thế bu và rpi2bu bằng tên người dùng và tên máy chủ sao lưu thực tế của bạn. Nếu vì lý do nào đó, Raspberry Pi không thể được phát hiện bằng tên máy chủ của nó, hãy sử dụng địa chỉ IP của nó.

26. Tạo tập lệnh sao lưu trên Desktop​

Bây giờ hãy mở trình soạn thảo văn bản của bạn và nhập lệnh sau:
Mã:
REM Chỉ là một tập lệnh nhỏ để sao lưuREM Kiểm tra xem đó có phải là tháng mới khôngc:\cygwin\bin\ssh.exe bu@rpi2bu '/home/bu/backups.sh newMonth'REM Sao lưu bằng rsyncc:\cygwin\bin\rsync -avzpH --partial --delete -e "c:\cygwin\bin\ssh.exe" /cygdrive/c/Users bu@rpi2bu:/home/bu/current/REM Tạo bản sao liên kết cứng và dọn dẹp dung lượng nếu cầnc:\cygwin\bin\ssh.exe bu@rpi2bu '/home/bu/backups.sh hardLink'
Lưu tệp này dưới dạng backup.bat

trên máy tính để bàn của bạn (hoặc bất kỳ vị trí nào khác).

Đó là quan trọng là phần mở rộng tệp phải là .bat để Windows có thể chạy tệp đó.

Nếu bạn đã cài đặt Cygwin vào bất kỳ thư mục nào khác, hãy cung cấp đường dẫn tương ứng (theo mặc định, nó sẽ sử dụng c:\cygwin64 cho bản cài đặt 64 bit). Ngoài ra, hãy thay đổi tên máy chủ Raspberry Pi và người dùng sao lưu nếu bạn sử dụng tên khác.

Khi bạn nhấp vào tệp backup.bat trên màn hình nền, nó sẽ mở một thiết bị đầu cuối và thực hiện sao lưu. Bạn cũng có thể chạy tệp đó từ Lệnh Windows (cmd.exe) để tệp không tự động đóng khi hoàn tất.

Kiểm tra bản sao lưu của bạn​

Chỉ cần tạo bản sao lưu là đã hoàn thành một nửa công việc. Bạn sẽ cần xác minh rằng (a) bản sao lưu đã được tạo và (b) bạn có thể sử dụng chúng để khôi phục dữ liệu nếu cần.

Để đơn giản hóa việc này, chúng tôi đã thiết lập samba trước đó. Nếu cấu hình đúng, nếu bạn kiểm tra môi trường mạng, thì bạn sẽ có một máy tính/máy chủ có tên rpi2bu trong vùng lân cận của bạn. Trong Windows, chỉ cần mở Explorer, vào Network và đợi 2-3 giây để nó hiển thị. Trên Linux, ví dụ như trong Dolphin, bạn chỉ cần nhấp vào biểu tượng Network trong thanh bên địa điểm. Sau đó, bạn có thể vào máy tính/máy chủ đó mà không cần bất kỳ thông tin xác thực nào và sau đó nó sẽ hiển thị cho bạn một chia sẻ có tên Backup. Khi bạn vào chia sẻ đó, bạn sẽ thấy hai thư mục current và old và hai tệp backups.sh và checkMonth.txt. Bạn có thể sao chép các tệp trở lại máy tính của mình nhưng vì samba được thiết lập ở chế độ chỉ đọc nên bạn không thể xóa các tệp.

Vì vậy, hãy sao chép một vài tệp trở lại máy tính của bạn và xác minh rằng chúng chạy bình thường. Nếu có, bạn đã sao lưu thành công.
 
Back
Bên trên