MUXSEND(1)                                                          MUXSEND(1)



NAME
       muxsend - send a stream to a TCPMUX-like service

SYNOPSIS
       muxsend [-Oux] [-f file] [-p port] host services
       muxsend -h
       muxsend -V

DESCRIPTION
       This  program  is  designed  to send a stream of bytes to a simple data
       collector.  The collector is run on  host  under  the  tcpmux  service,
       either under inetd or under tcpmux(8), and is known as service.

       As  muxsend  provides  no  in-band  credential  scheme, the service may
       choose to recognize our client with getpeername(2), an RFC  1413  ident
       request, or any other metric which is implemented wholly in-band by the
       service.  Any authorization action required by this  client  is  beyond
       the scope of this program.

       For each service presented another level of encapsulation is performed.
       This allows a mux service to run inside another.  The  default  service
       is the basename of our program name.

       Each  service  must  reply with a single line starting with a plus sign
       (+) to acknowledge that the service is ready  (as  per  RFC1078).   The
       "help" service is exempt from this requirement.

       As an extension redirections are allowed in the same way as muxcat(1l).
       See also tcpmux(8l).

OPTIONS
       -f file
              The name of the file to pass to the service.  When  no  file  is
              given muxsend defaults to stdin.

       -h
              Print a brief help message.

       -O
              Display  any  replies (after the initial service negotiation) to
              stdout.  This actually fork(2)'s  a  separate  process  to  read
              replies from the socket.

       -p port
              The TPC/IP port tcpmux (cum inetd) listens on for client connec-
              tions (per RFC 1078 this should be port 1,  our  default).   The
              port may be provided as a service name from /etc/services.

       -u
              Under  -O  set autoflush on stdout.  This allows a perl(1) open2
              co-process to synchronously push items in and out of many tcpmux
              services.

       -V
              Show only the programs version information and exit.

       -x
              Trace replies from the remote service on stderr.

EXAMPLES
       since /var/log/oprules | muxsend log.my.domain.org opcollect
              Send  the  list of op(1l) rules logged since the last collection
              to the local log host under the opcollect service.

       echo ksb | muxsend -O adm4 uid
              Query the "uid" service on "adm4" for a  match  on  "ksb".   The
              same thing may be accomplished with muxcat under -F, but this is
              less of a hack.

       muxsend -O svr6 inrr
              Connect to the "inrr" service on svr6 to ask  about  DNS  round-
              robin      records.       Try      "sso30.sac.fedex.com"      or
              "www100.sac.fedex.com" as input.  Send an end-of-file to discon-
              nect.

       date | muxsend $NOTIFY ack-boot
              Send  the  present  time to the notify host on the ack-boot ser-
              vice.  This could be used to record a boot-event record for each
              node  that  boots (or reboots) in a cluster.  The receiver could
              be as simple as a script that ran "cat >>/var/log/boot.txt", but
              might call getpeername(2) to record which host sent the message.

       muxsend -f /dev/null -O localhost help
              The same output as "muxcat localhost help", but far less  clear.

       echo ksb | muxsend -Ox  acct uid
              Ask  the  accounting  host  for  ksb's uid, and show the initial
              negotiations on stderr.

BUGS
       None known.

AUTHORS
       Pete Fritchman, Kevin S Braunsdorf
       Databits.net, NpcGuild.org
       petef at databits.net, tcpmux at ksb notAComma npcguild.org

SEE ALSO
       sh(1), inetd(8), getpeername(2),  muxcat(1l),  recvmux(7l),  since(1l),
       tcpmux(8) or tcpmux(8l)



                                     LOCAL                          MUXSEND(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXAMPLES | BUGS | AUTHORS | SEE ALSO