msynk/README.md
2022-03-11 21:07:56 +01:00

100 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

% MSYNK(1) msynk 1.0
% Matthias Quintern
% March 2022
# NAME
msynk - sync files locally or between devices
# SYNOPSIS
| Local:
| **msynk** [OPTION...] -r DEST_DIR -s SOURCE_DIR PATHS...
| Via remote shell:
| Push:
| **msynk** \[OPTION...] -r [USER@]HOST:DEST_DIR -s SOURCE_DIR PATHS...
| Pull:
| **msynk** [OPTION...] -r DEST_DIR -s [USER@]HOST:SOURCE_DIR PATHS...
| Using a configuration file:
| **msynk** [OPTION...] -c CONFIG NAME [SELECTIONS...]
# DESCRIPTION
**msynk** uses *rsync* to synchronise files or directories locally or between devices.
In general, you should always add a trailing '/' to directories.
## Encryption
Files can also be encrypted or decrypted using *mkrypt*. If encryption is used, the files are encrypted to a temporary directory and then synced with *rsync*.
If you sync encrypted files to your system, the encrypted files are transferred with *rsync* to a temporary directory and then decrypted to your filesystem.
## Configuration Files
**msynk** can read from config files usually stored in ~/.config/msynk.
The config files are shellscripts run with bash to set certain environent variables. These are:\
- paths: array containing all paths (relative to sender) that should be synced\
- sender: the parent directory of the paths\
- receiver: the path where the files should be synced to\
- rsync_flags: array containing all the flags for rsync. If you just want to add a flag, use ´rsync_flags+=(-yourflag)\
- use_encryption: 0 for no, 1 for yes
### Example
To sync the directories "/home/user/foo" "/home/user/bar" and the file "/home/user/file.txt" to a remote server "user@foobar.com:~/backup" which is available with ssh at port 42, you could have a configuration file "my_backup":\
sender=/home/user/\
receiver=user@foobar.com:~/backup/\
paths=(foo/ bar/ file.txt)\
rsync_flags+=(--rsh="ssh -p 42")\
You can then run this with: "msynk -c my_backup"\, or if you only want to sync the "foo" directory and ".txt" files: "msynk -c my_backup foo .txt"
# OPTIONS
**-h**, **--help**
: Show a list of arguments.
**--settings**
: Show the current settings.
**-c**, **--config** config-name
: Retrieve settings from config file ~/.config/msynk/*config-name*
**-s**, **--sender** path
: Set sender to directory. This can also be a remote, like user@domain.com:/dir. Defaults to to the current working directory.
**-r**, **--receiver** path
: Set the receiver directory. All files and directories will be placed inside this directory. This can also be a remote, like user@domain.com:/dir. This option always needs to be set.
**--reverse**
: Swaps sender and receiver. Useful when you want to reverse a config file.
**--encrypt**
: Encrypt files with *mkrypt* before sending them to the receiver.
: The files are encrypted to $TMP_DIR and then synced to the receiver. Does not work with --delete.
**--decrypt**
: Decrypt files with *mkrypt* after receiving them from the sender. Assumes that all files are encrypted and fails if that is not the case.
: The files are synced to $TMP_DIR and then decrypted to the receiver directory. Does not work with --delete.
**--mkrypt-flags** flags
: Additional flags for *mkrypt*. You can use this to set the key for the encryption.
**-d**, **--delete**
: *rsync* --delete option. Deletes all files on the receiver that do not exist on the sender. *msynk* will open *less* with a list of all files that will be deleted and prompt you wether you want continue (unless --skip-dryrun is set)
**--skip-dryrun**
: Can be used with --delete. This skips listing the files that will be deleted and the prompt.
**--rsync-flags** flags
: Additional flags for *rsync*. You can use this to set the port for the connection.
**-v**, **--verbose**
: Increase verbosity: Passes -v to rsync and mkrypt.
**--silent**
: Decrease verbosity: Print only error messages and passes --silent to mkrypt.
**--debug**
: Maximum verbosity: -v but also print out rsync and mkrypt commands.
**positional arguments**
: If you are using a config file: pos. args. are strings that have to be contained in a path in order for it to be synced. If no pos. args. are given, all files are synced.
: If you are not using a config file: pos. args. are filepaths relative to the sender directory.
# COPYRIGHT
Alles meins!!!