Skip to navigation

rclone on Linux

Copy, sync, back up and mount Zata buckets from a Linux server with rclone.

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.

Tested with rclone v1.75.2 on Zata in October 2026.

Before you start

Connection settings

SettingValue
providerOther
endpointhttps://idr01.zata.ai for Indore, https://bom01.zata.ai for Mumbai
regionus-east-1
access_key_id / secret_access_keyfrom Access Keys in the Zata console. The key must be from the same region as the bucket.
force_path_styletrue
no_check_buckettrue (needed for sub-user keys)
sign_accept_encodingfalse (needed on rclone v1.66 and newer)

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

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

Other ways to install are on the rclone install page.

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.

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

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:

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

Check the saved settings:

rclone config show zata

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

[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:

rclone config update zata no_check_bucket=true sign_accept_encoding=false

Test it

Replace my-bucket with your bucket name:

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
A file copied to a bucket with --progress.

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).

CommandWhat it does in the bucket
rclone copy ./folder zata:my-bucket/folderAdds new and changed files. Never deletes: files that exist only in the bucket are kept.
rclone sync ./folder zata:my-bucket/folderMakes 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/folderUploads, 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:

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
Downloading a bucket to a local folder.

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:

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
OptionWhat it does (default)
--s3-chunk-size 64MSize of each part (5Mi). Bigger parts mean fewer requests but more memory (chunk size × concurrency).
--s3-upload-concurrency 8Parts of one file uploaded at the same time (4)
--transfers 8Files uploaded at the same time (4)
--retries 5 / --low-level-retries 20Retries of the whole copy (3) and of single requests (10)
--timeout 10mHow long a stalled connection waits before retrying (5m)
-PShows 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

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

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.

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 \.

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

Mount a bucket as a folder

Install FUSE first:

sudo apt install -y fuse3

Then mount the bucket:

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:

sudo nano /etc/systemd/system/rclone-zata.service
[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
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:

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:

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:

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

rclone link does not work with Zata (it fails with not found: FixupRequest). Make a temporary download link with the AWS CLI instead, or share the file from the console (Share a file):

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

Troubleshooting

ProblemFix
SignatureDoesNotMatch or 403 Forbidden on every commandSet 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 bucketsA sub-user’s key cannot list buckets. Use the bucket name: rclone ls zata:my-bucket.
fusermount: not found, or the mount failsInstall FUSE: sudo apt install -y fuse3.
The mount service fails at bootjournalctl -u rclone-zata.service shows why. Usually a wrong user name, path or remote name.
Works in the terminal, fails in cronUse full paths and --config as shown in Schedule a backup.

To see what rclone sends, add -vv. For other errors, see Signature errors and Access denied.