<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 04/05/18 09:10 AM, Alex Beamish via
      talk wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CANgc-ayQUqHYpc5wQxthUtJy+qAypv1ajpkDw2K15mM86RY1TQ@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On Fri, May 4, 2018 at 8:11 AM, Jamon
            Camisso via talk <span dir="ltr"><<a
                href="mailto:talk@gtalug.org" target="_blank"
                moz-do-not-send="true">talk@gtalug.org</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
                class="">On 2018-05-03 10:44 AM, Alex Beamish via talk
                wrote:<br>
                > I'm developing scripts that get run by crontab, so
                I'm in there making<br>
                > updates fairly regularly. I would love to be able
                to document the changes,<br>
                > so I'm wondering if there a usual and customary
                technique to version<br>
                > crontabs?<br>
              </span></blockquote>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    I've used RCS for lots of ad-hoc systems file tracking, and at least
    once replaced crontab with a script that added a check-in after
    calling the real crontab -e.  It could easily do a git commit
    && git push instead.<br>
    <br>
    --dave<br>
    <br>
    <br>
    <blockquote type="cite"
cite="mid:CANgc-ayQUqHYpc5wQxthUtJy+qAypv1ajpkDw2K15mM86RY1TQ@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
                class="">
                <br>
              </span>What are you changing in crontabs so much that you
              need versioning?<br>
            </blockquote>
            <div><br>
            </div>
            <div>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.</div>
            <div><br>
            </div>
            <div>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?)</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              Shouldn't all the logic be in your scripts? Maybe I'm
              missing something,<br>
              but it seems like needless complication to me.<br>
            </blockquote>
            <div><br>
            </div>
            <div>What to do and how to do it is in the scripts. How
              often to do it is in the crontab.</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <span class=""><br>
                > Ideally there would be some sort of hook around
                'crontab -e', but failing<br>
                > that, I'd have the output of 'crontab -l' (run
                regularly by cron?) go to a<br>
                > versioned file. Plan B sounds a bit hokey to me.<br>
              </span>If you do need to version things, you can just
              chuck a git repo under<br>
              /var/spool/cron/crontabs and ignore any files there you
              don't want tracked.<br>
            </blockquote>
            <div><br>
            </div>
            <div>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.</div>
            <div><br>
            </div>
            <div>The solution I'm leaning towards is to have a shell
              script for updating the crontab that would do something
              like</div>
            <div>1. pushd $local_crontab_directory</div>
            <div>2. crontab -e</div>
            <div>3. crontab -l >crontab.$username</div>
            <div>4. git diff <span
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">crontab.$username</span></div>
            <div><br>
            </div>
            <div>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.</div>
            <div><br>
            </div>
            <div>Thanks for your questions -- they helped me clarify my
              understanding of the problem and a possible solution.</div>
            <div><br>
            </div>
          </div>
          -- <br>
          <div class="gmail_signature" data-smartmail="gmail_signature">
            <div dir="ltr">
              <div>
                <div dir="ltr">
                  <div>
                    <div dir="ltr">
                      <div>
                        <div dir="ltr">
                          <div>
                            <div dir="ltr">
                              <div dir="ltr">
                                <div dir="ltr">
                                  <div dir="ltr">
                                    <div dir="ltr"><font size="2">Alex
                                        Beamish</font></div>
                                    <div dir="ltr"><font size="2"><br>
                                      </font></div>
                                    <div dir="ltr"><font size="2">Software
                                        Developer / <span
style="background-color:rgb(246,246,246);color:rgb(51,51,51);font-family:helvetica,freesans,"liberation
sans",helmet,arial,sans-serif"><a
                                            href="https://ca.linkedin.com/in/alex-beamish-5111ba3"
                                            target="_blank"
                                            moz-do-not-send="true">https://ca.linkedin.com/in/alex-beamish-5111ba3</a></span><br>
                                      </font></div>
                                    <div><font size="2">Speaker
                                        Wrangler, Toronto Perlmongers / <a
                                          href="http://to.pm.org/"
                                          target="_blank"
                                          moz-do-not-send="true">http://to.pm.org/</a></font></div>
                                    <div dir="ltr"><font size="2">Baritone,
                                        Board Member, Toronto Northern
                                        Lights, 2013 Champions / <a
                                          href="http://www.northernlightschorus.com"
                                          target="_blank"
                                          moz-do-not-send="true">www.northernlightschorus.com</a></font></div>
                                    <div dir="ltr"><font size="2">Certified
                                        Contest Administrator,
                                        Barbershop Harmony Society / <a
href="http://www.barbershop.org" target="_blank" moz-do-not-send="true">www.barbershop.org</a></font></div>
                                    <div><br>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">---
Talk Mailing List
<a class="moz-txt-link-abbreviated" href="mailto:talk@gtalug.org">talk@gtalug.org</a>
<a class="moz-txt-link-freetext" href="https://gtalug.org/mailman/listinfo/talk">https://gtalug.org/mailman/listinfo/talk</a>
</pre>
    </blockquote>
    <p><br>
    </p>
    <pre class="moz-signature" cols="72">-- 
David Collier-Brown,         | Always do right. This will gratify
System Programmer and Author | some people and astonish the rest
<a class="moz-txt-link-abbreviated" href="mailto:davecb@spamcop.net">davecb@spamcop.net</a>           |                      -- Mark Twain
</pre>
  </body>
</html>