Usecase of rclone rc, --rc, and rcd

I am new in rclone. I am working in a project to move files from several servers to a cloud storage.
Approach 1: I can do this by rclone copy command.

Approach 2: But the architect of the solution asked us to use rclone RC (remote control).
As I understood so far using rclone RC, I have to run rclone rcd command in each of the servers, then running rclone rc sync/copy. Am I right?

Would you please tell me what is the difference between these 2 approaches (rclone copy vs rclone rc sync/copy)? and why the architect persist to use rclone RC

Thanks for the help

The difference is that if you run rclone yourself then you make a new instance of rclone that is independent of any other rclone instance.

When you use RC (remote control) then you are sending a command to an already running rclone and just asking it to do the task for you in addition to any other tasks it may be doing.

Doing it all in one place rather than in many independent processes has many benefits in a multi-user environment - in security, integrity, efficiency and more. It's probably one or more of these spesific reasons your admin wants you do do this because it would create big headaches for him otherwise.

Also of course, RC can receive the commands from a remote location so you don't need to pull all the data to your machine (potentially though a slower pipeand unnecessarily congesting the network) and then send it out from there. Obviously it's ideal if the server can do that on it's own and not have your workstation as part of the process.

Thanks for the prompt reply. It make scene. However I have 2 more questions:
1-Using rclone RC means that I should keep 'rclone rcd' command running on all servers, so I can remotely send rclone command to each server. Am I right? if yes this means trying to get access to about 100 servers which are globally scattered. This is another problem

2- what is the difference between --rc flag and rcd command?
Thank you

Well no, rclone doesn't necessarily need to run on each server.

As long as one machine has access to the other data (via network shares or anything else you can configure as a remote), it can pull that data in and send it where you specify. As long as you don't regularly need to send large data between two off-site servers then having a single rclone remote that does all the rclone work for the entire local network would usually be the most sensible. You'd go a little mad trying to remote control a 100 different computers :slight_smile:

If it makes it any easier to think about, an rclone remote is no different from running rclone normally. The difference is that you can sit in your office or at home on a bad wifi connection and tell the server "hey transfer these 300GB of data to that other server" and your server will do that for you. If you ran rclone locally then all the data would go to your machine before it reached it's destination. But when there are many users this also means you can share any caching, have to worry much less about concurrency-problems and much else, so there are many add-on benefits. Imagine using the RC as the equivalent of every user running up to the server-room to use rclone directly from the server and that's the gist of it.

I can't read your admin's mind and know exactly why he thought it was critical you do it this way - but it's probably related to the nitty-gritty details of the configuration he set up that may not work optimally (or in the worst case even produce errors and corruption) if you don't use the RC for the commands. It could be set up either way, but for a large setup the RC is the obvious way to do it properly and efficiently, so I'm not at all surprised about that choice.

--rc and rcd both start up the rclone remote-control server that sits and listens for commands.
rcd does this, and only this
--rc is more like "and also do this in addition to the main command". It's a flag so you can't run it alone. It's just an option to another command. I use it on my mount command for example so that I both get the mount but also have a RC server for that mount that I can send commands though if needed.

1 Like