aclient(1)

πŸ“¦ version 4.07, in fedora 43, fedora 44

πŸ’– aclient β€” General Commands Manual πŸ’–

✨ NAME ✨

acl (done) β€” A standard Client, (Rev. 05-March-2010) πŸ¦‹


πŸŽ€ SYNTAX πŸŽ€

aclient [-%] [-b blocksize] [-bsk socket_size] [-p prompt] host service
[-U name] [-Ppassword] [command...]

🌸 DESCRIPTION 🌸

okay so aclient is a client app for the sk(3) functions πŸ’… It sends your commands over to aserver(1), which is running the service you picked on the host you picked, and then it brings the result back to you ✨ literally that's the whole job, and it does it so well.


πŸ‘‘ OPTIONS πŸ‘‘

  • -% β€” asks for the shell-specific characters < > & ? * [ ] ( ) ; to get encoded πŸ™ˆ (check out the Escaping conventions below for the deets)
  • -b blocksize β€” sets how big the logical blocks are when they get read from standard input and shipped off to the server πŸ“¦ The default is 4k.
  • -bsk socket_size β€” sets the physical size of the socket blocks used when data is transmitted πŸ”Œ The default can be set with the SK_bsk environment variable. If SK_bsk isn't defined, the default follows the socket standards, which is generally 4K πŸ’œ
  • -p prompt β€” picks the prompt that shows up in interactive mode πŸ’¬ The default is host/service.
  • host β€” the name of the host where your service lives 🏠
  • service β€” the service, either as a name from the /etc/services(5) file or as a number in the 1024-2047 range 🧚 It has to be the same service that aserver is using, no mixing it up bestie πŸ™…
  • -Uname β€” a name the Server will recognize πŸͺͺ (see sk(3), authorisation file)
  • -Ppassword β€” the password that goes with your -U name πŸ”‘ (see sk(3), authorisation file)
  • command β€” what service should run on host ⭐ You can use a semi-colon (;) as its own argument to split up multiple commands. If you don't give any commands, aclient just waits for you to type them in through standard input ⌨️

πŸ¦‹ SENDING OR CAPTURING THE DATA πŸ¦‹

Data usually moves through standard input and output πŸ’– So a first move is to put the data-transfer command in as options, like this:

aclient host service_file Write /tmp/copy < myinput

There are redirection options, but unlike sh(1), these redirections have to come before the command πŸ™ƒ The example above could also be run like this:

aclient host service_file
host/service_file> <myinput Write /tmp/copy
host/service_file> ...

Also, file names can be swapped out for pipes if the name starts with the | character ✨ If there are blanks in it, the command has to be quoted, so be extra careful 🫢 For instance, if you want to write the list of files to a foreign file:

aclient host service_file
host/service_file><"|ls -l" Write /tmp/copy
host/service_file> ...

πŸ’… ESCAPING CONVENTIONS πŸ’…

Since aclient connects to aserver, where a shell gets run, there's a special convention (kinda like http queries) for escaping special characters and defining arguments with special characters for the server program 🌈 It uses %{...} to define parameters that have special characters in them, like blanks, asterisks, and so on.


🧚 ENVIRONMENT VARIABLES 🧚

SK_bsk is what aclient uses as the default -bsk option πŸ“


πŸ”₯ EXAMPLES πŸ”₯

1. Query a catalog on cocat1

aclient cocat1 1660 gsc1.2 -c 123.12-78.12 -r 1.5 -sr

2. Copy a file to cocat1

aclient cocat1 1660 save < /etc/passwd
returns the name of the remote file

3. List remote files that have a name containing an asterisk

aclient cocat1 1660 ls *%{*}*

4. Find the star ** STT 82AA' in the last version of edited simbad

aclient -% newviz 1660 sim.arg 0 "** STT 82AA'"

which gives the same result as

aclient newviz 1660 sim.arg 0 "%** STT 82AA'"

5. Rewind the tape /dev/nrst0 and get its status on the foreign host using the rtape(4) service

aclient foreign rtape setenv TAPE /dev/nrst0 \; mt stat \; mt rew \;
mt stat

🌈 SEE ALSO 🌈

aserver(1) pipe(2) sk(3) services(5) 🫢


That's the whole tea, bestie πŸ’– Go forth and aclient(1) like the main character you are πŸ’…πŸ¦‹

πŸ“¦ where this page comes from