26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
---
|
|
title: "Hydrus Sync Client"
|
|
date: 2022-10-12
|
|
draft: false
|
|
layout: "project"
|
|
projtags:
|
|
- Hydrus
|
|
- Rust
|
|
license: GPLv3
|
|
source: "https://codeberg.org/redstrate/hydrussyncclient/"
|
|
summary: "Sync hydrus databases using rsync."
|
|
---
|
|
|
|
Ever feel like you need a way to sync Hydrus databases across multiple machines? With `hydrus-sync-client`, you can
|
|
easily synchronize your Hydrus database with a rsync server. This was originally a Bash script that I decided to rewrite in Rust, so it's pretty ugly.
|
|
|
|
# Process
|
|
|
|
1. The program first checks the last hostname that synchronized, this is used later to decide whether to sync first.
|
|
2. Then the lockfile is checked, if it is locked - the program exits.
|
|
3. If the hostnames don't match, we sync the files before launching.
|
|
4. Hydrus is launched and you can continue like normal.
|
|
5. Once Hydrus is closed, the file synchronization now happens in reverse.
|
|
6. Before the program exits, the lockfile is reset and the last hostname is updated.
|
|
|
|
As long as you ensure you're always using `hydrus-sync-client` to run Hydrus, the sync process is mostly foolproof.
|