mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-11-10 09:43:30 +01:00
65 lines
1.6 KiB
Nix
65 lines
1.6 KiB
Nix
{
|
|
name = "rsync";
|
|
|
|
nodes.machine = {
|
|
users.users.test.isNormalUser = true;
|
|
|
|
services.rsync = {
|
|
enable = true;
|
|
jobs = {
|
|
root = {
|
|
sources = [ "/root/src/" ];
|
|
destination = "/root/dst";
|
|
settings = {
|
|
archive = true;
|
|
delete = true;
|
|
mkpath = true;
|
|
};
|
|
timerConfig = {
|
|
OnCalendar = "daily";
|
|
Persistent = false;
|
|
};
|
|
inhibit = [ "sleep" ];
|
|
};
|
|
user = {
|
|
sources = [ "/home/test/src/" ];
|
|
destination = "/home/test/dst";
|
|
settings = {
|
|
archive = true;
|
|
delete = true;
|
|
mkpath = true;
|
|
};
|
|
timerConfig = {
|
|
OnCalendar = "daily";
|
|
Persistent = false;
|
|
};
|
|
user = "test";
|
|
group = "users";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
testScript = ''
|
|
machine.start()
|
|
|
|
machine.wait_for_unit("multi-user.target")
|
|
|
|
machine.succeed("mkdir --parents /root/src")
|
|
machine.succeed("echo test data > /root/src/file.txt")
|
|
machine.start_job("rsync-job-root.service")
|
|
machine.succeed("""[[ 'test data' == "$(< /root/dst/file.txt)" ]]""")
|
|
|
|
machine.succeed("mkdir --parents /home/test/src")
|
|
machine.succeed("echo test data > /home/test/src/file.txt")
|
|
machine.start_job("rsync-job-user.service")
|
|
machine.succeed("""[[ 'test data' == "$(< /home/test/dst/file.txt)" ]]""")
|
|
|
|
machine.wait_for_unit("timers.target")
|
|
machine.require_unit_state("rsync-job-root.timer", "active")
|
|
machine.require_unit_state("rsync-job-user.timer", "active")
|
|
|
|
machine.shutdown()
|
|
'';
|
|
}
|