Cron: Difference between revisions
imported>Sjau <code> is easier to spot that <tt> |
imported>Cyounkins m link to systemd/timers |
||
| (4 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
= | =Cron= | ||
==Deprecated== | |||
It is recommended to use [[Systemd/Timers|systemd-timers]]. A few of many reasons: | |||
* logs are logged to journalctl instead of relying on local mail | |||
* different timers are independent of each other and do not share an environment | |||
* better configurability like random offsets, run missed timers when machine was powered down and full systemd service option | |||
==General== | ==General== | ||
| Line 21: | Line 28: | ||
<syntaxHighlight lang="nix"> | <syntaxHighlight lang="nix"> | ||
"*/10 * * * * johndoe . /etc/profile; | "*/10 * * * * johndoe . /etc/profile; ${pkgs.rss2email}/bin/r2e run" | ||
</syntaxHighlight> | </syntaxHighlight> | ||
The <code>. /etc/profile;</code> part first sources the profile file and hence loading the environment. After that, the actual command is being run in the proper environment. The above entry would run the rss2email program every <code>10 minutes</code> as user <code>johndoe</code> | The <code>. /etc/profile;</code> part first sources the profile file and hence loading the environment. After that, the actual command is being run in the proper environment. The above entry would run the rss2email program every <code>10 minutes</code> as user <code>johndoe</code> | ||
==Send mail only when error== | |||
In case you have set proper sendmail and defined a user where cron should send output to, you might want limit those emails only when cron encounters a problem. This can easily be achieved by storing the output of the command given into a variable and use the <code>||</code> control operator to echo this output only when there is a non-zero exit status of the command. | |||
<syntaxHighlight lang="nix"> | |||
"0 * * * * johndoe out=$( ${pkgs.pass}/bin/pass git pull 2>&1 ) || echo $out" | |||
</syntaxHighlight> | |||
=See also= | =See also= | ||