• 7 Posts
  • 49 Comments
Joined 2 years ago
cake
Cake day: June 14th, 2023

help-circle





  • 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 [email protected] 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.


  • 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.









  • @[email protected] I see what you’re asking. You’re wondering if, instead of storing a duplicate file when another backup set already contains it, I could use a hardlink to point to the file already stored in that other set?

    I have a system where I create a backup set for each day of the week. When I do a backup for that day, I update the set, or if it’s out of date, I replace it entirely with a fresh backup image (After 7 backups to that set). But if the backup sets became inter-dependent, removing or updating one set could lead to problems with others that rely on files in the first set.

    Does that make sense? I am asking because I am not familiar with the utilities you mentioned and may be taking your post wrong.




  • Yeah, no problem… I started out with just bare rsync - but I did the backup infrequently and needed my notes to know the command. Then I wrote a simple shell script to run the rsync for me. Then I decided I needed more than one backup, redundancy is good. Then I wanted to keep track of the backups so I had it write to .backuplog then that file started getting dated (every time I run a “sun” backup the record of the previous one is useless) so Finally TaDa! loci is born.