Hello selfhosted! Sometimes I have to transfer big files or a large amounts of small files in my homelab. I used rsync but specifying the IP address and the folders and everything is bit fiddly. I thought about writing a bash script but before I do that I wanted to ask you about your favourite way to achieve this. Maybe I am missing out on an awesome tool I wasn’t even thinking about.

Edit: I settled for SFTP in my GUI filemanager for now. When I have some spare time I will try to look into the other options too. Thank you for the helpful information.

    • @GamingChairModel@lemmy.world
      link
      fedilink
      English
      27 days ago

      Yeah, I mean I do still use rsync for the stuff that would take a long time, but for one-off file movement I just use a mounted network drive in the normal file browser, including on Windows and MacOS machines.

      • drkt
        link
        fedilink
        English
        16
        edit-2
        9 days ago

        I just type sftp://[ip, domain or SSH alias] into my file manager and browse it as a regular folder

          • drkt
            link
            fedilink
            English
            7
            edit-2
            8 days ago

            Linux is truly extensible and it is the part I both love and struggle to explain the most.
            I can sit at my desktop, developing code that physically resides on my server and interact with it from my laptop. This does not require any strange janky setup, it’s just SSH. It’s extensible.

            • @blackbrook@mander.xyz
              link
              fedilink
              English
              4
              edit-2
              7 days ago

              I love this so much. When I first switched to Linux, being able to just list a bunch of server aliases along with the private key references in my .ssh/config made my life SO much easier then the redundantly maintained and hard to manage putty and winscp configurations in Windows.

          • drkt
            link
            fedilink
            English
            89 days ago

            Any file manager on Linux supports this

      • @Kit@lemmy.blahaj.zone
        link
        fedilink
        English
        49 days ago

        I have two servers, one Mac and one Windows. For the Mac I just map directly to the smb share, for the Windows it’s a standard network share. My desktop runs Linux and connects to both with ease.

      • Shimitar
        link
        fedilink
        English
        27 days ago

        Do you really need a container for Samba?

        I see the benefits of containers, but a use would be overkill.

        • @GamingChairModel@lemmy.world
          link
          fedilink
          English
          17 days ago

          Yeah, if OP has command line access through rsync then the server is already configured to allow remote access over NFS or SMB or SSH or FTP or whatever. Setting up a mounted folder through whatever file browser (including the default Windows Explorer in Windows or Finder in MacOS) over the same protocol should be trivial, and not require any additional server side configuration.

      • Lv_InSaNe_vL
        link
        fedilink
        English
        19 days ago

        I dont have a docker container, I just have Samba running on the server itself.

        I do have an owncloud container running, which is mapped to a directory. And I have that shared out through samba so I can access it through my file manager. But that’s unnecessary because owncloud is kind of trash.

  • @e0qdk@reddthat.com
    link
    fedilink
    English
    179 days ago

    People have already covered most of the tools I typically use, but one I haven’t seen listed yet that is sometimes convenient is python3 -m http.server which runs a small web server that shares whatever is in the directory you launched it from. I’ve used that to download files onto my phone before when I didn’t have the right USB cables/adapters handy as well as for getting data out of VMs when I didn’t want to bother setting up something more complex.

    • @GamingChairModel@lemmy.world
      link
      fedilink
      English
      27 days ago

      Honestly, this is an easy way to share files with non-technical people in the outside world, too. Just open up a port for that very specific purpose, send the link to your friend, watch the one file get downloaded, and then close the port and turn off the http server.

      It’s technically not very secure, so it’s a bad idea to leave that unattended, but you can always encrypt a zip file to send it and let that file level encryption kinda make up for lack of network level encryption. And as a one-off thing, you should close up your firewall/port forwarding when you’re done.

  • @sugar_in_your_tea@sh.itjust.works
    link
    fedilink
    English
    158 days ago

    What’s wrong with rsync? If you don’t like IP addresses, use a domain name. If you use certificate authentication, you can tab complete the folders. It’s a really nice UX IMO.

    If you’ll do this a lot, just mount the target directory with sshfs or NFS. Then use rsync or a GUI file manager.

        • @jollyrogue@lemmy.ml
          link
          fedilink
          English
          2
          edit-2
          7 days ago

          The daemon tracks file state, so the transfers start quicker because rsync doesn’t have to scan the filesystem.

            • @jollyrogue@lemmy.ml
              link
              fedilink
              English
              27 days ago

              Not necessarily. Rsync deltas are very efficient, and not everything supports deltas.

              It may very well be the correct tool for the job.

              Anyway, problem fit wasn’t part of the question.

              • @sugar_in_your_tea@sh.itjust.works
                link
                fedilink
                English
                27 days ago

                Yeah, there are probably a few perfect fits for it. I don’t rsync between machines very often, so the only use case I might have is backups, which is already well covered with a number of tools. Otherwise I just want to sync a few directories.

        • Possibly linux
          link
          fedilink
          English
          27 days ago

          It is, rsync sends data in plain text. There is a optional password that is also sent in plain text.

    • Grumuk
      link
      fedilink
      English
      -18 days ago

      I never even set up DNS for things that aren’t public facing. I just keep /etc/hosts updated everywhere and ssh/scp/rsync things around using their non-fqdn hostnames.

  • @boreengreen@lemm.ee
    link
    fedilink
    English
    4
    edit-2
    9 days ago

    rsync is indeed fiddly. Consider SFTP in your GUI of choice. I mount the folder I need in my file browser and grab the files I need. No terminal needed and I can put the folders as favorites in the side bar.

  • @magic_smoke@lemmy.blahaj.zone
    link
    fedilink
    English
    4
    edit-2
    9 days ago
    • sftp for quick shit like config files off a random server because its easy and is on by default with sshd in most distros
    • rsync for big one-time moves
    • smb for client-facing network shares
    • NFS for SAN usage (mostly storage for virtual machines)
  • @Xanza@lemm.ee
    link
    fedilink
    English
    49 days ago

    rclone. I have a few helper functions;

    fn mount { rclone mount http: X: --network-mode }
    fn kdrama {|x| rclone --multi-thread-streams=8 --checkers=2 --transfers=2 --ignore-existing --progress copy http:$x nas:Media/KDrama/$x --filter-from
    ~/.config/filter.txt }
    fn tv {|x| rclone --multi-thread-streams=8 --checkers=2 --transfers=2 --ignore-existing --progress copy http:$x nas:Media/TV/$x --filter-from ~/.config/filter.txt }
    fn downloads {|x| rclone --multi-thread-streams=8 --checkers=2 --transfers=2 --ignore-existing --progress copy http:$x nas:Media/Downloads/$x --filter-from ~/.config/filter.txt }
    

    So I download something to my seedbox, then use rclone lsd http: to get the exact name of the folder/files, and run tv "filename" and it runs my function. Pulls all the files (based on filter.txt) using multiple threads to the correct folder on my NAS. Works great, and maxes out my connection.

  • @motsu@lemmy.world
    link
    fedilink
    English
    48 days ago

    smb share if its desktop to desktop. If its from phone to PC, I throw it on nextcloud on the phone, then grab it from the web ui on pc.

    Smb is the way to go if you have identity set up, since your PC auth will carry over for the connection to the smb share. Nextcloud will be less typing if not since you can just have persistent auth on the app / web.

    • @BeardedGingerWonder@feddit.uk
      link
      fedilink
      English
      17 days ago

      Solid explorer on android is pretty useful too, it can access the SMB share. I use nextcloud for photo backup, but usually solid explorer for one off file transfers.

  • @MasterBlaster@lemmy.world
    link
    fedilink
    English
    39 days ago

    By “homelab”, do you mean your local network? I tend to use shared folders, kdeconnect, or WebDAV.

    I like WebDAV, which i can activate on Android with DavX5 and Material Files, and i use it for Joplin.

    Nice thing about this setup is that i also have a certificate secured OpenVPN, so in a pinch i can access it all remotely when necessary by activating that vpn, then disconnecting.

    • @boreengreen@lemm.ee
      link
      fedilink
      English
      1
      edit-2
      9 days ago

      As I understand it, the establishing of the connection is reliant on a relay server. So this would not work on a local network without a relay server and would, by default, try to reach a server on the internet to make connections.

  • @lemmylommy@lemmy.world
    link
    fedilink
    English
    39 days ago

    WinSCP for editing server config

    Rsync for manual transfers over slow connections

    ZFS send/receive for what it was meant for

    Samba for everything else that involves mounting on clients or other servers.