> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.zata.prathamchopde.site/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.zata.prathamchopde.site/_mcp/server.

# rclone on Linux

rclone is a free command-line tool that copies and syncs files between your computer and cloud storage. On Linux you can also use it to run scheduled backups to Zata and to mount a bucket as a folder.

> **Info**
>
> Tested with rclone v1.75.2 on Zata in October 2026.

## Before you start

* A bucket. See [Create a bucket](/buckets/create-a-bucket).
* An access key and secret key from the same region as the bucket. See [Access keys](/access/access-keys).

## Connection settings

| Setting                               | Value                                                                                         |
| ------------------------------------- | --------------------------------------------------------------------------------------------- |
| `provider`                            | `Other`                                                                                       |
| `endpoint`                            | `https://idr01.zata.ai` for Indore, `https://bom01.zata.ai` for Mumbai                        |
| `region`                              | `us-east-1`                                                                                   |
| `access_key_id` / `secret_access_key` | from **Access Keys** in the Zata console. The key must be from the same region as the bucket. |
| `force_path_style`                    | `true`                                                                                        |
| `no_check_bucket`                     | `true` (needed for sub-user keys)                                                             |
| `sign_accept_encoding`                | `false` (needed on rclone v1.66 and newer)                                                    |

> **Warning**
>
> Without `sign_accept_encoding = false`, every command fails with `SignatureDoesNotMatch`. rclone v1.71 and newer also offer `Zata` as a provider, but it still needs `no_check_bucket = true` and `sign_accept_encoding = false`.

## Install rclone

```bash
curl https://rclone.org/install.sh | sudo bash
rclone version
```

