---
title: Use the influxctl CLI to write line protocol data
description: Use the influxctl CLI to write line protocol data to InfluxDB Clustered.
url: https://docs.influxdata.com/influxdb3/clustered/write-data/line-protocol/influxctl-cli/
estimated_tokens: 3598
product: InfluxDB Clustered
version: clustered
---

# Use the influxctl CLI to write line protocol data

Use the [`influxctl` CLI](/influxdb3/clustered/reference/cli/influxctl/) to write line protocol data to InfluxDB Clustered.

-   [Construct line protocol](#construct-line-protocol)
-   [Write the line protocol to InfluxDB](#write-the-line-protocol-to-influxdb)

## Construct line protocol

With a [basic understanding of line protocol](/influxdb3/clustered/write-data/line-protocol/), you can construct data in line protocol format and write it to InfluxDB. Consider a use case where you collect data from sensors in your home. Each sensor collects temperature, humidity, and carbon monoxide readings. To collect this data, use the following schema:

-   **measurement**: `home`
    -   **tags**
        -   `room`: Living Room or Kitchen
    -   **fields**
        -   `temp`: temperature in °C (float)
        -   `hum`: percent humidity (float)
        -   `co`: carbon monoxide in parts per million (integer)
    -   **timestamp**: Unix timestamp in *second* precision

The following line protocol represents the schema described above:

```text
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
```

For this tutorial, you can either pass this line protocol directly to the `influxctl write` command as a string, via `stdin`, or you can save it to and read it from a file.

## Write the line protocol to InfluxDB

Use the [`influxctl write` command](/influxdb3/clustered/reference/cli/influxctl/write/) to write the [home sensor sample data](#home-sensor-data-line-protocol) to your InfluxDB cluster. Provide the following:

-   The [database](/influxdb3/clustered/admin/databases/) name using the `--database` flag
    
-   A [database token](/influxdb3/clustered/admin/tokens/#database-tokens) (with write permissions on the target database) using the `--token` flag
    
-   The timestamp precision as seconds (`s`) using the `--precision` flag
    
-   [Line protocol](#construct-line-protocol). Pass the line protocol in one of the following ways:
    
    -   a string on the command line
    -   a path to a file that contains the query
    -   a single dash (`-`) to read the query from stdin

<!-- Tabbed content: Select one of the following options -->

**string:**

```sh
influxctl write \
  --database DATABASE_NAME \
  --token DATABASE_TOKEN \
  --precision s \
  'home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000'
```

Replace the following:

-   `DATABASE_NAME`: Name of the database to write to.
-   `DATABASE_TOKEN`: Database token with write permissions on the target database.

**file:**

1. In your terminal, enter the following command to create the sample data file:
    
    ```sh
    cat <<EOF > ./home.lp && LINE_PROTOCOL_FILEPATH=./home.lp
    home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
    home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
    home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
    home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
    home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
    home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
    home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
    home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
    home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
    home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
    home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
    home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
    
    EOF
    ```
    

1. Enter the following CLI command to write the data from the sample file:
    
    ```sh
    influxctl write \
      --database DATABASE_NAME \
      --token DATABASE_TOKEN \
      --precision s \
      $LINE_PROTOCOL_FILEPATH
    ```
    

Replace the following:

-   `DATABASE_NAME`: Name of the database to write to.
-   `DATABASE_TOKEN`: Database token with write permissions on the target database.
-   `$LINE_PROTOCOL_FILEPATH`: File path to the file containing the line protocol. Can be an absolute file path or relative to the current working directory.

**stdin:**

```sh
cat $LINE_PROTOCOL_FILEPATH | influxctl write \
  --database DATABASE_NAME \
  --token DATABASE_TOKEN \
  --precision s \
  -
```

Replace the following:

-   `DATABASE_NAME`: Name of the database to write to.
-   `DATABASE_TOKEN`: Database token with write permissions on the target database.
-   `$LINE_PROTOCOL_FILEPATH`: File path to the file containing the line protocol. Can be an absolute file path or relative to the current working directory.

<!-- End tabbed content -->

#### Related

-   [influxctl write](/influxdb3/clustered/reference/cli/influxctl/write/)
-   [Line protocol reference](/influxdb3/clustered/reference/syntax/line-protocol/)
-   [Get started writing data](/influxdb3/clustered/get-started/write/)
