rewrite unison
This commit is contained in:
parent
d8b80055b3
commit
48be8dd112
@ -1,67 +1,45 @@
|
|||||||
---
|
---
|
||||||
title: "unison"
|
title: "unison"
|
||||||
tags: [ "Documentation", "backups" ]
|
tags: [ "Documentation", "Backups" ]
|
||||||
---
|
---
|
||||||
|
|
||||||
# Local Sync
|
Install unison on both machines, and on both make the `~/.unison` directory.
|
||||||
|
|
||||||
unison Dir_A Dir_B
|
Make a job called `backup`:
|
||||||
|
|
||||||
Accept defaults with:
|
> vim ~/.unison/backup.prf
|
||||||
|
|
||||||
> unison -auto Dir_A Dir_B
|
All jobs must end in `.prf`.
|
||||||
|
|
||||||
Ask no questions with:
|
Here is an example job, which synchronizes the `~/music` directory with a remote machine.
|
||||||
|
|
||||||
> unison -batch Dir_A Dir_B
|
|
||||||
|
|
||||||
# Remote Sync
|
|
||||||
|
|
||||||
Sync the folders ~/LK on pi and localhost with:
|
|
||||||
|
|
||||||
> unison LK ssh://pi@192.168.0.13/LK
|
|
||||||
|
|
||||||
|
|
||||||
#Back Script Example
|
|
||||||
Make backup script 'rat' by entering the configurations in ~/.unison/rat.prf
|
|
||||||
|
|
||||||
```{r}
|
|
||||||
# Where to synchronize from
|
|
||||||
root=/home/roach-1/
|
|
||||||
|
|
||||||
root=ssh://ubuntu@10.0.3.76/
|
|
||||||
|
|
||||||
auto = true
|
|
||||||
batch = true
|
|
||||||
## for ssh arguments, add as so:
|
|
||||||
#sshargs=-p 4792
|
|
||||||
|
|
||||||
## Directories to synchronize
|
|
||||||
## a path such as 'Album 1' will not work - don't use quotes.
|
|
||||||
path=box 1
|
|
||||||
path=box 2
|
|
||||||
path=house
|
|
||||||
path=.vimrc
|
|
||||||
path=.bashrc
|
|
||||||
|
|
||||||
ignore=Name temp.*
|
|
||||||
ignore=Name *.swp
|
|
||||||
|
|
||||||
## Merging
|
|
||||||
## This line handles the merge, but it's based on Emacs, which cannot run in a tty, but requires X.
|
|
||||||
|
|
||||||
diff = diff -u CURRENT2 CURRENT1 | perl -pe 's/^\+/>/; s/^\-/</'
|
|
||||||
```
|
```
|
||||||
|
auto = true
|
||||||
|
root=/home/ghost
|
||||||
|
root=ssh://ghost@192.168.0.10//home/ghost/
|
||||||
|
|
||||||
# Scheduled Backups
|
path=music
|
||||||
|
|
||||||
A full backup can be run with:
|
ignore=Name *.flac
|
||||||
|
|
||||||
> unison rat.prf
|
```
|
||||||
|
The last command means it will ignore any file with a name ending in `.flac`.
|
||||||
|
|
||||||
And a crontab can be set with:
|
## Automatic Runs
|
||||||
|
|
||||||
* */4 * * * /usr/bin/unison rat
|
The first command means this will run but also confirm which files will be deleted, and which will be transferred, us `batch = true` instead.
|
||||||
|
|
||||||
|
Set unison to run with crontab or a systemd unit file to have directories synchronize automatically.
|
||||||
|
|
||||||
|
## Problem Solving
|
||||||
|
|
||||||
|
Unison is extremely sensitive to version changes.
|
||||||
|
Both machines must have exactly the same version of unison installed, as well as the same version of `ocaml`.
|
||||||
|
|
||||||
|
Check with:
|
||||||
|
|
||||||
|
> unison -version
|
||||||
|
|
||||||
|
You will see data files summarizing what has happened in the `~/.unison` directory.
|
||||||
|
If something goes wrong, you may be prompted to delete these to start again.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user