Other ways to install are on the [rclone install page](https://rclone.org/install/).

> **Note**
>
> `sudo apt install rclone` on Ubuntu gives an old version (v1.53). It works with Zata too, but it has no `sign_accept_encoding` setting: leave that setting out.

## Create the Zata remote

A remote is rclone's name for a saved connection. Create one called `zata`, either with one command or with the wizard.

#### One command

Replace the keys with yours. For Mumbai, use `https://bom01.zata.ai`.

```bash
rclone config create zata s3 provider=Other access_key_id=YOUR_ACCESS_KEY secret_access_key=YOUR_SECRET_KEY region=us-east-1 endpoint=https://idr01.zata.ai force_path_style=true no_check_bucket=true sign_accept_encoding=false
```

On the old v1.53, write the settings with spaces instead of `=`, and leave out `sign_accept_encoding`:

```bash
rclone config create zata s3 provider Other access_key_id YOUR_ACCESS_KEY secret_access_key YOUR_SECRET_KEY region us-east-1 endpoint https://idr01.zata.ai no_check_bucket true
```

#### Wizard

Run `rclone config` and answer each question:

| When rclone asks               | Type                                                      |
| ------------------------------ | --------------------------------------------------------- |
| `n/s/q>`                       | `n`                                                       |
| `name>`                        | `zata`                                                    |
| `Storage>`                     | `s3` (Amazon S3 Compliant Storage Providers)              |
| `provider>`                    | `Other`                                                   |
| `env_auth>`                    | press Enter                                               |
| `access_key_id>`               | your access key                                           |
| `secret_access_key>`           | your secret key                                           |
| `region>`                      | `us-east-1`                                               |
| `endpoint>`                    | `https://idr01.zata.ai` (Mumbai: `https://bom01.zata.ai`) |
| `location_constraint>`, `acl>` | press Enter                                               |
| `Edit advanced config?`        | `y`                                                       |
| `no_check_bucket>`             | `true`                                                    |
| `sign_accept_encoding>`        | `false`                                                   |
| every other advanced question  | press Enter                                               |
| `Keep this "zata" remote?`     | `y`                                                       |
| `e/n/d/r/c/s/q>`               | `q` to leave the wizard                                   |

At each question, type only the value (for example `true`), not `setting=value`.

![Terminal running rclone config, choosing n for a new remote and entering the name zata](/_fern-img/6045d3bbedd8ae468d44b618c20e582411ff2aa8af0fe915ce84ea25fa1b53f9.webp)

The numbers in the lists change between rclone versions, so type the value (`s3`, `Other`) instead of a number.

![rclone storage type list with Amazon S3 Compliant Storage Providers highlighted](/_fern-img/6981b4f316edf16612356c1230397d1ddb64bc8f76b442693ac3eba8b6bd4831.webp)![rclone provider list showing Any other S3 compatible provider, Other](/_fern-img/b0ad218ef62b57a18afc9f38e32e0cbfc2daeef4979503db8125c261f087c583.webp)

Check the saved settings:

```bash
rclone config show zata
```

The remote looks like this in `rclone.conf` (`rclone config file` shows where the file is):

```ini
[zata]
type = s3
provider = Other
access_key_id = YOUR_ACCESS_KEY
secret_access_key = YOUR_SECRET_KEY
region = us-east-1
endpoint = https://idr01.zata.ai
force_path_style = true
no_check_bucket = true
sign_accept_encoding = false
```

To fix an existing remote without the wizard:

```bash
rclone config update zata no_check_bucket=true sign_accept_encoding=false
```

## Test it

Replace `my-bucket` with your bucket name:

```bash
rclone ls zata:my-bucket
rclone copy ./myfile.txt zata:my-bucket/ --progress
```

![Terminal output of rclone copy uploading one file to a Zata bucket with transfer progress](/_fern-img/839789b30c8e0afe333b463723483560f349b3e5007610d832dd6bdae25e9e26.webp)

`rclone lsd zata:` lists your buckets. A sub-user's key may show none; use the bucket name directly.

## Copy, sync or move

All three skip files that are already the same in the bucket (same size and modification time).

| Command                                      | What it does in the bucket                                                                                    |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `rclone copy ./folder zata:my-bucket/folder` | Adds new and changed files. **Never deletes**: files that exist only in the bucket are kept.                  |
| `rclone sync ./folder zata:my-bucket/folder` | Makes the bucket folder an exact copy. Also **deletes** files in the bucket that are not in the local folder. |
| `rclone move ./folder zata:my-bucket/folder` | Uploads, then **deletes the local files** that were uploaded.                                                 |

Before a `sync`, add `--dry-run` to see what it would delete.

To download, swap the two sides:

```bash
rclone copy zata:my-bucket /path/to/local/folder --progress
```

![Terminal running rclone copy from a Zata bucket to a local folder, then listing the downloaded files](/_fern-img/bf64985463d8dfb2c9481703675427b8d71940315127a834216b1629a4735838.webp)

## Very large files

rclone uploads large files in parts by itself, and makes the parts bigger when needed. To copy one file under an exact name, use `copyto` (`copy` treats the target as a folder). These options make it faster and more patient on a slow or unstable link:

```bash
rclone copyto /path/to/bigfile.iso zata:my-bucket/bigfile.iso --s3-chunk-size 64M --s3-upload-concurrency 8 --retries 5 --low-level-retries 20 -P
```

| Option                                   | What it does (default)                                                                                |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `--s3-chunk-size 64M`                    | Size of each part (5Mi). Bigger parts mean fewer requests but more memory (chunk size × concurrency). |
| `--s3-upload-concurrency 8`              | Parts of one file uploaded at the same time (4)                                                       |
| `--transfers 8`                          | Files uploaded at the same time (4)                                                                   |
| `--retries 5` / `--low-level-retries 20` | Retries of the whole copy (3) and of single requests (10)                                             |
| `--timeout 10m`                          | How long a stalled connection waits before retrying (5m)                                              |
| `-P`                                     | Shows progress                                                                                        |

If an upload stops half way, run the same command again: files already in the bucket are skipped.

## Check that a backup is complete

```bash
rclone check ./folder zata:my-bucket/folder --one-way
```

It ends with `0 differences found` when every local file is in the bucket with the same content. Each missing or changed file is listed as an error. `--one-way` ignores files that exist only in the bucket. Files that other tools uploaded in parts have no MD5 to compare: add `--download` to compare their content (slower, because it downloads them).

## Schedule a backup

#### cron

Run `crontab -e` and add one line. This one runs at 02:00 every night. Use the full path to rclone and give its config file, because cron runs with almost no environment. Replace `YOUR_LINUX_USER` with your Linux user name.

```bash
0 2 * * * /usr/bin/rclone copy /home/YOUR_LINUX_USER/data zata:my-bucket/backup --config /home/YOUR_LINUX_USER/.config/rclone/rclone.conf --log-file /home/YOUR_LINUX_USER/zata-backup.log --log-level INFO
```

Keep it on one line: crontab does not accept lines split with `\`.

#### systemd timer

A service on its own runs only once. The timer runs it on a schedule.

```bash
sudo nano /etc/systemd/system/zata-backup.service
```

```ini
[Unit]
Description=Back up a folder to Zata with rclone
Wants=network-online.target
After=network-online.target

[Service]
Type=oneshot
User=YOUR_LINUX_USER
ExecStart=/usr/bin/rclone copy /home/YOUR_LINUX_USER/data zata:my-bucket/backup --log-file /home/YOUR_LINUX_USER/zata-backup.log --log-level INFO
```

```bash
sudo nano /etc/systemd/system/zata-backup.timer
```

```ini
[Unit]
Description=Run the Zata backup every night at 02:00

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target
```

Turn it on and check it:

```bash
sudo systemctl daemon-reload
sudo systemctl enable --now zata-backup.timer
systemctl list-timers zata-backup.timer
```

If `which rclone` is not `/usr/bin/rclone`, use that path instead.

## Mount a bucket as a folder

Install FUSE first:

```bash
sudo apt install -y fuse3
```

Then mount the bucket:

```bash
mkdir -p ~/zata
rclone mount zata:my-bucket ~/zata --vfs-cache-mode writes
```

The mount runs in the foreground: press Ctrl+C to unmount (or run `fusermount -u ~/zata`). Add `--daemon` to run it in the background. Files are uploaded a few seconds after they are closed.

To mount the bucket again after every reboot, create a service. Replace `YOUR_LINUX_USER` and `my-bucket`:

```bash
sudo nano /etc/systemd/system/rclone-zata.service
```

```ini
[Unit]
Description=Mount Zata bucket with rclone
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
User=YOUR_LINUX_USER
ExecStart=/usr/bin/rclone mount zata:my-bucket /home/YOUR_LINUX_USER/zata --vfs-cache-mode writes
ExecStop=/bin/fusermount -u /home/YOUR_LINUX_USER/zata
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

```bash
sudo systemctl daemon-reload
sudo systemctl enable --now rclone-zata.service
systemctl status rclone-zata.service
ls ~/zata
```

The service runs as your user, so it uses your own rclone config.

## Two regions, or Zata and another provider

Make one remote per endpoint. Each Zata access key works in one region only, so a Mumbai remote needs a key created for Mumbai:

```bash
rclone config create zata-mumbai s3 provider=Other access_key_id=YOUR_MUMBAI_ACCESS_KEY secret_access_key=YOUR_MUMBAI_SECRET_KEY region=us-east-1 endpoint=https://bom01.zata.ai force_path_style=true no_check_bucket=true sign_accept_encoding=false
```

Another provider gets its own remote with that provider's settings (run `rclone config`). Then copy between any two remotes:

```bash
rclone copy zata:my-bucket/folder zata-mumbai:other-bucket/folder -P
```

To move millions of objects, run `copy` (safe to repeat) while the old storage is still in use, then one last `sync` (preview it with `--dry-run`) when you switch over. `--fast-list` lists a whole bucket with far fewer requests but uses more memory, and `--transfers 16 --checkers 32` works on more files at once:

```bash
rclone copy oldremote:bucket zata:my-bucket --fast-list --transfers 16 --checkers 32 -P
```

## Download links

`rclone link` does not work with Zata (it fails with `not found: FixupRequest`). Make a temporary download link with the [AWS CLI](/connect/command-line/aws-cli) instead, or share the file from the console ([Share a file](/buckets/share-a-file)):

```bash
aws s3 presign s3://my-bucket/file.zip --expires-in 3600 --profile zata
```

## Troubleshooting

| Problem                                                                            | Fix                                                                                            |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `SignatureDoesNotMatch` or `403 Forbidden` on every command                        | Set `sign_accept_encoding = false` (rclone v1.66 and newer).                                   |
| `AccessDenied` when uploading or copying (rclone tries to create the bucket first) | Set `no_check_bucket = true`.                                                                  |
| `rclone lsd zata:` shows no buckets                                                | A sub-user's key cannot list buckets. Use the bucket name: `rclone ls zata:my-bucket`.         |
| `fusermount: not found`, or the mount fails                                        | Install FUSE: `sudo apt install -y fuse3`.                                                     |
| The mount service fails at boot                                                    | `journalctl -u rclone-zata.service` shows why. Usually a wrong user name, path or remote name. |
| Works in the terminal, fails in cron                                               | Use full paths and `--config` as shown in [Schedule a backup](#schedule-a-backup).             |

To see what rclone sends, add `-vv`. For other errors, see [Signature errors](/help/troubleshooting/signature-errors) and [Access denied](/help/troubleshooting/access-denied).