---
name: "rds-sink"
section: "1"
platform: "linux"
package: "rds-tools"
version: "1.4.1-OFED-1.4.2-1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/rds-gen"
---

# rds-sink(1)

write data from a file to an RDS socket rds-sink – write data from an RDS socket to a file

Part of [rds-gen(1)](/rds-gen/1.md).

## NAME

**rds-gen** – write data from a file to an RDS socket

**rds-sink** – write data from an RDS socket to a file

## SYNOPSIS

**rds-gen** \[**-s** *source\_address:source\_port*\] \[**-d** *destination\_address:destination\_port*\] \[**-f** *input\_file*\] \[**-m** *message\_size*\] \[**-l** *total\_bytes*\] \[**-i** *interval*\]

**rds-sink** \[**-s** *listen\_address:listen\_port*\] \[**-f** *output\_file*\] \[**-i** *interval*\]

## DESCRIPTION

The **rds-gen** and **rds-sink** utilities are used to stream data through RDS sockets.  rds-gen reads data from a file descriptor and sends it as messages down an RDS socket.  rds-sink receives messages from an RDS socket and writes it to a file descriptor.

The following options are shared between rds-gen and rds-sink:

- **-s** *address:port*

  Binds the RDS socket to the given address and port.  rds-gen will send messages from this address and port.  rds-sink will receive messages sent to this address and port.

- **-f** *file*

  rds-gen will read data from this file and rds-sink will write data to this file.  If '-' is given as the filename then rds-gen will use standard input and rds-sink will use standard output.

- **-i** *interval\_seconds*

  An iterative summary of the number and size of messages that are sent and received is written to standard error at this interval.

In addition, rds-gen supports the following options:

- **-d** *address:port*

  Messages are sent to this destination address and port.  If this option is specified multiple times then the messages are sent to each destination address in a round-robin fashion.

- **-m** *message\_size*

  Specifies the size of the messages that are sent down the RDS socket.  The default message size is 4k.  The message size must not be greater than the buffer size.

- **-l** *total\_bytes*

  Specifies the number of bytes that will be sent out the socket before rds-gen exits.  If this is not specified and rds-gen was given a source file then it will run until it gets EOF from the file.  If no file was given and this option is not specified then rds-gen will send data indefinitely.

## EXAMPLES

rds-gen on host src sends infinite data to rds-sink on dest who prints out the amount of data it receives every second.

```
$ rds-sink -s dest:22222 -i 1
```

```
$ rds-gen -s src:11111 -d dest:22222
```

Read 100M from /dev/zero on src and write it to /dev/null on dest, printing stats on both sides every minute.

```
$ rds-sink -s dest:22222 -f /dev/null -i 60
```

```
$ rds-gen -s src:11111 -f /dev/zero -d dest:22222 -i 60
```

Watch rds-gen write data as fast as it can into a local black hole because there is no bound receiving socket.

```
$ rds-gen -s src:11111 -d localhost:31337 -i 1
```
