Google Drive là một phương tiện tuyệt vời cho những người cần lưu trữ các bản sao trực tuyến của file. Người dùng Linux có thể tận dụng gói 15GB miễn phí của Google Drive để sao lưu các file cấu hình cần thiết. Hơn nữa, bạn có thể sao lưu một lượng lớn dữ liệu, bao gồm các file media, nếu bạn có gói Google Workspace (trước đây là G-Suite) đang hoạt động.
Hướng dẫn này sẽ chỉ ra cách bạn có thể tự động sao lưu file trong Linux vào Google Drive bằng gói mã nguồn mở google-drive-ocamlfuse và CRON.
Google-drive-ocamlfuse là gì?
Google-drive-ocamlfuse là một hệ thống file FUSE cho phép người dùng mount bộ nhớ Google Drive của họ trên máy cục bộ. Nó được viết bằng OCaml và được cung cấp miễn phí qua GitHub. Một số tính năng chính của google-drive-ocamlfuse bao gồm quyền truy cập đọc/ghi đầy đủ, hỗ trợ nhiều tài khoản, quyền Unix và hỗ trợ Team Drive.
Cách sử dụng google-drive-ocamlfuse để sao lưu tự động
Bước đầu tiên là mount Google Drive từ xa vào hệ thống file cục bộ. Đây là lúc google-drive-ocamlfuse phát huy tác dụng. Sau đó, bạn có thể sử dụng một bộ lập lịch tự động để chuyển các file vào ổ theo định kỳ. Để đơn giản hóa mọi việc, hãy sử dụng tiện ích CRON của Linux để xử lý quá trình lập lịch. (Bạn cũng có thể sử dụng Zeit để lên lịch các cron job).
Cài đặt và cấu hình google-drive-ocamlfuse
Đầu tiên, bạn cần cài đặt google-drive-ocamlfuse trên máy Linux của mình. May mắn thay, việc này rất đơn giản. Kích hoạt Terminal và nhập lệnh sau tại dấu nhắc.
sudo add-apt-repository ppa:alessandro-strada/ppa
Nó sẽ thêm gói bắt buộc vào danh sách kho lưu trữ của trình quản lý gói. Bạn có thể tiếp tục và cài đặt gói bằng cách sử dụng các lệnh sau.
# Debian/Ubuntu
sudo apt update && sudo apt install google-drive-ocamlfuse
# Fedora
sudo dnf copr enable sergiomb/google-drive-ocamlfuse
sudo dnf install google-drive-ocamlfuse
# Arch
yay -S google-drive-ocamlfuse
Chờ cho đến khi quá trình cài đặt kết thúc. Khi hoàn thành, bạn cần phải cấu hình nó cho mục đích mount. Bước đầu tiên cho việc này là tạo một điểm mount cho Google Drive trong hệ thống file cục bộ. Bạn có thể thực hiện việc này bằng cách nhập lệnh dưới đây vào Terminal.
mkdir -p ~/mount/google-drive
Tiếp theo, mount bộ nhớ ổ bằng lệnh sau:
google-drive-ocamlfuse ~/mount/google-drive
google-drive-ocamlfuse sẽ mở trình duyệt mặc định và chuyển hướng đến trang xác thực tài khoản cho Google Drive. Chọn tài khoản bạn muốn mount cục bộ.
Nhập mật khẩu cho tài khoản đã chọn để xác thực.
Tiếp theo, Google sẽ yêu cầu quyền cấp quyền truy cập vào google-drive-ocamlfuse. Nhấp vào “Allow” và chuyển sang trang tiếp theo.
Bạn sẽ được yêu cầu cho phép truy cập vào tài khoản người dùng của mình một lần nữa.
Sau khi bạn cho phép, nó sẽ chuyển hướng bạn đến trang web của google-drive-ocamlfuse. Xin chúc mừng, bạn đã mount thành công tài khoản Google Drive của mình với hệ thống file cục bộ.
Bây giờ là thời điểm tốt để xác minh xem quá trình mount cho Google Drive có diễn ra suôn sẻ hay không. Nếu giai đoạn này xảy ra lỗi, bạn không thể sử dụng nó để sao lưu file vào Google Drive. Sử dụng lệnh dưới đây để xác minh điều này.
ls -l ~/mount/google-drive/
Đầu ra sẽ hiển thị danh sách các file và thư mục có trong bộ nhớ Google Drive. Nếu mọi thứ diễn ra như mong đợi, bạn có thể tiến hành cấu hình bộ lập lịch sao lưu.
Sao lưu file lên Google Drive bằng CRON
Sao lưu hiểu đơn giản là hoạt động sao chép. Vì Google Drive đã được mount, nên bạn có thể sao chép file vào đó như một phần của hệ thống file cục bộ. Bạn có thể xác minh điều này bằng cách chạy lệnh sau:
touch test-file
cp test-file ~/mount/google-drive/
Lệnh sẽ sao chép file test vào bộ nhớ. Sử dụng lệnh ls để xác minh xem nó đã được sao chép thành công vào Google Drive hay chưa.
ls ~/mount/google-drive/
Bây giờ mọi thứ đã sẵn sàng, hãy cấu hình cron để tự động hóa quá trình sao lưu. Nếu bạn chưa biết, cron là một bộ lập lịch cho phép người dùng chạy các lệnh nhất định theo định kỳ. Bạn có thể chỉ định các lệnh nào sẽ chạy và khi nào chạy chúng bằng cách sử dụng crontab.
Bài viết đang sử dụng mục crontab sau đây để sao chép nội dung thư mục “/tmp” vào Google Drive lúc 00:00 hàng ngày.
0 0 * * * cp /tmp/ ~/mount/google-drive/
Nếu bạn muốn sao lưu các file của mình mỗi tuần một lần, hãy sử dụng mục crontab sau đây.
0 0 * * 0 cp /tmp/ ~/mount/google-drive/
Lệnh sẽ sao chép nội dung của “/tmp” vào bộ nhớ lúc 00:00 Chủ nhật hàng tuần. Thay thế “/tmp” bằng thư mục chứa các tệp cá nhân của bạn. Tuy nhiên, còn một bước cuối cùng. Không có mục crontab nào ở trên tự động mount Google Drive.
Một giải pháp nhanh chóng cho việc này là mount bộ nhớ bằng một mục crontab khác, sau đó theo dõi nó với mục đó để sao lưu.
55 23 * * 0 google-drive-ocamlfuse ~/mount/google-drive
0 0 * * 0 cp /tmp/ ~/mount/google-drive/
Như bạn có thể thấy, ví dụ sẽ mount ổ sớm 5 phút. Nó cung cấp cho cron đủ thời gian để đảm bảo rằng không bỏ lỡ quá trình sao lưu do sự cố khởi tạo. Sử dụng lệnh dưới đây để chỉnh sửa crontab và thêm các dòng trên.