CONDOR_HISTORY(1)

πŸ‘‘ condor_history β€” HTCondor Manual πŸ’«

okay bestie, welcome to condor_history β€” it's the HTCondor Manual's little time machine for viewing historical ClassAds. πŸ•°οΈβœ¨


✨ SYNOPSIS ✨

condor_history [-help]

condor_history [OPTIONS] [cluster... | cluster.proc... | user...]

condor_history [-debug] [-name name] [-pool hostname[:port]] [-backwards
| -forwards] [-constraint] [-since jobid | expr]
[-completedsince timestamp] [-scanlimit N] [-match | -limit N] [-local] [-schedd |
-startd | -epochs[:d] | -transfer-history[iIoOcC] | -daemon] [-file
filename] [-userlog filename] [-search path] [-dir/-directory] [-format
FormatString Attribute] [-af/-autoformat[:jlhVr,tng] Attribute
[Attribute ...]]  [-print-format filename] [-l/-long] [-attributes
Attribute[,Attribute,...]]  [-xml] [-json] [-jsonl] [-wide[:N]]
[-extract filename] [-no-librarian]

🌸 DESCRIPTION 🌸

Read historical ClassAds from local history files, periodt. πŸ’… By default it reads job ClassAds out of the HISTORY files. But if you hit it with the -name command line option, it goes and reads from remote APs instead. πŸ›°οΈ


πŸŽ€ OPTIONS πŸŽ€

  • -help β€” shows you the usage info and dips out. πŸ‘‹
  • -debug β€” sends debugging info to stderr, based on whatever the config variable TOOL_DEBUG says. πŸ›
  • -name name β€” queries the condor_schedd daemon with that name. And if you pair it with -startd, it queries the condor_startd daemon with that name instead. πŸ”
  • -pool hostname[:port] β€” uses that hostname as the central manager to go find the daemons you want to query for historical ClassAds. πŸ—ΊοΈ
  • -backwards β€” lists ClassAds in reverse chronological order, so the ClassAd most recently added to the history file comes first. This is the default ordering, no cap. πŸ₯‡
  • -forwards β€” lists ClassAds in chronological order, so the ClassAd most recently added to the history file comes last. 🐌
  • -no-librarian β€” ignores the condor_librarian record index database, even if USING_LIBRARIAN is True. Not me skipping the librarian πŸ™ˆ
  • cluster β€” only shows ClassAds that contain the specified ClusterId's. πŸ”’
  • cluster.process β€” only shows ClassAds containing that specific JobID (ClusterId.ProcId). 🎯
  • user β€” only shows ClassAds containing the specified Owner. 🫢
  • -constraint expr β€” displays the ClassAds that satisfy the expression. βœ…
  • -since jobid or expr β€” stops scanning when the ClassAd contains the specified JobId, or when the expression evaluates to True. πŸ›‘
  • -completedsince timestamp β€” scans until the first ClassAd that completed on or before the given unix timestamp. The argument can be any expression that evaluates to a unix timestamp. This option is literally equivalent to -since 'CompletionDate<=time_expr'. ⏰
  • -scanlimit N β€” stops scanning once that number of ClassAds have been read. πŸ“–
  • -limit N β€” limits how many ClassAds get displayed to Number. Same option as -match. βœ‚οΈ
  • -match Number β€” limits how many ClassAds get displayed to Number. Same option as -limit. (yes bestie they're the same thing, iconic twin behaviour πŸ’–)
  • -local β€” reads from local history files even if there's a SCHEDD_HOST configured. 🏠
  • -schedd β€” queries for ClassAds recorded in the HISTORY files. This is the default. πŸ—‚οΈ
  • -startd β€” queries for ClassAds recorded in the STARTD_HISTORY rather than the Schedd's history files. Use the -name option to query a remote StartD. πŸ›°οΈ
  • -epochs[:d] β€” queries for ClassAds recorded in the JOB_EPOCH_HISTORY rather than the Schedd's default completion history file. This option can be followed by a colon character for extra functionality, because she contains multitudes:
    • d β€” deletes job epoch files after it's finished reading. This option only deletes epoch files stored within JOB_EPOCH_HISTORY_DIR, and it can not be used with -match, -limit, or -scanlimit. πŸ’€
  • -transfer / -transfer-history[:iIoOcC] β€” queries input, output, and checkpoint transfer ClassAds recorded in the JOB_EPOCH_HISTORY. This option can be followed by a colon to specify which transfer types to query:
    • I / i β€” query Input transfer ClassAds. πŸ“₯
    • O / o β€” query Output transfer ClassAds. πŸ“€
    • C / c β€” query Checkpoint transfer ClassAds. 🚩
NOTE: This option does not have a default print format table and requires a format to be specified (i.e. -long, -json, -af, etc.). Like it needs the outfit, it cannot go out naked. πŸ‘—
  • -daemon β€” queries for ClassAds recorded in the <SUBSYS>_DAEMON_HISTORY.
NOTE: Currently only Schedd ClassAds are written into this history file. πŸ€·β™€οΈ
  • -file filename β€” queries ClassAd records from the specified filename. πŸ“
  • -userlog filename β€” displays HTCondor job information coming from a job event log. Heads up though: a job event log doesn't contain all of the job information, so some fields in the normal output will be blank. πŸ«₯
  • -search path β€” queries ClassAd records from the specified path filename and all matching HTCondor time rotated files (filename.YYYYMMDDTHHMMSS). If it's used with the -dir option, then the path directory is used to search for specific pattern matching history files. πŸ”Ž
  • -dir / -directory β€” searches for files in a source's alternate directory configuration knob to read from, instead of the default history file. πŸ“‚
NOTE: Only applies to the -epochs option. 🎯
  • -format formatString AttributeName β€” displays jobs with a custom format. See the condor_q -format option for the deets. 🎨
  • -af / -autoformat[:jlhVr,tng] Attribute [Attribute ...] β€” displays attribute(s) or expression(s) formatted in a default way, depending on the type of each Attribute specified after the option. It just assumes no Attributes start with a dash character, so the next word that begins with a dash gets treated as another option. This option can be followed by a colon character and formatting qualifiers to deviate the output formatting from the default:
    • j β€” print the ClassAd's associated JobID as the first field. πŸ₯‡
    • l β€” label each field. 🏷️
    • h β€” print column headings before the first line of output. πŸ“Š
    • V β€” use %V rather than %v for formatting (string values are quoted). πŸ’¬
    • r β€” print "raw", or unevaluated values. 🧊
    • , β€” add a comma character after each field. ➑️
    • t β€” add a tab character before each field instead of the default space character. ⏩
    • n β€” add a newline character after each field. πŸ†•
    • g β€” add a newline character between ClassAds, and suppress spaces before each field. πŸ“
WARNING: The n and , qualifiers may not be used together. The l and h qualifiers may not be used together. not me mixing these up and getting cursed output 😭
  • -print-format filename β€” reads output formatting information from the given custom print format file. See /classads/print-formats for more info about custom print format files. πŸ“œ
  • -l / -long β€” displays ClassAds in long format. 🐘
  • -attributes Attribute[,Attribute,...] β€” displays only the Attributes specified when using the -long option. (also, to be clear: displays only the given attributes when the -long option is used. yeah bestie the manpage said it twice, we love a redundant queen πŸ‘‘)
  • -xml β€” displays job ClassAds in XML format. πŸ“
  • -json β€” displays job ClassAds in JSON format. 🧾
  • -jsonl β€” displays job ClassAds in JSON-Lines format: one job ad per line. πŸ“ƒ
  • -wide[:N] β€” restricts output to the given column width. The default width is 80 columns, but if -wide is used without the optional N argument, the width of the output is not restricted. 🌊
  • -extract filename β€” copies all constraint matching ClassAd entries from history files into the specified filename, to create a mini history file for faster queries via -file filename. By default this option will copy up to 100,000 matching ads. To bump that limit up or down, use the -limit option. To disable the limit entirely, use -limit -1. ⚑
NOTE: This option requires a constraint of ClassAds to copy. 🚨
WARNING: This option cannot be used in a remote query. πŸ”’
  • -stream-results β€” sends parsed ClassAds over the socket rather than displaying them to the terminal. 🌐
WARNING: Only used internally by Daemons executing History Helper functionality. πŸ”§
  • -inherit β€” inherits the command socket of the Daemon that shelled this tool. 🐚
WARNING: Only used internally by Daemons executing History Helper functionality. πŸ”§
  • -type type[,type,...] β€” specifies historical ClassAd banner types to use as an allow filter. Use ALL to parse all ClassAds found in the history files. πŸ—‚οΈ
  • -diagnostic β€” runs the tool in diagnostic mode, increasing tool output. Separate from -debug. 🩺

🌸 GENERAL REMARKS 🌸

Ok so by default, bestie, this tool goes looking for historical HTCondor Job ClassAds that have completed. That's the vibe. That's the whole default.

The default listing summarizes each ClassAd on a single line, in reverse chronological order, and it gives you these lil guys right here: πŸ’–

  • ID β€” The ClusterId.ProcId of the job.
  • OWNER β€” The Owner of the job.
  • SUBMITTED β€” The month, day, hour, and minute the job was submitted to the queue.
  • RUN_TIME β€” Remote wall clock time accumulated by the job to date in days, hours, minutes, and seconds, given as the job ClassAd attribute RemoteWallClockTime.
  • ST β€” Completion status of the job (C = completed and X = removed).
  • COMPLETED β€” The time the job was completed.
  • CMD β€” The name of the job's executable.

And when you're querying historical Schedd ClassAds from the SCHEDD_DAEMON_HISTORY? The default info displayed is this lineup, periodt: ✨

  • TIMESTAMP β€” The UNIX timestamp representing exactly when the record was written to the history file.
  • DUTY_CYCLE β€” The Schedd's RecentDaemonCoreDutyCycle at the time the record was written.
  • RunningJobs β€” The Schedd's TotalRunningJobs at the time the record was written.
  • IdleJobs β€” The Schedd's TotalIdleJobs at the time the record was written.
  • HeldJobs β€” The Schedd's TotalHeldJobs at the time the record was written.
  • Download β€” The Schedd's TransferQueueNumDownloading at the time the record was written.
  • Waiting (download) β€” The Schedd's TransferQueueNumWaitingToDownload at the time the record was written.
  • WaitingMB (download) β€” The Schedd's FileTransferMBWaitingToDownload at the time the record was written.
  • Upload β€” The Schedd's TransferQueueNumUploading at the time the record was written.
  • Waiting (upload) β€” The Schedd's TransferQueueNumWaitingToUpload at the time the record was written.
  • WaitingMB (upload) β€” The Schedd's FileTransferMBWaitingToUpload at the time the record was written.

Like, every single one of them is a snapshot of that moment the record got written. no cap. πŸ“Έ


🫢 EXIT STATUS 🫢

  • 0 β€” Success πŸŽ‰
  • 1 β€” Failure has occurred 😭

πŸ’… EXAMPLES πŸ’…

Query all historical Job ClassAds with ClusterId 42:

$ condor_history 42

Query the historical Job ClassAd for job 42.8:

$ condor_history 42.8

Query all historical Job ClassAds for user Cole:

$ condor_history cole

Query all historical Job ClassAds that have completed since job 42.8:

$ condor_history -since 42.8

Query all historical Job ClassAds completed since February 14th, 2002:

$ condor_history -completedsince 1644818400

Display specific ClassAd attributes nicely with JobIDs and a header for each historical Job ClassAd:

$ condor_history -af:jh CpusProvisioned DiskProvisioned GPUsProvisioned ExitCode

Query the oldest ClassAds in the history files (yes, going forwards, icon behavior):

$ condor_history -forwards

Query partial job information from a job event log:

$ condor_history -userlog job-42.8.log

Query historical ClassAds from a specific file:

$ condor_history -file temp-job.hist

Query historical Job ClassAds from a remote Schedd:

$ condor_history -name ap2.chtc.wisc.edu

Query per run instance (epoch) historical Job ClassAds:

$ condor_history -epochs

Query all transfer ClassAds in json format:

$ condor_history -transfer -json

Query only Input and Output transfer ClassAds in long format:

$ condor_history -transfer-history:IO -l

Query historical Job ClassAds from StartD:

$ condor_history -startd

Extract last 100 of user Greg's jobs to use for quicker queries (obsessed with this one, it's giving efficiency queen πŸ‘‘):

$ condor_history -extract subset.hist greg -limit 100
$ condor_history -file subset.hist

Query historical Schedd ClassAds:

$ condor_history -daemon

Query historical Schedd ClassAds from a remote Schedd:

$ condor_history -name ap2.chtc.wisc.edu -daemon

🌈 SEE ALSO 🌈

htcondor, condor_q


✨ AVAILABILITY ✨

Linux, MacOS, Windows πŸ¦‹


πŸ’œ AUTHOR πŸ’œ

HTCondor Team


1990-2026, Center for High Throughput Computing, Computer Sciences Department, University of Wisconsin-Madison, Madison, WI, US. Licensed under the Apache License, Version 2.0.


ok bestie that's the whole page, you ate that 🫢 this one's dated Oct 16, 2026 and it's CONDOR_HISTORY(1) β€” go forth and query those historical ClassAds, you main character πŸ’–πŸŒΈβœ¨

πŸ“¦ where this page comes from