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.

  • sugar_in_your_tea@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 hours 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.

    • theorangeninja@sopuli.xyzOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      22 hours ago

      Sounds very straight forward. Do you have a samba docker container running on your server or how do you do that?

      • drkt@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        8
        ·
        edit-2
        22 hours ago

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

      • Kit@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        4
        ·
        19 hours 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.

      • Lv_InSaNe_vL@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        1
        ·
        17 hours 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
    arrow-up
    11
    ·
    19 hours 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.

  • boreengreen@lemm.ee
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    18 hours 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.

  • PerogiBoi@lemmy.ca
    link
    fedilink
    English
    arrow-up
    2
    ·
    16 hours ago

    Ye old samba share.

    But I do like using Nextcloud. I use it for syncing my video projects so I can pick up where I left off on another computer.

    • boreengreen@lemm.ee
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      17 hours 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.

  • magic_smoke@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    21 hours 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
    arrow-up
    3
    ·
    22 hours 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.

  • hendrik@palaver.p3x.de
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    21 hours ago

    I’d say use something like zeroconf(?) for local computer names. Or give them names in either your dns forwarder (router), hosts file or ssh config. Along with shell autocompletion, that might do the job. I use scp, rsync and I have a NFS share on the NAS and some bookmarks in Gnome’s file manager, so i just click on that or type in scp or rsync with the target computer’s name.

  • neidu3@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    21 hours ago

    rsync if it’s a from/to I don’t need very often

    More common transfer locations are done via NFS

  • Admiral Patrick@dubvee.org
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    edit-2
    22 hours ago

    Depends on what I’m transferring and to/from where:

    • scp is my go-to since I’m a Linux household and have SSH keys setup and LDAP SSO as a fallback
    • sshfs if I’m too lazy to connect via SMB/NFS (or I don’t feel like installing the tools for them) or I’m traversing a WAN
    • rsync for bulk transfer and backups
    • Snapdrop/Pairdrop for one-off file/text shares between devices with GUIs (mostly phone <–> PC)
    • SMB if I’m on a client PC and need to work with the files directly from the fileserver
    • NFS between servers
    • To get bulk data to my phone (e.g. updating my music library), I connect via USB in MTP mode and copy from the server via SMB or sshfs.