Ever since I started down the self-hosting rabbit hole one issue I’ve been constantly annoyed with is transferring files between machines. Especially files which I am currently working on and that I want to periodically transfer to a specific remote location.

Rsync has been my go to tool for file transfers and backups but I absolutely hate making commands for it. I was getting lost in a wall of text with all my rsync aliases.

The script I created helps me organize those commands by placing all the information for an rsync command into an easier to read dot-file. The script will read the dot-file, update the rsync command and run it. It’s also set up to preview file transfers with rsync’s dry run option. I’ve also added a few other features to make the script more flexible including being able to quickly backup a directory that I’m currently working in.

For self-hosting, I find working with files a bit easier to organize than a text full of aliases although I can see it easy to get overwhelmed with dot-files if some people aren’t organized.

I’ve also made it as POSIX shell friendly as possible. I know a couple things I did aren’t fully POSIX compliant currently but I that’s something to work towards. This is also the first programming thing I ever completed so I’m quite happy with how it turned out.

If at least one other person finds this script useful, that would be pretty neat :)

  • confusedpuppy@lemmy.dbzer0.comOP
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    20 days ago

    I use a lot of commands that either use the --delete option or require remote root access in order to preserve hard links and other attributes.

    I didn’t know that was an issue. I was going from my own limited experience with linux.

    I already set an option to disable the root requirement at the beginning of the script. Simply changing the value to 0 will disable it and will let rsync display it’s own errors.

    What exactly makes it suspect so I know what I’m doing?