Thông thường khi bạn backup, bạn sẽ dùng tar để nén thư mục, khi tar hoàn tất thì tạo ra file backup, sau đó bạn sẽ thực hiện chuyển backup đó sang server cần chuyển. Tuy nhiên, nếu dung lượng backup đó quá lớn thì chuyện gì sẽ xảy ra (ví dụ 100GB, 200GB), tất nhiên là không gian lưu trữ cần phải lớn, và sẽ mất khá nhiều thời gian để bạn làm 2 công đoạn, vậy sao không gộp lại thành 1, có nghĩa là ở server 1 nén tới đâu sẽ chuyển sang server 2 tới đó. Cách làm này sẽ giúp bạn tiết kiệm khá nhiều thời giạn giảm đi 1/2 thời gian nếu bạn bỏ qua 5p để đọc bài viết này.
Các bước thực hiện
Lưu ý: Dấu $
tượng trưng cho lệnh, bạn chỉ copy sau dấu $
nhé
- Server cần backup
$ tar -c backup/ | nc -l 9999
Lệnh này sẽ nén thư mục backup và chuyển output ra socket listen ở port 9999
- Server cần lấy file backup
$ nc x.x.x.x 9999 > backup.tar.gz
Thay x.x.x.x bằng IP của server ở bước 1 (server1). Lệnh này sẽ kết nối vào socket ở server1 trên port 9999 và lấy kết quả ghi vào file backup.tar.gz trên server2. Khi server1 nén tới đâu, kết quả sẽ được ghi ra file backup.tar.gz theo thời gian thực. Server1 nén hoàn tất thì file backup cũng đã hoàn tất ở server2.
Ở ảnh bên dưới mình thực hiện nén toàn bộ thư mục public_html
, bạn có thể nhìn vào ảnh với 4 khung hình để thấy quá trình thực hiện và process đang thực thi.
Sau khi hoàn tất bạn thực hiện giải nén file để sử dụng nhé.
$ tar -xvf namefile.tar.gz