All Projects → rsyncOSX → Rsyncosx

rsyncOSX / Rsyncosx

Licence: mit
A macOS GUI for rsync

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Rsyncosx

awesome-storage
A curated list of storage open source tools. Backups, redundancy, sharing, distribution, encryption, etc.
Stars: ✭ 324 (-58.46%)
Mutual labels:  backup, nas
irsync
rsync on interval, via command line binary or docker container. Server and IOT builds for pull or push based device content management.
Stars: ✭ 19 (-97.56%)
Mutual labels:  backup, rsync
BaNG
Backup Next Generation for Linux & Mac using rsync (support hardlinks and btrfs snapshots), Web-Frontend, Statistics, History-Merger)
Stars: ✭ 28 (-96.41%)
Mutual labels:  backup, rsync
planb
PlanB - automating remote backups and snapshots with zfs/rsync
Stars: ✭ 24 (-96.92%)
Mutual labels:  backup, rsync
Raspibackup
Backup and restore your running Raspberry
Stars: ✭ 268 (-65.64%)
Mutual labels:  backup, rsync
time-travel
An rsync based backup script which only transfers modified files. Smooth integration into OSX Notification Center.
Stars: ✭ 43 (-94.49%)
Mutual labels:  backup, rsync
rbackup
Shell script for encrypted backups with rsync and GnuPG
Stars: ✭ 22 (-97.18%)
Mutual labels:  backup, rsync
Rsnapshot
a tool for backing up your data using rsync (if you want to get help, use https://lists.sourceforge.net/lists/listinfo/rsnapshot-discuss)
Stars: ✭ 2,335 (+199.36%)
Mutual labels:  backup, rsync
PyFiSync
Python (+ rsync or rclone) based intelligent file sync with automatic backups and file move/delete tracking.
Stars: ✭ 88 (-88.72%)
Mutual labels:  backup, rsync
netbackup
A frontend for various backup programs (rsync, rdiff-backup, rclone) that simplifies local and remote backups.
Stars: ✭ 15 (-98.08%)
Mutual labels:  backup, rsync
sicksync
Don’t accept the available as the preferable. Go the extra mile with extra speed.
Stars: ✭ 67 (-91.41%)
Mutual labels:  backup, rsync
Linux Timemachine
Rsync-based OSX-like time machine for Linux, MacOS and BSD for atomic and resumable local and remote backups
Stars: ✭ 358 (-54.1%)
Mutual labels:  backup, rsync
Elkarbackup
Open source backup solution for your network
Stars: ✭ 247 (-68.33%)
Mutual labels:  backup, rsync
adlibre-backup
High performance rsync backup utilising BTRFS / ZFS filesystem features
Stars: ✭ 35 (-95.51%)
Mutual labels:  backup, rsync
Rsync Time Backup
Time Machine style backup with rsync.
Stars: ✭ 2,572 (+229.74%)
Mutual labels:  backup, rsync
btrfs-backup
A simple, flexible script for versioned backups using btrfs and rsync
Stars: ✭ 59 (-92.44%)
Mutual labels:  backup, rsync
Rsync Incremental Backup
Configurable bash script to send incremental backups of your data to a local or remote target
Stars: ✭ 150 (-80.77%)
Mutual labels:  backup, rsync
System Tar And Restore
Backup and Restore your system using tar or Transfer it with rsync
Stars: ✭ 170 (-78.21%)
Mutual labels:  backup, rsync
cephgeorep
An efficient unidirectional remote backup daemon for CephFS.
Stars: ✭ 27 (-96.54%)
Mutual labels:  backup, rsync
Auto Gitlab Backup
A simple script to backup your Gitlab data. This script will copy the backup archives of your gitlab installation via rsync, or scp. Also, you can copy backups to Backblaze’s B2 Cloud Storage service.
Stars: ✭ 291 (-62.69%)
Mutual labels:  backup, rsync

GitHub license GitHub Releases Crowdin Netlify Status GitHub issues

RsyncOSX require macOS Catalina 10.15 and later versions of macOS.

The work on a SwiftUI based version of RsyncOSX has commenced. The new app is called RsyncUI and will be released as a new application and not as an upgrade.

Install by Homebrew

RsyncOSX can also be installed by Homebrew: brew install --cask 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. 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, ViewControllers and Storyboard(Cocoa and Foundation classes). 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 those remote servers.

The UI of RsyncOSX can for users who dont know rsync, be difficult or complex to understand. Using RsyncOSX requires some knowledge of rsync. The main objective for RsyncOSX is to ease the use of rsync, not teach macOS users how to use rsync. That is beyond the scope of RsyncOSX. Setting the wrong parameters to rsync can result in deleted data. And RsyncOSX will not stop you for doing so. That is why it is very important to execute a simulated run (--dry-run) and inspect what happens before a real run.

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.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].