Derzeit benutze ich:
find /nix/store/* -maxdepth 1 | xargs -L <N> nix-copy-closure --sign --gzip --use-substitutes --to <remote machine>
Wo N
ist eine vernünftige Zahl, die zu lange nicht die Zeilenlänge machen xargs
.
Gibt es eine idiomatischere Methode, um dies auf zwei laufenden Maschinen zu tun?
bearbeiten:
Vorteile der obigen Methode:
- Kopiert keine an beiden Enden vorhandenen Verschlüsse. Dies bedeutet auch, dass Sie eine Übertragung stoppen und dort weitermachen können, wo Sie aufgehört haben
--use-substitues
Dadurch wird der Remotecomputer zuerst aus den Binärcaches heruntergeladen und dann der Computer an zweiter Stelle gesendet. Dies ist ideal, wenn Sie häufig Dateien von meinem Laptop an einen Entfernungsserver senden, auf dem der Remote-Server im Vergleich zu meinem Laptop häufig die 100-fache Bandbreite zum Binärcache von nix hatnix-copy-closure
kopiert über ssh, damit die Übertragung verschlüsselt wird.- Meines Wissens nach sollte nix-copy-schloss keine anderen Vorgänge im nix-Speicher stören.
/nix/store/*
ergibt sich die Shell-Erweiterung-bash: /run/current-system/sw/bin/find: Argument list too long
.find /nix/store -maxdepth 1
hat dieses Problem nicht.