• hedge@beehaw.orgOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    Rclone seems like a good bet; however I’m a bit confused as to how to get started. Would one of you kind souls be good enough to guide me through some of the process? I’ve installed the latest .deb, and if I want to (eventually) sync my home folder to Proton Drive, then rclone needs to run at startup in the background, yes? What is the command for this? It’s not just rclone, it has to be rclone rc or rcd . . . ? Or pehaps I need to set up Proton Drive to receive my files first?

      • hedge@beehaw.orgOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        2 months ago

        Yeah, I know, “RTFM.” I did, but am still kind of confused. A “remote” presumably means a remote folder/share/whatever in the cloud, in this case on Proton Drive, yes? If I want to set Rclone to automaticlly sync, say, my home folder to Proton Drive, Rclone has to run as a service on startup for this to work. They say

        Start as a service: To always run rclone in background, relevant for mount commands etc, you can use systemd to set up rclone as a system or user service. Running as a system service ensures that it is run at startup even if the user it is running as has no active session. Running rclone as a user service ensures that it only starts after the configured user has logged into the system.

        But I don’t know how to do that . . . I’ve found a few, I guess, “scripts” for this online but each one is a bit different. Unfortunately, just because I’m a Linux person doesn’t mean that I know what I’m doing . . .

        EDIT: After some further research, I found a couple scripts, but since each one is a bit different, I’m not sure which one to choose or how to write one that best suits my needs . . . would be kind of nice if Rclone would include this somewhere in their documentation; so far I haven’t found anything.

        EDIT EDIT: I would say that this is fairly complicated for the average user, but my research continues . . .

        EDIT EDIT EDIT: Can anyone attest to this, this, or this?

        • stewie410@programming.dev
          link
          fedilink
          arrow-up
          2
          ·
          2 months ago

          Yeah, I know, “RTFM.”

          Sorry, I didn’t mean to come across in a condescending way, if that’s how it read. I’ve only ever used rclone for Google Drive, and its been quite a while since I’ve personally set it up, as I no longer daily-drive linux (outside of WSL).

          A “remote” presumably means a remote folder/share/whatever in the cloud, in this case on Proton Drive, yes?

          Yes, following the documentation, you would run rclone config, then answer as follows:

          • Create/Edit/Quit: n
          • Name: proton
          • Storage: protondrive
          • User: username@protonmail.com
          • Password: y to enter your password; then enter your password twice as prompted
          • 2FA: If you have 2FA configured, enter the 6-digit OTP; else press <Enter> to skip
          • Keep this “proton” remote?: y

          This should create a proton-drive remote called “proton”, which you can reference in further rclone commands. For example:

          # Check if out of sync
          rclone check 'proton:' ~/proton 2>&1 | grep --quiet ' ERROR :'
          
          # Sync local/remote
          rclone sync 'proton:' ~/proton
          

          If I want to set Rclone to automaticlly sync, say, my home folder to Proton Drive, Rclone has to run as a service on startup for this to work.

          In the past, I wrote a script to handle the check/sync job, and scheduled it to run with crontab, as it was easier for me to work with. Here’s an example of the script to run rclone using the proton: remote defined above:

          #!/usr/bin/env bash
          
          # Ensure connected to the internet
          ping -c 1 8.8.8.8 |& grep --quiet --ignore-case "unreachable" && exit 0
          
          # If in-sync, skip sync procedure
          rclone check 'proton:' "${HOME}" |& grep --quiet ' ERROR :' || exit 0
          
          # Run sync operation
          rclone --quiet sync 'proton:' "${HOME}"
          

          If scheduling with crontab, running crontab -e will open your user’s schedule in the $VISUAL, $EDITOR or /usr/bin/editor text editor. Here, you could enter something like

          0,30 * * * * /home/your_user_name/proton_sync.sh
          

          Which would try to sync once every 30 minutes (crontab-guru).

          you can use systemd to set up rclone as a system or user service

          This is also an option, assuming your system is using systemd; which most distributions have moved to – you typically have to go out of your way to avoid it. I also don’t have much experience in writing my own service/timer files; but it looks like systemd-run may have you covered as well (source):

          # Run every 30 minutes
          systemd-run --user --on-calendar '*:0/30' /home/your_user_name/proton-sync.sh
          

          While I know writing config files and working with the terminal can be intimidating (it was for me in the beginning, anyway); I’d really recommend against running random ‘scripts’ you find online unless you either 100% trust the source, or can read/understand what they are doing. I have personally been caught-out recently from a trusted source doing jank shit in their scripts, which I didn’t notice until reading through them…and Linux Admin/DevOps is my day job…

          • hedge@beehaw.orgOP
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            2 months ago

            Hi @stewie410@programming.dev & @leetnewb@beehaw.org, thanks for taking the time to write such detailed responses (and stewie410, you did not in any way come across as condescending, so no worries there). As I try to wrap my head around this, could you explain the difference between the “rclone rc” and “rclone rcd” commands? I’ve read through the documentation, but am still left scratching my head.

            EDIT: Good grief, but this is complicated! 😵‍💫 At this point I may just have to wait for the Linux client . . .

            • leetnewb@beehaw.org
              link
              fedilink
              arrow-up
              3
              ·
              2 months ago

              I haven’t used either command, but based on what I see in the manual, rcd tells rclone to start listening for remote commands whereas rc is used to issue remote commands.

              Try it out by going to a folder with some files and typing: rclone rcd .

              That should open a tab in your web browser with a list of your files.

              There are situations where being able to send commands to rclone remotely would be helpful, but I’m not sure that you need to do that in this case.

        • leetnewb@beehaw.org
          link
          fedilink
          arrow-up
          2
          ·
          2 months ago

          All three of those links are very outdated - I do not recommend trying to use any of them.

          Can you be more specific about what you are trying to do exactly? I know rclone is confusing to get started on, in part because it does so many different things and the documentation requires some background/outside knowledge.

          • hedge@beehaw.orgOP
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 months ago

            All three of those links are very outdated - I do not recommend trying to use any of them.

            Yeah, they did look a bit suspect. Bookmarks deleted!

            Can you be more specific about what you are trying to do exactly?

            Thanks, I was hoping someone would ask, although I have been trying to “RTFM” and figure it out on my own 🙂. I’ve already installed the lastest .deb—basically I would like to use RClone to continuously sync the home folder on my laptop to Proton Drive (after having RClone autostart) in more or less the same way that I use Syncthing to sync a few important folders from my laptop to my phone. The setup with RClone I envision would be a one-way sync from my laptop to Proton Drive. In the absence of a Proton Drive client for Linux, can RClone be set up to do any of these things? And does RClone/PD support versioning?

            • leetnewb@beehaw.org
              link
              fedilink
              arrow-up
              2
              ·
              2 months ago

              I’m far from an expert, but I don’t know of rclone doing versioning, or a continuous sync like syncthing. Also haven’t used proton, so take my thoughts with a grain of salt.

              Stage 1 Run rclone config to set up the proton remote. rclone config should take you through a wizard and will eventually ask you to authenticate somehow with the remote. Once that is done and saved, you’ll exit the rclone config wizard and be back at the command line.

              Then you would run a test command like: rclone ls :

              If it worked, you should see a list of files/folders on Proton. If not, you’ll have to go back to rclone config and edit the remote to fix whatever went wrong.

              Stage 2

              Test out copying the folders with a command something like: rclone copy localfile/folder remotename:remotepath

              Do some testing to get the hang of the command, but it is pretty straightforward.

              Stage 3

              I don’t know how many files or how big the files are, but I assume not too many and not too big. I also don’t know which version of Linux you have, but I assume you have access to systemd, cron, or both.

              You’ll make a basic shell script that runs the command you practiced in stage 2. Easy peasy, put it in a text file with a shebang at the beginning, make it executable, and give it a go. It should run exactly how it did when you typed the command out manually.

              Finally, you will write a systemd timer or a cron/crontab entry to execute that script at some frequency.

              So just to summarize:

              1. Setup the proton remote in rclone using rclone config
              2. Test out copying files to proton through rclone
              3. Write a basic shell script that runs the command to copy files from the desired local folders to the desired proton folders.
              4. Use one of the tools on Linux that lets you schedule the execution of scripts to automate running your copy to proton script as frequently as makes sense to you.