Skip to content

Instantly share code, notes, and snippets.

@canonex
Created June 30, 2022 14:39
Show Gist options
  • Save canonex/63668f6a40c5528f1bbfdce6f8afffc8 to your computer and use it in GitHub Desktop.
Save canonex/63668f6a40c5528f1bbfdce6f8afffc8 to your computer and use it in GitHub Desktop.
Rsync and a lock file: flock
#!/bin/bash
# Example of flock use with rsync where local files are pushed to a remote server using a ssh and a key.
# Using flock is useful when file copying is slow and the transfer duration may overlap with a newly scheduled run.
# For example, if a large number of files are uploaded in one day in an office, whose backup is scheduled every day, and the transfer may take more than 24 hours.
# Flock use a lock file: if it already exist it does not execute the command (-n option)
# Read more on https://www.man7.org/linux/man-pages/man1/flock.1.html
flock -n rsyncExec.lock -c 'rsync -aAXH --info=progress2 --delete --delete-excluded -e "ssh -p 12345 -i /myuser/.ssh/mykey" /myrepo/mydata/ myuser@mydomain.net:/mybackup/myfolder/'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment