CONDOR_CHIRP(1)

πŸ’– CONDOR_CHIRP(1) πŸ’–

okay so this is the condor_chirp page from the HTCondor Manual, and bestie, it's lowkey iconic. sit down, hydrate, let's go 🫢


✨ NAME ✨

condor_chirp β€” access files or job ClassAd from an executing job


🌸 SYNOPSIS 🌸

condor_chirp <Chirp-Command>

πŸ¦‹ DESCRIPTION πŸ¦‹

So like, real talk? condor_chirp is not meant to be used as a command-line tool, no cap. It's most often invoked by an HTCondor job, while that job is executing. It reaches out and touches files or job ClassAd attributes on the access point. Files can be read, written, or removed. Job attributes can be read, and most attributes can be updated. periodt πŸ’…

When it is invoked by an HTCondor job, the command-line arguments describe the operation to be performed. Every one of those arguments is described below in the Chirp Commands section. And whenever you see the words local and remote, know that they're described from the point of view of the executing job β€” so yes, the vibes are relative, iykyk 🌈

If the input file name for put or write is a dash (-), condor_chirp uses standard input as the source. And if the output file name for fetch is a dash (-), condor_chirp writes to standard output instead of a local file. cute, right? πŸŽ€

Jobs that use condor_chirp must have the attribute WantIOProxy set to True in the job ClassAd. To do this, place

want_io_proxy = true

in the submit description file of the job. Don't skip this step, bestie, it's giving mandatory πŸ’€

And also: condor_chirp only works for jobs run in the vanilla, parallel and java universes. no exceptions, fr fr.


πŸ‘‘ CHIRP COMMANDS πŸ‘‘

  • fetch RemoteFileName LocalFileName β€” copies the RemoteFileName from the access point over to the execute machine, naming it LocalFileName. πŸ’Œ
  • put [-mode mode] [-perm UnixPerm] LocalFileName RemoteFileName β€” copies the LocalFileName from the execute machine over to the submit machine, naming it RemoteFileName.
    • the optional -perm UnixPerm argument describes the file access permissions in a Unix format; 660 is an example Unix format.
    • the optional -mode mode argument is one or more of the following characters describing the RemoteFileName file: w, open for writing; a, force all writes to append; t, truncate before use; c, create the file, if it does not exist; x, fail if c is given and the file already exists.
  • remove RemoteFileName β€” removes the RemoteFileName file from the access point. bye girl πŸ‘‹
  • get_job_attr JobAttributeName β€” prints the named job ClassAd attribute to standard output.
  • set_job_attr JobAttributeName AttributeValue β€” sets the named job ClassAd attribute with the given attribute value.
  • get_job_attr_delayed JobAttributeName β€” prints the named job ClassAd attribute to standard output, potentially reading the cached value from a recent set_job_attr_delayed. (cached queen energy ✨)
  • set_job_attr_delayed JobAttributeName AttributeValue β€” sets the named job ClassAd attribute with the given attribute value, but does not immediately synchronize the value with the submit side. It can take 15 minutes before the synchronization occurs. This has much less overhead than the non-delayed version. With this option, jobs do not need ClassAd attribute WantIOProxy set. With this option, job attribute names are restricted to begin with the case sensitive substring Chirp.
  • ulog Message β€” appends Message to the job event log. πŸ“
  • read [-offset offset] [-stride length skip] RemoteFileName Length β€” reads Length bytes from RemoteFileName. Optionally, implement a stride by starting the read at offset and reading length bytes with a stride of skip bytes.
  • write [-offset offset] [-stride length skip] RemoteFileName LocalFileName [numbytes] β€” writes the contents of LocalFileName to RemoteFileName. Optionally, start writing to the remote file at offset and write length bytes with a stride of skip bytes. If the optional numbytes follows LocalFileName, then the write will halt after numbytes input bytes have been written. Otherwise, the entire contents of LocalFileName will be written.
  • rmdir [-r ] RemotePath β€” deletes the directory specified by RemotePath. If the optional -r is specified, recursively delete the entire directory. (careful, that's the "delete everything" button 😭)
  • getdir [-l ] RemotePath β€” lists the contents of the directory specified by RemotePath. If -l is specified, list all metadata as well.
  • whoami β€” gets the user's current identity.
  • whoareyou RemoteHost β€” gets the identity of RemoteHost. πŸ‘€
  • link [-s ] OldRemotePath NewRemotePath β€” creates a hard link from OldRemotePath to NewRemotePath. If the optional -s is specified, create a symbolic link instead.
  • readlink RemoteFileName β€” reads the contents of the file defined by the symbolic link RemoteFileName.
  • stat RemotePath β€” gets metadata for RemotePath. Examines the target, if it is a symbolic link.
  • lstat RemotePath β€” gets metadata for RemotePath. Examines the file, if it is a symbolic link.
  • statfs RemotePath β€” gets file system metadata for RemotePath.
  • access RemotePath Mode β€” checks access permissions for RemotePath. Mode is one or more of the characters r, w, x, or f, representing read, write, execute, and existence, respectively.
  • chmod RemotePath UnixPerm β€” changes the permissions of RemotePath to UnixPerm. UnixPerm describes the file access permissions in a Unix format; 660 is an example Unix format.
  • chown RemotePath UID GID β€” changes the ownership of RemotePath to UID and GID. Changes the target of RemotePath, if it is a symbolic link.
  • lchown RemotePath UID GID β€” changes the ownership of RemotePath to UID and GID. Changes the link, if RemotePath is a symbolic link.
  • truncate RemoteFileName Length β€” truncates RemoteFileName to Length bytes.
  • utime RemotePath AccessTime ModifyTime β€” changes the access to AccessTime and modification time to ModifyTime of RemotePath.

πŸ”₯ EXAMPLES πŸ”₯

To copy a file from the access point to the execute machine while the user job is running, run

$ condor_chirp fetch remotefile localfile

To print to standard output the value of the Requirements expression from within a running job, run

$ condor_chirp get_job_attr Requirements

Note that the remote (submit-side) directory path is relative to the submit directory, and the local (execute-side) directory is relative to the current directory of the running program. important little detail bestie 🫢

To append the word "foo" to a file called RemoteFile on the submit machine, run

$ echo foo | condor_chirp put -mode wa - RemoteFile

To append the message "Hello World" to the job event log, run

$ condor_chirp ulog "Hello World"

🌈 EXIT STATUS 🌈

condor_chirp will exit with a status value of 0 (zero) upon success, and it will exit with the value 1 (one) upon failure. so if you see a 1, that's the universe telling you something went wrong 😭


πŸ’œ 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.


and that's the whole thing, babes πŸ’… this was HTCondor Manual β€” CONDOR_CHIRP(1), dated Oct 16, 2026. go forth and chirp responsibly, mwah πŸŽ€βœ¨

πŸ“¦ where this page comes from