Home›DevOps›AutoSys JIL File Explained — What JIL Is, Syntax, Examples and Common Mistakes
Beginner
3 min · November 06, 2026
AutoSys JIL File Explained — What JIL Is, Syntax, Examples and Common Mistakes
What is JIL in AutoSys? Job Information Language explained: what a JIL file is, insert_job/update_job/delete_job syntax, command, box and file watcher.
N
NarenFounder & Principal Engineer
20+ years shipping production infrastructure and CI/CD at scale. Written from production experience, not tutorials.
Export an existing job's JIL with: autorep -J jobname -q
✦ Definition~90s read
What is AutoSys JIL?
JIL (Job Information Language) is AutoSys's text language for defining jobs. A JIL file is a plain-text script of keyword: value lines (insert_job, command, machine, condition and so on) that the jil command loads into the AutoSys database.
★
A JIL file is a recipe card for a batch job: what to run, on which machine, as which user, when, and after what.
Plain-English First
A JIL file is a recipe card for a batch job: what to run, on which machine, as which user, when, and after what. You hand the card to AutoSys with the jil command, and it files the job in its database. Change the card and reload it to change the job.
Every AutoSys job, whether you create it in WCC or a script, ends up as JIL: Job Information Language. Knowing JIL lets you version-control job definitions, promote them between environments, and review changes before they hit production. This guide covers what a JIL file looks like, the subcommands and attributes you'll use daily, examples for command, box and file watcher jobs, how to load and export JIL, and the mistakes that cause most failed loads.
What a JIL File Looks Like
A JIL file is a list of job definitions. Each starts with a subcommand line, followed by that job's attributes, one keyword: value per line. Comments use / ... /.
Subcommand says what to do with the card (insert, update, delete); attributes are the recipe.
🎯 Key Takeaway
One subcommand line, then keyword: value attributes.
The Subcommands
insert_job: create a new job (with job_type).
update_job: change attributes of an existing job; only the attributes you list change.
delete_job: remove a job. delete_box removes a box and the jobs inside it.
override_job: change attributes for the next run only, then revert automatically. Useful for one-off changes.
Job types are CMD (command), BOX (container for other jobs) and FW (file watcher); older versions also accept c, b and f.
changes.jilTEXT
1
2
3
4
5
6
7
8
9
10
/* Change only the start time */
update_job: FIN_DAILY_EXTRACT
start_times: "03:00"
/* One-off: run a different script on the next run only */
override_job: FIN_DAILY_EXTRACT
command: /apps/fin/bin/extract.sh --full
/* Remove a job */
delete_job: FIN_OLD_REPORT
💡update_job is partial
You don't repeat the whole definition. Anything you don't mention keeps its current value.
🎯 Key Takeaway
insert, update, delete, delete_box and override cover every change.
Box and File Watcher Examples
A box groups jobs and gives them shared timing; jobs join it with box_name. Conditions create dependencies between jobs. A file watcher waits for a file to arrive and settle.
success(JOB), failure(JOB) and done(JOB) can be shortened to s(), f() and d() in conditions.
🎯 Key Takeaway
box_name puts jobs in a box; condition chains them.
Load and Export JIL
Load a file by redirecting it into the jil command on a machine with the AutoSys client and environment set. To see what's actually defined, autorep -q prints a job's current definition as JIL, which is the best way to back up a job before changing it.
load_export.shBASH
1
2
3
4
5
6
7
8
# Load (insert/update/delete) everything in the file
jil < daily_extract.jil
# Back up the current definition first
autorep -J FIN_DAILY_EXTRACT -q > FIN_DAILY_EXTRACT.backup.jil
# Export a whole box and its jobs
autorep -J FIN_NIGHTLY_BOX -q > fin_nightly_box.jil
💡Version-control your JIL
Keep JIL files in Git, review changes as diffs, and load them from a pipeline. Then autorep -q output can be compared with the repo to catch drift.
🎯 Key Takeaway
jil < file to load; autorep -J job -q to export.
Common JIL Mistakes
Attributes before the subcommand: every attribute must follow an insert_job or update_job line.
Misspelled keywords or attributes that don't apply to the job_type (for example watch_file on a CMD job).
start_times or days_of_week without date_conditions: 1, so the job never schedules itself.
Unquoted values with special characters: quote start_times values like "02:00, 14:00".
Conditions on jobs that don't exist yet: load the upstream job first.
Mutually exclusive attributes, such as notification_template with notification_msg (Broadcom error CAUAJM_E_18965).
Environment-specific machine or owner values copied between test and production.
⚠ A successful load isn't a correct job
JIL validates syntax and references, not intent. Review autorep -q output after every change.
🎯 Key Takeaway
Most JIL failures are ordering, typos, missing date_conditions or wrong-environment values.
● Production incidentPOST-MORTEMseverity: high
The Promotion Script That Moved the Wrong Machine
Symptom
A production job completed SUCCESS but its output never appeared: it had run on the test machine.
Assumption
The team assumed the JIL file was environment-neutral because it loaded without errors.
Root cause
The machine: attribute still named the test agent, which was also defined in production for monitoring. JIL accepted it because the machine existed.
Fix
Split environment-specific values (machine, owner, paths) into per-environment variables substituted at deploy time, and added a review step that diffs autorep -q output before and after each load.
Key lesson
JIL that loads isn't necessarily correct JIL.
Keep environment-specific attributes out of shared definitions.
Diff autorep -q output before and after every change.
Production debug guideWhen jil rejects a file, or accepts the wrong thing4 entries
Symptom · 01
jil reports an error on a line
→
Fix
Check the keyword spelling and that the attribute belongs to that job_type; attributes must follow an insert_job/update_job line.
Two attributes can't coexist (Broadcom documents notification_template vs notification_msg); remove one in the update.
Symptom · 03
Job loads but never starts
→
Fix
Check date_conditions is 1 when using start_times/days_of_week, and that the condition's jobs exist and have run.
Symptom · 04
Unsure what's actually defined
→
Fix
Run autorep -J jobname -q to print the job's current JIL and compare with your file.
⚙ Quick Reference
4 commands from this guide
File
Command / Code
Purpose
daily_extract.jil
/* Daily extract: runs at 02:00 on weekdays */
What a JIL File Looks Like
changes.jil
/* Change only the start time */
The Subcommands
box_and_fw.jil
insert_job: FIN_NIGHTLY_BOX
Box and File Watcher Examples
load_export.sh
jil < daily_extract.jil
Load and Export JIL
Key takeaways
1
JIL is AutoSys's job definition language
subcommand, then keyword: value lines.
2
insert_job, update_job, delete_job, delete_box and override_job cover all changes.
3
Load with jil < file; export with autorep -J job -q.
4
Most errors are ordering, typos, missing date_conditions or wrong-environment values.
5
Keep JIL in version control and diff before and after loads.
Common mistakes to avoid
3 patterns
×
Forgetting date_conditions: 1
Symptom
Job has start_times but never runs on its own.
Fix
Set date_conditions: 1 for any job (or box) that should schedule itself.
×
Re-inserting a job to change it
Symptom
Error that the job already exists.
Fix
Use update_job with only the attributes that change.
×
Editing jobs only in WCC with no JIL record
Symptom
No history of who changed what, and environments drift apart.
Fix
Treat JIL in version control as the source of truth.
INTERVIEW PREP · PRACTICE MODE
Interview Questions on This Topic
Q01JUNIOR
What is JIL in AutoSys?
Q02SENIOR
What's the difference between update_job and override_job?
Q03JUNIOR
How do you back up a job definition before changing it?
Q01 of 03JUNIOR
What is JIL in AutoSys?
ANSWER
Job Information Language: the text language AutoSys uses to define jobs, with subcommands like insert_job and update_job followed by keyword: value attributes. Files are loaded with the jil command.
Q02 of 03SENIOR
What's the difference between update_job and override_job?
ANSWER
update_job permanently changes the listed attributes. override_job changes them for the next run only, after which the job reverts to its normal definition.
Q03 of 03JUNIOR
How do you back up a job definition before changing it?
ANSWER
autorep -J jobname -q prints the current definition as JIL; redirect it to a file.
01
What is JIL in AutoSys?
JUNIOR
02
What's the difference between update_job and override_job?
SENIOR
03
How do you back up a job definition before changing it?
JUNIOR
FAQ · 3 QUESTIONS
Frequently Asked Questions
01
What is a JIL file in AutoSys?
A plain-text file of Job Information Language statements that defines AutoSys jobs. It's loaded into the AutoSys database with the jil command.
Was this helpful?
02
How do I run a JIL file?
On a machine with the AutoSys client and environment configured, run jil < yourfile.jil.
Was this helpful?
03
How do I get the JIL of an existing job?
Run autorep -J jobname -q. It prints the job's current definition in JIL format.