Home › DevOps › Deploying AutoSys JIL to Production Safely: Backup, Diff, Rollback
Intermediate 3 min · November 08, 2026

Deploying AutoSys JIL to Production Safely: Backup, Diff, Rollback

Release AutoSys JIL changes safely: back up with autorep -q, use update_job (never delete_box to edit), apply with jil, diff before and after, and roll back.

N
Naren Founder & Principal Engineer

20+ years shipping production infrastructure and CI/CD at scale. Drawn from code that ran under real load.

Follow
✓ Production
production tested
November 09, 2026
last updated
2,128
articles · all by Naren
Before you start⏱ 6 min
  • ✓AutoSys JIL basics
 ● Production Incident 🔎 Debug Guide
⚡Quick Answer
  • Back up: autorep -J APP% -q > before.jil
  • Change existing jobs with update_job (only listed attributes change).
  • insert_job is for new jobs; delete_box deletes the box AND every job in it.
  • Apply: jil < release.jil
  • Verify: autorep -J APP% -q > after.jil && diff before.jil after.jil
  • Roll back: a reverse update_job file (old values) written before the release; jil < before.jil re-adds deleted jobs; delete_job anything the release added.
  • CI/CD: JIL in git, reviewed, applied to test, then production.
✦ Definition~90s read
What is Deploying AutoSys JIL to Production Safely?

AutoSys job definitions are changed by feeding JIL to the jil command. A safe release backs up the current definitions with autorep -q, applies changes with update_job (not delete and re-insert), compares before and after, and has a reverse file ready as the rollback.

★
Editing a JIL release is like renovating one room.
Plain-English First

Editing a JIL release is like renovating one room. update_job repaints the walls. delete_box knocks down the room with all the furniture in it, and your plan only rebuilt the walls.

One JIL file on a Friday, forty missing jobs on Monday. Most JIL release incidents come from using the wrong verb or having no backup. This guide gives a five-step release and the rollback.

Pick the Right Verb

update_job changes only the attributes you list. insert_job creates a new job and fails if it exists. delete_job removes one job. delete_box removes the box and all jobs inside it.

release.jilJIL
1
2
update_job: FIN_BOX
start_times: "02:30"
🎯 Key Takeaway
update_job to change; delete_box deletes everything inside.

Back Up and Diff

autorep -q prints definitions as JIL. Save one before the change and one after, then diff them.

release.shBASH
1
2
3
4
autorep -J FIN% -q > before.jil
jil < release.jil
autorep -J FIN% -q > after.jil
diff before.jil after.jil
🎯 Key Takeaway
The backup is the rollback.

Rollback

Write the rollback before you release: an update_job file with the current values of everything the release changes. autorep -q writes insert_job, so reloading the backup only recreates jobs that were deleted; existing jobs report that they already exist. Delete jobs the release added with delete_job.

rollback.shBASH
1
2
3
4
5
6
7
8
# rollback.jil, written before the release
update_job: FIN_BOX
start_times: "02:00"

# roll back
jil < rollback.jil
jil < before.jil          # re-creates any deleted jobs
echo 'delete_job: FIN_NEW_JOB' | jil
⚠ The backup isn't a full rollback
autorep -q writes insert_job. It restores deleted jobs, but it won't change jobs that still exist.
🎯 Key Takeaway
Rollback = reverse update_job file + backup for deleted jobs.

CI/CD

Keep JIL in git, review diffs in pull requests, and apply the same file to a test instance before production. Run the release with the same backup and diff steps in your pipeline.

pipeline.shBASH
1
2
3
4
autorep -J FIN% -q > before.jil
jil < jil/fin_release.jil
autorep -J FIN% -q > after.jil
diff before.jil after.jil || true
🎯 Key Takeaway
Git, review, test, production.
● Production incidentPOST-MORTEMseverity: high

The Release That Deleted Forty Jobs

Symptom
Monday 07:00: autorep returned 'Job Name does not exist' for 40 FIN jobs.
Assumption
delete_box followed by insert_job would recreate the box as it was, with new settings.
Root cause
delete_box deletes the box and every job inside it. The release file only re-inserted the box.
Fix
Restored from the previous night's autorep -q export, then rewrote the release as update_job.
Key lesson
  • Use update_job to change jobs.
  • Always take an autorep -q backup first.
  • diff before and after.
Production debug guideBefore, during, after3 entries
Symptom · 01
Before
→
Fix
autorep -J APP% -q > before.jil; put the box ON_HOLD if it could start during the change. Write rollback.jil with the old values.
Symptom · 02
During
→
Fix
jil < release.jil; read every CAUAJM message.
Symptom · 03
After
→
Fix
diff before.jil after.jil; release holds; keep rollback.jil and before.jil.
⚙ Quick Reference
4 commands from this guide
FileCommand / CodePurpose
release.jilupdate_job: FIN_BOXPick the Right Verb
release.shautorep -J FIN% -q > before.jilBack Up and Diff
rollback.shupdate_job: FIN_BOXRollback
pipeline.shautorep -J FIN% -q > before.jilCI/CD

Key takeaways

1
update_job to change jobs.
2
delete_box deletes every job inside.
3
Back up with autorep -q.
4
diff before and after.
5
Keep JIL in git.

Common mistakes to avoid

2 patterns
×

delete_box to edit a box

Symptom
All jobs inside gone.
Fix
update_job.
×

No backup

Symptom
No rollback.
Fix
autorep -q before every release.
INTERVIEW PREP · PRACTICE MODE

Interview Questions on This Topic

Q01SENIOR
How do you deploy JIL changes to production safely?
Q02JUNIOR
What does delete_box do?
Q01 of 02SENIOR

How do you deploy JIL changes to production safely?

ANSWER
Back up with autorep -q, apply update_job changes with jil, diff before and after, and keep the backup for rollback.
FAQ · 2 QUESTIONS

Frequently Asked Questions

01
How do AutoSys releases go to production?
02
How do I roll back a JIL change?
COMPLETE GUIDE
The Complete AutoSys Workload Automation Guide for Engineers →

JIL syntax, sendevent, autorep, box jobs, file watchers, scheduling, HA, security, cloud workload automation, and 22 interview questions — the definitive AutoSys reference for production engineers.

N
Naren Founder & Principal Engineer

20+ years shipping production infrastructure and CI/CD at scale. Drawn from code that ran under real load.

Follow
✓ Verified
production tested
November 09, 2026
last updated
2,128
articles · all by Naren
🔥

That's AutoSys. Mark it forged?

3 min read · try the examples if you haven't

←
Previous
AutoSys: List Only Failed Jobs
44 / 49 · AutoSys
Next
AutoSys: First Tuesday of the Month (Extended Calendars)
→