GNU/Linux >> Znalost Linux >  >> Linux

Jak naplánovat příkaz Rsync?

Dobrý den!

Pracuji z Chile. Jde o to, že připojení je zde super pomalé a úkoly, jako je aktualizace balíčků každé stanice přímo na internet, prostě nejsou možné. Takže mám místní úložiště, které bych rád aktualizoval přes rsync pouze v noci.

S rsync problém nemám, vím jak ho používat. Kde jsem trochu nový, jsou oblasti jako cronjobs a podobné věci.

Stručně řečeno, to, co potřebuji, je aktualizovat své úložiště každou noc. Řekněme, že to začíná každý den v 19:00 a končí v 7:00.

Jak to mohu udělat?

Předem děkuji.

S pozdravem.

PD:Používám Ubuntu 16.04.

Přijatá odpověď:

Existují dva způsoby, jak použít cron, vytvořením souboru v /etc/cron.d/repo-sync ve formátu:

<minute> <hour> <day_of_month> <month> <day_of_week> <user> <command>

Chcete-li například spustit rsync z src do cíle každý den v 19:00, můžete použít:

0 19 * * * root rsync -a src dest

Nebo můžete vytvořit crontab spuštěním crontab -e (jako uživatel, pod kterým chcete příkaz spustit) s řádkem jako výše mínus uživatel, například:

0 19 * * * rsync -a src dest

Osobně dávám přednost vytváření souborů cron.d pro systémové/rootové úlohy, ale oba přístupy budou mít stejný výsledek.

Nyní se příkaz spustí jednou v daný čas – zastaví se, jakmile příkaz skončí, takže není potřeba zadávat příkaz k zastavení v 7:00, protože rsync by měl být do té doby, doufejme, dokončen. Pokud opravdu musíte zastavit příkaz v 7:00, můžete zadat další cron úlohu, která jednoduše zabije existující procesy v daný čas.

0 7 * * * root killall rsync

Bohužel to zabije všechny příkazy rsync – což může mít vedlejší účinky, pokud se pokusíte spustit rsync současně, takže tuto metodu nedoporučuji.

Můžete jít dále vložením příkazu rsync do skriptu, který zapisuje své pid do souboru, a pomocí tohoto pid v příkazu kill to zmírnit, ale může to být složitější, než opravdu potřebujete.

Více o nastavení úloh cron si můžete přečíst zde nebo zde.

Související:Jak zkontrolovat celý pevný disk na chyby a vadné sektory?
Linux
  1. Jak používat příkaz „at“ k naplánování úkolu na daný nebo pozdější čas v Linuxu

  2. Jak používat příkaz Linux Rsync (vzdálená synchronizace).

  3. Jak používat Su Command v Linuxu

  1. Jak naplánovat úlohy Cron v cPanel

  2. Jak používat příkaz Rsync v linuxu?

  3. Jak naplánovat úlohy pomocí příkazu „at“ v systému Linux

  1. Jak přejmenovat soubory v Linuxu

  2. Jak ukončit, pokud příkaz selhal?

  3. Jak použít příkaz 'cp' k vyloučení konkrétního adresáře?