Opret en systemd-tjeneste til at synkronisere din /home-mappe til en NAS-maskine

Hvordan kan en systemd-tjeneste oprettes for at synkronisere en lokal /home-mappe til en fjernmappe på en NAS-maskine, og sikre at tjenesten kun starter, når en bruger er logget ind, samt have adgang til miljøvariabler som $USER?

Oprettelse af en systemd-tjeneste til synkronisering af en lokal /home-mappe til en fjernmappe på en NAS-maskine indebærer at oprette systemd-tjenestefiler, aktivere og starte tjenesten, samt sikre at den starter ved login.

Oprettelse af en systemd-tjeneste til synkronisering af en lokal /home-mappe til en fjernmappe på en NAS-maskine

For at oprette en systemd-tjeneste, der synkroniserer en lokal /home-mappe til en fjernmappe på en NAS-maskine, og sikre at tjenesten kun starter, når en bruger er logget ind samt har adgang til miljøvariabler som $USER, kan du følge disse trin:

1. Opret en systemd-tjenestefil

Opret en ny systemd-tjenestefil i /etc/systemd/system/ kataloget. For eksempel, navngiv filen sync-home.service:

[Unit]
Description=Sync /home directory to NAS
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/rsync -avz /home/%u/ user@nas:/remote/path/%u/
User=%u
Environment="USER=%u"
RemainAfterExit=true

[Install]
WantedBy=default.target

2. Opret en systemd-bruger-tjenestefil

Opret en ny systemd-bruger-tjenestefil i ~/.config/systemd/user/ kataloget. For eksempel, navngiv filen sync-home-user.service:

[Unit]
Description=Sync /home directory to NAS on user login
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/rsync -avz /home/%u/ user@nas:/remote/path/%u/
User=%u
Environment="USER=%u"
RemainAfterExit=true

[Install]
WantedBy=default.target

3. Aktivér og start tjenesten

Aktivér og start tjenesten for systemd-bruger-tjenesten:

systemctl --user enable sync-home-user.service
systemctl --user start sync-home-user.service

4. Sørg for at systemd-bruger-tjenester starter ved login

For at sikre at systemd-bruger-tjenester starter ved login, skal du aktivere default.target for systemd-bruger-tjenester:

loginctl enable-linger $USER

5. Test tjenesten

Log ud og log ind igen for at teste, om tjenesten starter korrekt og synkroniserer /home-mappen til NAS-maskinen.

Med disse trin vil du have oprettet en systemd-tjeneste, der synkroniserer en lokal /home-mappe til en fjernmappe på en NAS-maskine, og som kun starter, når en bruger er logget ind, samt har adgang til miljøvariabler som $USER.