condor_chirp(1)

Name

condor_chirpAccess files or job ClassAd from an executing job

Synopsis
condor_chirp<Chirp-Command>

Description
condor_chirpis not intended for use as a command-line tool. It is most often invoked by an HTCondor job, while the job is executing. It accesses files or job ClassAd attributes on the submit machine. Files can be read, written or removed. Job attributes can be read, and most attributes can be updated.

When invoked by an HTCondor job, the command-line arguments describe the operation to be performed. Each of these arguments is described below within the section on Chirp Commands. Descriptions using the terms localand remoteare given from the point of view of the executing job.

If the input file name for putor writeis a dash, condor_chirpuses standard input as the source. If the output file name for fetchis a dash, condor_chirpwrites to standard output instead of a local file.

Jobs that use condor_chirpmust have the attribute WantIOProxyset to Truein the job ClassAd. To do this, place

+WantIOProxy = true

in the submit description file of the job.

condor_chirponly works for jobs run in the vanilla, parallel and java universes.

Chirp Commands

fetch RemoteFileName LocalFileName

    Copy the RemoteFileNamefrom the submit machine to the execute machine, naming it LocalFileName.

put[-mode mode] [-perm UnixPerm] LocalFileNameRemoteFileName

    Copy the LocalFileNamefrom the execute machine to the submit machine, naming it RemoteFileName. The optional -perm UnixPermargument describes the file access permissions in a Unix format; 660 is an example Unix format.

    The optional -mode modeargument is one or more of the following characters describing the RemoteFileNamefile: 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 cis given and the file already exists.

remove RemoteFileName

    Remove the RemoteFileNamefile from the submit machine.

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.

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 notneed ClassAd attribute WantIOProxyset. With this option, job attribute names are restricted to begin with the case sensitive substring Chirp.

ulog Message

    Appends Messageto the job event log.

read[-offset offset] [-stride length skip] RemoteFileNameLength

    Read Lengthbytes from RemoteFileName. Optionally, implement a stride by starting the read at offsetand reading lengthbytes with a stride of skipbytes.

write[-offset offset] [-stride length skip] RemoteFileNameLocalFileName[numbytes]

    Write the contents of LocalFileNameto RemoteFileName. Optionally, start writing to the remote file at offsetand write lengthbytes with a stride of skipbytes. If the optional numbytesfollows LocalFileName, then the write will halt after numbytesinput bytes have been written. Otherwise, the entire contents of LocalFileNamewill be written.

rmdir[-r] RemotePath

    Delete the directory specified by RemotePath. If the optional -ris specified, recursively delete the entire directory.

getdir[-l] RemotePath

    List the contents of the directory specified by RemotePath. If -lis specified, list all metadata as well.

whoami

    Get the user's current identity.

whoareyou RemoteHost

    Get the identity of RemoteHost.

link[-s] OldRemotePathNewRemotePath

    Create a hard link from OldRemotePathto NewRemotePath. If the optional -sis specified, create a symbolic link instead.

readlink RemoteFileName

    Read the contents of the file defined by the symbolic link RemoteFileName.

stat RemotePath

    Get metadata for RemotePath. Examines the target, if it is a symbolic link.

lstat RemotePath

    Get metadata for RemotePath. Examines the file, if it is a symbolic link.

statfs RemotePath

    Get file system metadata for RemotePath.

access RemotePath Mode

    Check access permissions for RemotePath. Modeis one or more of the characters r, w, x, or f, representing read, write, execute, and existence, respectively.

chmod RemotePath UnixPerm

    Change the permissions of RemotePathto UnixPerm. UnixPermdescribes the file access permissions in a Unix format; 660 is an example Unix format.

chown RemotePath UID GID

    Change the ownership of RemotePathto UIDand GID. Changes the target of RemotePath, if it is a symbolic link.

chown RemotePath UID GID

    Change the ownership of RemotePathto UIDand GID. Changes the link, if RemotePathis a symbolic link.

truncate RemoteFileName Length

    Truncates RemoteFileNameto Lengthbytes.

utime RemotePath AccessTime ModifyTime

    Change the access to AccessTimeand modification time to ModifyTimeof RemotePath.

Examples

To copy a file from the submit machine 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 Requirementsexpression 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.

To append the word "foo" to a file called RemoteFileon 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_chirpwill exit with a status value of 0 (zero) upon success, and it will exit with the value 1 (one) upon failure.

Author
Center for High Throughput Computing, University of Wisconsin&ndash;Madison

Copyright
Copyright © 1990-2019 Center for High Throughput Computing, Computer Sciences Department, University of Wisconsin-Madison, Madison, WI. All Rights Reserved. Licensed under the Apache License, Version 2.0.