Phương pháp tốt nhất để sao chép toàn bộ / nix / lưu trữ qua mạng từ máy nixos này sang máy khác


7

Hiện tại tôi đang sử dụng:

find /nix/store/* -maxdepth 1 | xargs -L <N> nix-copy-closure --sign --gzip --use-substitutes --to <remote machine>

Đâu Nlà một số hợp lý sẽ không làm cho độ dài dòng quá dài xargs.

Có một phương pháp thành ngữ hơn để làm điều này trên hai máy đang chạy?

biên tập:

Ưu điểm của phương pháp trên:

  • Không sao chép các bao đóng tồn tại ở cả hai đầu. Điều này cũng có nghĩa là bạn có thể dừng chuyển khoản và chọn nơi bạn rời đi sau đó kiểm tra băm
  • --use-substituesĐiều này sẽ làm cho máy từ xa tải xuống từ bộ đệm nhị phân trước rồi gửi máy thứ hai. Điều này thật tuyệt vời trong trường hợp phổ biến là gửi các tệp từ máy tính xách tay của tôi đến một máy chủ loại bỏ nơi máy chủ từ xa thường có băng thông gấp 100 lần so với bộ đệm nhị phân của nix so với máy tính xách tay của tôi
  • nix-copy-closure bản sao qua ssh để chuyển được mã hóa.
  • nix-copy-clos, theo hiểu biết hạn chế của tôi, không nên can thiệp vào bất kỳ hoạt động nào khác xảy ra trên cửa hàng nix.

Trang người đàn ông trực tuyến cho nix-copy-closure


Đối với các cửa hàng nix lớn, việc mở rộng vỏ /nix/store/*cho -bash: /run/current-system/sw/bin/find: Argument list too long. find /nix/store -maxdepth 1không có vấn đề đó
nh2

Có lẽ, đó là một lỗi đánh máy.
AleXoundOS

Câu trả lời:


7

Tôi thích sử dụng nix-serveđể chia sẻ các gói giữa các máy tính xách tay

% nix-env -i nix-serve
% nix-serve -p 8080

thêm tùy chọn cách chia sẻ gói nix giữa các máy được mô tả trong hướng dẫn sử dụng nix


1
Đây có vẻ là một lựa chọn tốt. Bạn cũng có thể chỉ định khóa ssl và cert trên dòng lệnh. Mặc dù --enable-ssl"Cho phép ssl trên tất cả các cổng TCP" được đánh dấu là thử nghiệm.
Davorak

2

Tôi thích sử dụng scp. Lệnh dưới đây sẽ sao chép mọi thứ đệ quy vào máy từ xa của bạn:

scp -r /nix/store/* your_user@host_name:/path/to/store/copy

Nếu bạn muốn duy trì thời gian sửa đổi, thời gian truy cập và chế độ từ tệp gốc, hãy sử dụng -pcờ.

Để tối ưu hóa hiệu suất scp và tăng tốc độ, hãy sử dụng blowfish làm chiper và cho phép nén như thế này:

scp -c blowfish -r -C /nix/store/* your_user@host_name:/path/to/store/copy

1
Tôi nghĩ rằng cửa hàng nix được gắn kết bình thường như chỉ đọc để không khuyến khích truy cập ghi bằng root, ít nhất là trên nixos. Tôi nghĩ rằng tôi sẽ phải đăng nhập bằng root trên cả hai máy để ngắt kết nối và gắn lại cửa hàng dưới dạng có thể đọc được để sử dụng scp. Không rõ ràng với tôi có thể có những hậu quả tiêu cực khác từ việc gắn tạm thời và không gắn cửa hàng; Tôi chỉ không đủ quen thuộc với các dịch vụ trên nixos để biết.
Davorak
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.