No subject


Sun Feb 10 21:45:11 GMT 2008


every 60 seconds, check the configuration database for changes and execute
jobs as needed.   Job execution would consist of checking the jobs
credentials ( if run as X, fork, lock records to job handler PID, descend
privileges to specified user, chdir to script path, wrap the job in a
subprocess, respond to job events as needed ( stderr, ! zero return,
excessive run time, etc ).

    My question is, anyone see a better way, or a OSS project out there that
could do the above for me... even a beta project written in python or c++
could be workable by me.  If you haven't noticed the varying levels of
sarcasm, I'm somewhat stretched thin right now.

    Thanks,
            David

------=_Part_35391_22638696.1205104305915
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hello,<br>
&nbsp;&nbsp;&nbsp; First off an introduction as this is my first post:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I work in Denver as a multi-hat developer: php/python/bash/c++
developer, linux system admin, and a intermediate MySQL database
administrator, and also my current company&#39;s R&amp;D developer.&nbsp; I&#39;ve been working
with *nix since 1996-97 when a c++ programming course I took was taught
exclusively on v220 terminals connected to a mini-computer.&nbsp;&nbsp; <br>
<br>
I&#39;m on week 2 or maybe 3 of doing research for consolidating my
company&#39;s small and growing horde of cronjobs... its well over 150
script at this point.&nbsp; The company CEO has directed me to start
research and research I have done.<br>
<br>Why crontab sucks for what I need:<br><br>&nbsp; Cron does a fantastic job at what it does, run something at X time.<br>&nbsp; The problem is, what if I need alt_X to run if X exists non-zero.... alright so I could do:<br>&nbsp;&nbsp;&nbsp; x || alt_x<br>
<br>&nbsp;&nbsp; Now what if I need y to run after x if its successfull<br><br>&nbsp;&nbsp; (x &amp;&amp; y ) || alt_x<br><br>&nbsp;&nbsp; Well thats not right?&nbsp; x could perform correctly then have y fail, causing alt_x to run and possibly redo important operations/data.<br>
<br>&nbsp;&nbsp; (x || alt_x) &amp;&amp; y&nbsp; - except what if I don&#39;t want y to run if alt_x ends up running?<br>&nbsp;<br><br>&nbsp;&nbsp; Now to make things fun.... lets say there is a chain of 4-5 scripts that must run conditionally.&nbsp; I&#39;m pretty decent with simple and/or logic, but I know this would confuse anyone else to read and decypher.&nbsp; Making it so only I and maybe one or two disciples can maintain the abomination that is the company&#39;s backend underworld.<br>
<br>Plan B (partially in effect)<br>&nbsp;&nbsp; Complex jobs are written as bash scripts.&nbsp; This is a step up from the above, I can build a job with variables, capture output to temp files, and use mail or sendmail to make customized emails.&nbsp; Whats lacking is resuability.&nbsp; Sure I can write shell script libraries to reuse certain things, like a bash wrapper function to handle individual scripts.... but adding in context sensitive checks &quot;has the word failure, critical, OMFG, etc&quot; would be hard coded in.<br>
<br>Plan C ( what I am aiming for)<br>&nbsp;&nbsp; So I&#39;m looking for a cronjob equivalent scheduling system that can be configured by information stored in a database (MySQL, sqllite, whatever).&nbsp; This phantom program would have the following specs:<br>
<br>&nbsp;&nbsp;&nbsp; Run any process/job as either root or a specific user account<br>&nbsp;&nbsp;&nbsp; Record the job fitness ( maximum memory, time stats (rtime, utime, overall)<br>&nbsp;&nbsp;&nbsp; Historical recording ( save input to DB or serialized filestore )<br>
&nbsp;&nbsp;&nbsp; Context sensitive output handling<br>&nbsp;&nbsp;&nbsp; Digest email capability ( instead of 120-140 emails a day, I&#39;d be estatic with like 30)<br>&nbsp;&nbsp;&nbsp; SMP/pager capability<br><br>&nbsp;&nbsp; I&#39;ve started prototyping the above in python, but I figure to get this to a stable enough product, it would take me 3-4 days of development time then a residual 5-15 hours for the next month or two in responsive debugging.&nbsp; From my prototypes, I&#39;d have a daemonized python script that would sleep every 60 seconds, check the configuration database for changes and execute jobs as needed.&nbsp;&nbsp; Job execution would consist of checking the jobs credentials ( if run as X, fork, lock records to job handler PID, descend privileges to specified user, chdir to script path, wrap the job in a subprocess, respond to job events as needed ( stderr, ! zero return, excessive run time, etc ).<br>
<br>&nbsp;&nbsp;&nbsp; My question is, anyone see a better way, or a OSS project out there that could do the above for me... even a beta project written in python or c++ could be workable by me.&nbsp; If you haven&#39;t noticed the varying levels of sarcasm, I&#39;m somewhat stretched thin right now.<br>
<br>&nbsp;&nbsp;&nbsp; Thanks,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; David<br>

------=_Part_35391_22638696.1205104305915--



More information about the Ubuntu-us-co mailing list