Sincroniza a unidade do sistema com base nos temporizadores

2

Estou apenas me perguntando sobre a sincronização de temporizadores systemd / unidades relacionadas. Eu tenho um script de backup em execução por hora / dia / semana. Eu uso temporizadores com Persistent=True e OnCalendar=... opções definidas para iniciar as unidades.

O problema é que o systemd lança várias unidades de uma só vez se as unidades forem perdidas devido à máquina ter sido desligada. Como isso pode causar problemas, o script usa um arquivo de trava para garantir que haja apenas uma instância em execução a qualquer momento: Se o arquivo de trava estiver presente durante a execução, o script falhará e nenhum backup será executado. Eu estava apenas imaginando se existe uma maneira no systemd garantir que os jobs não sejam executados em paralelo (parece-me lembrar que isso foi possível no anacron) para evitar essa situação.

Editar: o arquivo de unidade ( [email protected] ) se parece com isto:

[Unit]
Description=rsnapshot (%I) backup

[Service]
Type=oneshot
Nice=19
IOSchedulingClass=3
ExecStart=/usr/bin/rsnapshot %I

Um exemplo de timer está aqui ( rsnapshot-hourly.timer ):

[Unit]
Description=rsnapshot hourly backup

[Timer]
OnCalendar=hourly
Persistent=true
[email protected]

[Install]
WantedBy=timers.target

Um serviço em execução tem esta aparência ( systemctl status [email protected] ):

[email protected] - rsnapshot (daily) backup
   Loaded: loaded (/etc/systemd/system/[email protected]; static; vendor preset: disabled)
   Active: activating (start) since Do 2015-07-23 21:42:03 CEST; 1min 2s ago
 Main PID: 527 (rsnapshot)
   CGroup: /system.slice/system-rsnapshot.slice/[email protected]
           ├─527 /usr/bin/perl -w /usr/bin/rsnapshot daily
           └─560 /bin/rm -rf /media/large_store/backup/bigbox/daily.6/
    
por hfhc2 17.07.2015 / 10:34

0 respostas

Tags