c8y(1)
πΈ NAME πΈ
Okay so this is the c8y(1) manual page for c8y-remoteaccess-connect-run, and it is literally βConnect to a device and run a custom command.β bestie, we are connecting and running, periodt. π
β¨ SYNOPSIS β¨
c8y remoteaccess connect run [flags]
π DESCRIPTION π
Okay so the whole plot: connect to a device using the local proxy, then run a given command which makes use of the proxy. π₯
You can run any command you want by providing all arguments after the --, for example:
c8y remoteaccess connect run --device mydevice -- ./run-something.sh %h %p
The local proxy server port and target can be accessed either by using variable references:
- Target β use
%hor the environment variable$TARGET - Port β use
%por the environment variable$PORT
It is recommended to use the "%h" (target) "%p" (port) to refer to the local proxy server as this avoid potential problems with variable expansions and removes the need to have to escape variable etc. (e.g. \$HOST). Below shows an example using a custom ssh command:
c8y remoteaccess connect run --device mydevice -- ssh -p %p root@%h
Or you can use a shell to do something more complex and use environment variable references β note the single quotes around the shell command to prevent the variable expansion in your current shell:
c8y remoteaccess connect run --device mydevice -- sh -c 'ssh -p $PORT root@$TARGET'
π OPTIONS π
--configuration=""β Remote Access Configuration--device=[]β Device-h,--help[=false]β help for run--listen="127.0.0.1:0"β Listener address.unix:///run/example.sock--multiplex[=false]β Carry all local connections over a single remote access session (yamux), which avoids the setup cost of a new session per connection. Requires a device supporting it (e.g. thin-edge.io), otherwise one session per connection is used. Enabled by default for configurations named with the mux option, e.g."http+mux:example"
π¦ OPTIONS INHERITED FROM PARENT COMMANDS π¦
Vibe check: these come from the parent commands, but theyβre still absolutely yours to use. β¨
--abortOnErrors=10β Abort batch when reaching specified number of errors--allowEmptyPipe[=false]β Don't fail when piped input is empty (stdin)--cache[=false]β Enable cached responses--cacheBodyPaths=[]β Cache should limit hashing of selected paths in the json body. Empty indicates all values--cacheTTL="60s"β Cache time-to-live (TTL) as a duration, i.e. 60s, 2m-c,--compact[=false]β Compact instead of pretty-printed output when using json output. Pretty print is the default if output is the terminal--confirm[=false]β Prompt for confirmation--confirmText=""β Custom confirmation text--currentPage=0β Current page which should be returned--customQueryParam=[]β add custom URL query parameters. i.e.--customQueryParam 'withCustomOption=true,myOtherOption=myvalue'--debug[=false]β Set very verbose log messages--delay="0ms"β delay after each request, i.e. 5ms, 1.2s--delayBefore="0ms"β delay before each request, i.e. 5ms, 1.2s--dry[=false]β Dry run. Don't send any data to the server--dryFormat="markdown"β Dry run output format. i.e. json, dump, markdown or curl--examples[=false]β Show examples for the current command--filter=[]β Apply a client side filter to response before returning it to the user--flatten[=false]β flatten json output by replacing nested json properties with properties where their names are represented by dot notation-f,--force[=false]β Do not prompt for confirmation. Ignored when using--confirm-H,--header=[]β custom headers. i.e.--header "Accept: value, AnotherHeader: myvalue"--includeAll[=false]β Include all results by iterating through each page-k,--insecure[=false]β Allow insecure server connections when using SSL-l,--logMessage=""β Add custom message to the activity log--maxJobs=0β Maximum number of jobs. 0 = unlimited (use with caution!)--noAccept[=false]β Ignore Accept header will remove the Accept header from requests, however PUT and POST requests will only see the effect--noCache[=false]β Force disabling of cached responses (overwrites cache setting)-M,--noColor[=false]β Don't use colors when displaying log entries on the console--noLog[=false]β Disables the activity log for the current command--noProgress[=false]β Disable progress bars--noProxy[=false]β Ignore the proxy settings-n,--nullInput[=false]β Don't read the input (stdin). Useful if using in shell for/while loops-o,--output="table"β Output format i.e. table, json, csv, csvheader--outputFile=""β Save JSON output to file (after select/view)--outputFileRaw=""β Save raw response to file (before select/view)--outputTemplate=""β jsonnet template to apply to the output-p,--pageSize=5β Maximum results per page--progress[=false]β Show progress bar. This will also disable any other verbose output--proxy=""β Proxy setting, i.e.http://10.0.0.1:8080-r,--raw[=false]β Show raw response. This mode will forceoutput=jsonandview=off--retries=3β Max number of attempts when a failed http call is encountered--select=[]β Comma separated list of properties to return. wildcards and globstar accepted, i.e.--select 'id,name,type,**.serialNumber'--session=""β Session configuration--sessionMode=""β Override default session mode for a single command which would normally be disabled-P,--sessionPassword=""β Override session password-U,--sessionUsername=""β Override session username. i.e. peter or t1234/peter (with tenant)--silentExit[=false]β Silent status codes do not affect the exit code--silentStatusCodes=""β Status codes which will not print out an error message--timeout="600s"β Request timeout duration, i.e. 60s, 2m--totalPages=0β Total number of pages to get-v,--verbose[=false]β Verbose logging--view="auto"β Use views when displaying data on the terminal. Disable using--view off--withError[=false]β Errors will be printed on stdout instead of stderr--withTotalElements[=false]β Request Cumulocity to include the total elements in the response statistics under.statistics.totalElements(introduced in 10.13)-t,--withTotalPages[=false]β Request Cumulocity to include the total pages in the response statistics under.statistics.totalPages--workers=1β Number of workers
π EXAMPLE π
Example one, iconic:
$ c8y remoteaccess connect run --device 12345 -- ssh -p %p root@%h
This starts an interactive SSH session on the device with a given ssh user. π«Ά
Example two, the port-forwarding main character moment:
$ c8y remoteaccess connect run --device rpi5-abcdef01 --configuration passthrough -- ssh -p %p -L 1885:127.0.0.1:1883 -o ServerAliveInterval=120 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@127.0.0.1
This starts an SSH session to setup port-forwarding to map the remote's 127.0.0.1:1883 port to your machine's 1885 port. π₯
Example three, web server vibes:
$ c8y remoteaccess connect run --device 12345 --configuration "http:*" --multiplex -- curl -s http://%h:%p/
This runs a command against a web server on the device, carrying all its connections over a single remote access session (if supported by the device). π
π SEE ALSO π
And thatβs the whole c8y(1) manual page, bestie β footer says Jan 1980, so go forth and make that local proxy proud. πβ¨
π¦ where this page comes from
- nixpkgs unstable: go-c8y-cli 2.56.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms