Git Product home page Git Product logo

rsyncosx's Introduction

GitHub license GitHub Releases GitHub Releases Crowdin Netlify Status GitHub issues

RsyncOSX require macOS Catalina 10.15 and later versions of macOS.

Install by Homebrew

RsyncOSX can also be installed by Homebrew: brew cask install rsyncosx

Documents, issues and changelog

RsyncOSX is a GUI on top of the command line utility rsync. Rsync is a file-based synchronization and backup tool. There is no custom solution for the backup archive. You can quit utilizing RsyncOSX (and rsync) at any time and still have access to all synchronized files. From version 6.4.6, RsyncOSX is compiled with support for macOS Catalina 10.15 and later versions.

The above docs are based on Hugo, the Hugo theme Even, Markdown and published on Netlify. If you want to discuss changes or report bugs please create an issue.

Dependencies

The application is implemented in pure Swift 5, Cocoa and Foundation. From the latest release there are three source code dependencies:

  • check for TCP connectivity by utilizing SwiftSocket, some functions require connections to remote servers
  • execute pre and post shellscripts by utilizing John Sundell´s ShellOut
  • utilizing John Sundell´s Files for reading files and catalogs

All three are available as source code and automatically included as part of building RsyncOSX.

Working with JSON require to encode and decode the JSON file. The tool JSONExport is used to create the required Swift structs (configurations, schedules and logs) for decode JSON file into the approriate Swift structs.

Tools used

The following tools are used in development:

  • Xcode (the main tool)
  • make to compile new versions in terminal
  • create-dmg to create new releases
  • periphery to identify unused code
  • SwiftLint to enforce Swift style and conventions
  • SwiftFormat for reformatting Swift code

All the above, except Xcode are installed by using Homebrew.

Scheduling

Scheduled tasks are added and deleted within RsyncOSX. Executing the scheduled tasks is by the menu app.

Remote servers

If destination is a remote server, RsyncOSX is dependent on setting up password-less logins. Both ssh-keys and rsync daemon setup are possible. It is advised utilizing ssh-keys because communication between source and destination (client and server) is encrypted.

If destination is a local attached volume, the above is not relevant.

Signing and notarizing

The app is signed with my Apple ID developer certificate and notarized by Apple. See signing and notarizing for info. Signing and notarizing is required to run on macOS Catalina.

Localization

RsyncOSX speaks new languages. RsyncOSX is localized to:

Localization is done by utilizing Crowdin to translate the xliff files which are imported into Xcode after translating. Xcode then creates the required language strings. Crowdin is free for open source projects.

Version of rsync

RsyncOSX is verified with rsync versions 2.6.9, 3.1.2, 3.1.3 and 3.2.x. Other versions of rsync will work but numbers about transferred files is not set in logs. It is recommended to install the latest version of rsync.

If you are only looking for utilizing stock version of rsync (version 2.6.9) and only synchronize data to either local attached disks or remote servers, there is a minor version (RsynGUI) available on Mac App Store. RsyncGUI does not support snapshots or scheduling task.

Some words about RsyncOSX

RsyncOSX is not developed to be an easy to use synchronize and backup tool. The main purpose is to assist and ease the use of rsync to synchronize files on your Mac to remote FreeBSD and Linux servers. And of course restore files from remote servers.

The UI can for users who dont know rsync, be difficult or complex to understand. It is not required to know rsync but it will ease the use and understanding of RsyncOSX. But it is though, possible to use RsyncOSX by just adding a source and remote backup catalog using default parameters.

RsyncOSX supports synchronize and snapshots of files.

If your plan is to use RsyncOSX as your main tool for backup of files, please investigate and understand the limits of it. RsyncOSX is quite powerful, but it is might not the primary backup tool for the average user of macOS.

There is a short intro to RsyncOSX and some more documentation of RsyncOSX.

The --delete parameter

Caution about RsyncOSX and the `--delete` parameter. The `--delete` is a default parameter.
The parameter instructs rsync to keep the source and destination synchronized (in sync).
The parameter instructs rsync to delete all files in the destination which are not present
in the source.

Every time you add a new task to RsyncOSX, execute an estimation run (--dry-run) and inspect
the result before executing a real run. If you by accident set an empty catalog as source
RsyncOSX (rsync) will delete all files in the destination.

To save deleted and changes files either utilize snapshots or the --backup parameter. The --delete parameter and other default parameters might be deleted if wanted.

The source code and compile

There are some details about source and how to compile.

A Sandboxed version

There is also released a minor version, RsyncGUI of RsyncOSX on Apple Mac App Store. See the changelog. RsyncGUI utilizes stock version of rsync in macOS and RsyncGUI only supports synchronize task (no snapshots).

About bugs

Over the years most bugs are smoked out. Thanks to users who reports bugs. Fighting bugs are difficult. I am not able to test RsyncOSX for all possible user interactions and use. I need support from other users discovering bugs or not expected results. If you discover a bug please report it.

About restoring files to a temporary restore catalog

If you do a restore from the remote to the source, some files in the source might be deleted. This is due to how rsync works in synchronize mode. As a precaution never do a restore directly from the remote to the source, always do a restore to a temporary restore catalog.

Application icon

The application icon is created by Zsolt Sándor. All rights reserved to Zsolt Sándor.

How to use RsyncOSX - YouTube videos

There are two short YouTube videos of RsyncOSX:

XCTest

There are two XCTest configurations for testing.

rsyncosx's People

Contributors

gitter-badger avatar graphis avatar rsyncosx avatar stringke avatar superman32432432 avatar thomasyoungson avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.