All Projects → stsquad → dired-rsync

stsquad / dired-rsync

Licence: GPL-3.0 license
Support for rsync from Emacs dired buffers

Programming Languages

emacs lisp
2029 projects

Projects that are alternatives of or similar to dired-rsync

System Tar And Restore
Backup and Restore your system using tar or Transfer it with rsync
Stars: ✭ 170 (+82.8%)
Mutual labels:  rsync
scripts
Scripts for managing my Ubuntu / Rclone / Plex Server
Stars: ✭ 20 (-78.49%)
Mutual labels:  rsync
python-rsync-system-backup
Linux system backups powered by rsync
Stars: ✭ 45 (-51.61%)
Mutual labels:  rsync
Rsync Time Backup
Time Machine style backup with rsync.
Stars: ✭ 2,572 (+2665.59%)
Mutual labels:  rsync
Elkarbackup
Open source backup solution for your network
Stars: ✭ 247 (+165.59%)
Mutual labels:  rsync
rsync-static
Static RSync binaries compiled for x86, ARM, and ARM64. Useful for running on Android. Built daily
Stars: ✭ 40 (-56.99%)
Mutual labels:  rsync
Yajsync
A Java implementation of the rsync protocol
Stars: ✭ 134 (+44.09%)
Mutual labels:  rsync
time-travel
An rsync based backup script which only transfers modified files. Smooth integration into OSX Notification Center.
Stars: ✭ 43 (-53.76%)
Mutual labels:  rsync
go-sync
🔁 CLI synchronization utility to sync project files and databases for your local project with SSH and Docker support
Stars: ✭ 61 (-34.41%)
Mutual labels:  rsync
rsync4j
Simple Java wrapper for rsync for Linux, OSX and Windows.
Stars: ✭ 77 (-17.2%)
Mutual labels:  rsync
Routinator
An RPKI Validator written in Rust
Stars: ✭ 215 (+131.18%)
Mutual labels:  rsync
Kubectl Warp
Kubernetes CLI plugin for syncing and executing local files in Pod on Kubernetes
Stars: ✭ 245 (+163.44%)
Mutual labels:  rsync
sicksync
Don’t accept the available as the preferable. Go the extra mile with extra speed.
Stars: ✭ 67 (-27.96%)
Mutual labels:  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 (+2410.75%)
Mutual labels:  rsync
load-bash-alias
Convert bash aliases into eshell ones
Stars: ✭ 16 (-82.8%)
Mutual labels:  emacs-packages
Rsync Incremental Backup
Configurable bash script to send incremental backups of your data to a local or remote target
Stars: ✭ 150 (+61.29%)
Mutual labels:  rsync
action-rsyncer
Rsync GitHub Action
Stars: ✭ 50 (-46.24%)
Mutual labels:  rsync
adlibre-backup
High performance rsync backup utilising BTRFS / ZFS filesystem features
Stars: ✭ 35 (-62.37%)
Mutual labels:  rsync
remote
Work with remote hosts seamlessly. Code local, build / execute commands remotely
Stars: ✭ 24 (-74.19%)
Mutual labels:  rsync
planb
PlanB - automating remote backups and snapshots with zfs/rsync
Stars: ✭ 24 (-74.19%)
Mutual labels:  rsync

dired-rsync – asynchronous rsync from dired

https://stable.melpa.org/packages/dired-rsync-badge.svg https://melpa.org/packages/dired-rsync-badge.svg https://travis-ci.org/stsquad/dired-rsync.svg?branch=master

Introduction

This package adds a single command dired-rsync which allows the user to copy marked files in a dired buffer via rsync. This is useful, especially for large files, because the copy happens in the background and doesn’t lock up Emacs. It is also more efficient than using tramps own encoding methods for moving data between systems.

Configuration is simple as you only need to bind the dired-rsync command to your preferred dired binding.

(use-package dired-rsync
  :config
  (bind-key "C-c C-r" 'dired-rsync dired-mode-map))

Customisation

A variable called dired-rsync-modeline-status is provided for mode lines that will report the number of active rsync operations in progress. The variable dired-rsync-job-count contains the number of currently active dired-rsync jobs currently running.

For those that don’t like the way dired-rsync unmarks transferred files when it completes please see dired-rsync-unmark-on-completion.

If you want to tweak the way marks are collected you can customise dired-rsync-source-files and provide your own function to return a list of fully qualified names to include in the command.

From time to time the call to rsync may fail. dired-rsync keeps the process buffer around for debugging and reports to the console. You can customise dired-rsync-failed-hook with your own hook function or select the more aggressive dired-rsync--pop-to-rsync-failed-buf to pop straight to the buffer. Also you can customise dired-rsync-success-hook with your own hook function to provide notification for compleated transfers.

The options dired-rsync-command and dired-rsync-options are there to modify the call to rsync but a user is unlikely to need to tweak these.

Technical Notes

While you can use rsync to copy files locally the main use case is copying files to/from a remote system. The rsync tool is always run locally as rsync needs working SSH authentication to work. If you can access a remote machine via tramp/ssh without having to enter a password (because ssh-agent is working) then rsync should work fine.

You can also do a remote-to-remote copy although this does involve setting up a port forward so the first remote can access the second remote. Also as dired-rsync needs to reverse ssh from your source location it is best if you fully qualify the location in tramp (i.e. user@remote:/dest/path) so it can extract the correct username to login with. It’s ugly but it works.

The test used by dired-rsync is tramp-tramp-file-p which will mean any tramp path will attempt to be converted to an rsync path with optional ssh transport. Obviously if your remote target doesn’t also have ssh running and remote rsync binary this will fail. The reporting could be improved.

There have been several attempts at doing this but I found them wanting in usability. This attempts to clean up the ideas from:

in a hopefully cleaner and more idiomatic way.

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].