Request for Opinion - JCL but for Linux??
from waspentalive@lemmy.one to linux@lemmy.ml on 30 Apr 19:12
https://lemmy.one/post/27552301

Any interest in this:

LJL is a job creation language that takes a job file, gathers items mentioned in its various lines and here-documents, and generates a runnable .deck file (short for “deck of cards”).

The .deck file is a complex Bash script that creates a log spool and several temporary files in /tmp/<jobname>. It automatically cleans up scratchable files after the run. The log file contains the output of each step, including any program results.

Any questions about it? Any suggestions?

#linux

threaded - newest

waspentalive@lemmy.one on 30 Apr 19:58 next collapse

I manually created a .deck file to compile and run a Fortran program with specific data and to create a .log file of all the output, the Fortran program, and the data. I found it to be picky and somewhat hard. So I thought to myself: With something like JCL, one could take simple JCL-like statements, here documents for the source and data files, and programmatically combine them to make a script like the one I created manually.

waspentalive@lemmy.one on 30 Apr 23:54 next collapse

More Detail::: What SUBMIT Does with Each LJL Statement:

For every statement, SUBMIT generates corresponding commands in the .deck file. Below is a step-by-step breakdown:

One //jo line, as many /dd lines as are required, and as many //ex as are required

//jo sumjob owner=me@mail.com log=print class=a

  • Generates a deck command to invoke ifclass a, which checks if the job’s class allows execution at run time.

  • Generates a deck command to Log “sumjob is starting” to /var/log/JCL/ with a timestamp.

  • Generates a deck command to create /tmp/sumjob

  • Generates a deck command to initializes /tmp/sumjob/jobname.log with a formatted header (e.g., via figlet sumjob).

Job Classes: A = Runs as soon as submitted B = Runs only if load is low enough C = Runs in Off-Hours

//dd alias source(here|file=pathandfilename|new) disp(keep|scratch)

  • Note the disp (disposition) if keep the put the file in /home/user/.lcl/jobname as whatever the alias is if the disp(scratch) then the file will go into the /tmp/jobname directory as named by the alias.

  • Generate deck commands to

– if source is here: copy lines from lcl up to ‘/*’ to the deck file as a here document if source is a file: add commands to copy the file into a working directory either in user’s home or in the tmp directory under the alias. //dd users source(file=/etc/passwd) disp(keep) ==> copy /etc/passwd to /home/user/.ljl/users

//ex somecommand --options < alias

-Generate doc commands to execute the program as specified and save the output to the logfile In this case echo (somecommand --options < aliasproperlyexpanded ) > logfile

The deck file now forms a fully functional batch file to do the specified computation.

nanook@friendica.eskimo.com on 01 May 02:29 collapse

Between bash (and the 40 or so other shells available under Linux), python, perl, and the several hundred other scripting languages already available, is a dedicated job control language really needed? I think unnecessary fluff.

waspentalive@lemmy.one on 01 May 15:12 collapse

It is not mandatory that you install it - Yes, there are other choices already. But in the beginning, Unix only had C and Assembly why didn’t we just stick with those?