While Linux users wait (and wait) for a Proton Drive client . . . - eviltoast
  • stewie410@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    1 month 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
      1 month 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
        ·
        1 month 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.