Subsections


condor_chirp

Access files or job ClassAd from an executing job

Synopsis

condor_chirp <Chirp-Command>


Description

condor_chirp is not a command-line tool. condor_chirp is invoked by a Condor 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 a Condor 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 local and remote are given from the point of view of the executing job.

If the input file name for put or write is a dash, condor_chirp uses standard input as the source. If the output file name for fetch is a dash, condor_chirp writes to standard output instead of a local file.

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

+WantIOProxy = true
in the submit description file of the job.

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

Chirp Commands

[fetch/SPAN>RemoteFileName LocalFileName] Copy the RemoteFileName from the submit machine to the execute machine, naming it LocalFileName.
[put [-mode
mode] [-perm
UnixPerm] LocalFileName RemoteFileName] Copy the LocalFileName from the execute machine to the submit machine, naming it RemoteFileName. The optional -perm/SPAN>UnixPerm argument describes the file access permissions in a Unix format; 660 is an example Unix format.

The optional -mode/SPAN>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/SPAN>RemoteFileName] Remove the RemoteFileName file from the submit machine.
[get_job_attr/SPAN>JobAttributeName] Prints the named job ClassAd attribute to standard output.
[set_job_attr/SPAN>JobAttributeName AttributeValue] Sets the named job ClassAd attribute with the given attribute value.
[ulog/SPAN>Message] Appends Message to the job's user log.
[read [-offset
offset] [-stride
length skip] RemoteFileName Length] Read 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] Write 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.
[rmdir [-r] RemotePath] Delete the directory specified by RemotePath. If the optional -r is specified, recursively delete the entire directory.
[getdir [-l] RemotePath] List the contents of the directory specified by RemotePath. If -l is specified, list all metadata as well.
[whoami] Get the user's current identity.
[whoareyou/SPAN>RemoteHost] Get the identity of RemoteHost.
[link [-s] OldRemotePath NewRemotePath] Create a hard link from OldRemotePath to NewRemotePath. If the optional -s is specified, create a symbolic link instead.
[readlink/SPAN>RemoteFileName] Read the contents of the file defined by the symbolic link RemoteFileName.
[stat/SPAN>RemotePath] Get metadata for RemotePath. Examines the target, if it is a symbolic link.
[lstat/SPAN>RemotePath] Get metadata for RemotePath. Examines the file, if it is a symbolic link.
[statfs/SPAN>RemotePath] Get file system metadata for RemotePath.
[access/SPAN>RemotePath Mode] Check 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/SPAN>RemotePath UnixPerm] Change the permissions of RemotePath to UnixPerm. UnixPerm describes the file access permissions in a Unix format; 660 is an example Unix format.
[chown/SPAN>RemotePath UID GID] Change the ownership of RemotePath to UID and GID. Changes the target of RemotePath, if it is a symbolic link.
[chown/SPAN>RemotePath UID GID] Change the ownership of RemotePath to UID and GID. Changes the link, if RemotePath is a symbolic link.
[truncate/SPAN>RemoteFileName Length] Truncates RemoteFileName to Length bytes.
[utime/SPAN>RemotePath AccessTime ModifyTime] Change the access to AccessTime and modification time to ModifyTime of 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 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.

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

  echo foo | condor_chirp put -mode wat - RemoteFile

To append the message "Hello World" to the user 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.

Author

Condor Team, University of Wisconsin-Madison

Copyright

Copyright ©990-2011 Condor Team, Computer Sciences Department, University of Wisconsin-Madison, Madison, WI. All Rights Reserved. Licensed under the Apache License, Version 2.0.

See the Condor Version 7.6.0 or http://www.condorproject.org/license for additional notices.

condor-admin@cs.wisc.edu