TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Cron best practices

97 pointsby leejoabout 9 years ago

6 comments

euskeabout 9 years ago
The crontab command has one of the worst UI problems:<p>1. &quot;crontab -e&quot; lets you edit your crontab file, and &quot;crontab -r&quot; deletes it (without asking). The two keys are next to each other.<p>2. &quot;crontab&quot; (no arg) reads the contents of the crontab file from stdin and replaces it. When you accidentally hit Ctrl-D after it, your crontab is replaced with an empty file.
评论 #11654508 未加载
评论 #11655074 未加载
quentindemetzabout 9 years ago
Cronic (<a href="http:&#x2F;&#x2F;habilis.net&#x2F;cronic&#x2F;" rel="nofollow">http:&#x2F;&#x2F;habilis.net&#x2F;cronic&#x2F;</a>) has been a real life-saver when it comes to using cron in production services. I&#x27;ve been using it for 4+ years without looking back.
评论 #11655403 未加载
评论 #11655324 未加载
makecheckabout 9 years ago
I never edit a crontab directly. I use external files and reinstall them with &quot;crontab filename&quot; as needed. Then of course the files can be revision-controlled.<p>Also, I name the files according to host so I remember exactly where they were installed in a networked environment (e.g. &quot;host1.crontab&quot;, &quot;host2.crontab&quot;).
评论 #11654745 未加载
Ao7bei3sabout 9 years ago
0. Use systemd timers instead.<p>OnCalendar= has a less insane format than cron, exit code and output logging, locking, proper command line tools, and other niceties like Persistent= (catch up e.g. after system was powered off) etc.<p>(And yes, you can still have user &quot;cronjobs&quot; if you enable systemd user session lingering.)
评论 #11655463 未加载
评论 #11654615 未加载
fideloperabout 9 years ago
A few notes that I think are worth going over:<p>1. mysqldump can require quite a few more permissions than mentioned, depending on your utilization of mysql<p>2. The best way I&#x27;ve found to test the cron-like environmentis by following this: <a href="http:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;2135478&#x2F;how-to-simulate-the-environment-cron-executes-a-script-with" rel="nofollow">http:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;2135478&#x2F;how-to-simulate-t...</a><p>Otherwise you run the risk of .profile (and similar) being loaded, where they will not be when run in the cron task.<p>3. Extra emphasis on using a lock file to avoid overlapping cron tasks!<p>4. I love using `time` or similar means to pass execution time somewhere (a log file, or a web hook), which helps with point 3.
kchoudhuabout 9 years ago
Cron best practices: use anything else.