Patrick Boettcher


arcx - ARCv2 client command line interface


This file is a basic command line interface for the ARCv2.


The command line interface arcx:


Connect to the default host, on the default port and start the interactive ARC-shell (Term::ReadLine).

arcx -h arcserver -p 1234 vos release scripts

Connection arcserver:1234 and run the ARCv2 command "vos" with the parameters "release scripts"

cat /etc/passwd | arcx put /default/etc/passwd

Pipe the content of /etc/passwd through the encrypted connection and let the server write the content to /default/etc/passwd.

arcx get /default/etc/passwd > /etc/passwd

Read the /default/etc/passwd on the server machine and write it locally to /etc/passwd.


As usual a command line interface has some parameters to influence the behaviour.

The scheme looks like this:

arcx [-h <hostname>] [-p <port>] [-l <loglevel] [-L <logdestination] [-n] [-v] [-S <service>] [-F -f <history>] [-u|-U <username>] [-a|-A <authname>] [-w|-W <password>] [-s <mech>] [-t <timeout in sec>] [-r <string>] [command [command-arguments]]


-h <hostname>

The hostname, where the ARCv2 server is running. If no -h option is given, arcx will use the one chosen at compile time ($Arc::DefaultHost).

-p <port>

The port, where the ARCv2 server is listening. If no -p option is given, arcx will use the one given at compile time ($Arc::DefaultPort).

-L <logdestination>

This option defines the log output destination. Possible values are "stderr" and "syslog". Default is "syslog". -L does not refer to the -v option and arcx.

-l <loglevel>

This option specifies the logging level of ARCv2. Default is 5, whereas 7 is the highest (DEBUG) and 1 is the lowest.


The verbose option. If this option is set, arcx is verbose in its context. This option does not influence the ARCv2 object. Use -l and -L for it.


Do nothing, only try to authenticate.


Do not save the commands typed in the interactive mode in the history file.

-f <history>

Use the specified file to save command history.

-S <service>

This option sets the service name for SASL authentication. Default is "arc". This option has to be change on the server as well.


Ask for username and use it for authentication.

-U <username>

Use the <username> for authentication.


Ask for a authorization name.

-A <authname>

Use the <authname> for authorisation.


Ask for a password (Only if SASL needs one).

-W <password>

Use the <password> for authentication. (Only if an appropriate mechanism is used. (eg. PLAIN)).

-s <mechanism>

For authentication use the given <mechanism>. (Default: let the server decide.)

-t <timeout>

Timeout in seconds to wait for data in control and command connection.

-r <string>

<string> is going to be written to the established command connection, when command is used. (Do not wait for user input on STDIN).

eg.: arcx -r "data" test results in "at".


Run this ARCv2 command. Run "help" to see, which commands are available.


Some ARCv2 command can handle arguments. They should go here.


Arc, Arc::Command, Arc::Connection, Arc::Connection::Server, Arc::Connection::Client, arcx, arcxd, Authen::SASL, Authen::SASL::Cyrus Net::Server::PreFork


 Patrick Boettcher <>


Copyright (c) 2003-5 Patrick Boettcher <> and others. All rights reserved. Zeuthen, Germany, (old) Europe

 This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

 Special thanks go to:
DESY Zeuthen, in particular:

- Wolfgang Friebel for bleeding edge testing and heavy bug reporting (and the idea of reimplementing ARC).

- Waltraut Niepraschk and Andreas Haupt for their help and support during the development.