
On Fri, May 4, 2018 at 8:11 AM, Jamon Camisso via talk <talk@gtalug.org> wrote:
On 2018-05-03 10:44 AM, Alex Beamish via talk wrote:
I'm developing scripts that get run by crontab, so I'm in there making updates fairly regularly. I would love to be able to document the changes, so I'm wondering if there a usual and customary technique to version crontabs?
What are you changing in crontabs so much that you need versioning?
I'm developing EDI scripts, and as development progresses, some of the older scripts are being replaced by newer scripts. On occasion, there are times when I need to disable a crontab job while I solve an issue. Having version control would be a great back-stop, and would also be useful from a historical point of view. (Why did I disable that job last Thursday? Where did the such and such script go?)
Shouldn't all the logic be in your scripts? Maybe I'm missing something, but it seems like needless complication to me.
What to do and how to do it is in the scripts. How often to do it is in the crontab.
Ideally there would be some sort of hook around 'crontab -e', but failing that, I'd have the output of 'crontab -l' (run regularly by cron?) go to a versioned file. Plan B sounds a bit hokey to me. If you do need to version things, you can just chuck a git repo under /var/spool/cron/crontabs and ignore any files there you don't want tracked.
Under my system, that directory is owned by root, and I prefer not to version anything as root; the code I'm developing is application code, not system code. The solution I'm leaning towards is to have a shell script for updating the crontab that would do something like 1. pushd $local_crontab_directory 2. crontab -e 3. crontab -l >crontab.$username 4. git diff crontab.$username If there were changes revealed by the 'git diff', and if I felt they were significant, I could do a git commit, followed by a popd. Thanks for your questions -- they helped me clarify my understanding of the problem and a possible solution. -- Alex Beamish Software Developer / https://ca.linkedin.com/in/alex-beamish-5111ba3 Speaker Wrangler, Toronto Perlmongers / http://to.pm.org/ Baritone, Board Member, Toronto Northern Lights, 2013 Champions / www.northernlightschorus.com Certified Contest Administrator, Barbershop Harmony Society / www.barbershop.org