LSYNCD(1)
π LSYNCD(1) β the lsyncd manual, bestie edition π
okay so welcome to lsyncd, a whole icon, a legend, a daemon that just. keeps your directories in sync. forever. no cap. this is the LSYNCD(1) manual page and i'm gonna walk you through it like we're texting at 2am π¦
β¨ NAME β¨
lsyncd β a daemon to continuously synchronize directory trees π
β¨ SYNOPSIS β¨
so there's four ways to call her, depends on the vibe you want:
config file β the customizable route
lsyncd [OPTIONS] CONFIG-FILE
default rsync behaviour
lsyncd [OPTIONS] -rsync SOURCEDIR TARGET ...
default rync+ssh behaviour (moves and deletes through ssh)
lsyncd [OPTIONS] -rsyncssh SOURCEDIR TARGETHOST TARGETDIR ...
default direct behaviour (local file operations/rsync)
lsyncd [OPTIONS] -direct SOURCEDIR TARGETDIR ...
β¨ DESCRIPTION β¨
so Lsyncd(1) watches your local directory trees through an event monitor interface (inotify, fsevents). she collects and combines all those events for a few seconds, and then she spawns one or more processes to actually do the synchronizing. by default that process is rsync(1). so basically? she's a light-weight asynchronous live mirror solution πͺ that's comparatively easy to install, doesn't need new filesystems or block devices, and does not hamper your local filesystem performance. obsessed fr fr.
Rsync+ssh is an advanced action configuration that uses a SSH(1) to act file and directory moves directly on the target instead of re-transmitting the move destination over the wire. it's giving efficiency, it's giving "why would you send that twice" π
fine-grained customization? absolutely achievable through the CONFIG-FILE. custom action configs can even be written from scratch in cascading layers, ranging from shell scripts all the way to code written in the LUA(1) language. this way simplicity can be balanced with powerfulness π. see the online manual for details on the CONFIG-FILE at https://axkibe.github.io/lsyncd/manual/config/file/ .
β οΈ heads up bestie, this one matters: under normal configuration Lsyncd will delete pre-existing files in the target directories that are not present in the respective source directory. so like. she's thorough. she's committed. know that before you run her π
β¨ OPTIONS β¨
-delay SECSβ Overrides the default delay times. π-helpβ Show a help message. the classic.-insistβ Continues start up even if rsync cannot connect. she's stubborn and i respect it π-log LEVELβ Controls which kind of events are logged. By default Lsyncd logs Normal and Error Messages.-log scarcewill make Lsyncd log Error messages only.-log allwill log all debug messages. pick your chaos level ποΈ-log Categoryβ Turns on a specific debug message. E.g.-log Execwill log all processes as they are spawned. so nosy, love her π-nodaemonβ Lsyncd will not detach from the invoker and log as well to stdout/err. she stays right there with you π«Ά-pidfile FILEβ Lsyncd will write its process ID in FILE.-runner FILEβ Makes the Lsyncd core load the part of Lsyncd written in Lua from FILE. π§-versionβ Writes version information and exits.
β¨ EXIT STATUS β¨
(128+SIGNUM)β Terminated by Signal (143byTERM) π-1β Failure (syntax, unrecoverable error condition, internal failure) π
β¨ SEE ALSO β¨
Online Manual: https://axkibe.github.io/lsyncd/ πΈ
β¨ VERSION β¨
This man page is for lsyncd(1) version 2.2.0 β
β¨ AUTHOR β¨
Axel Kittenberger, <axkibe@gmail.com> 2010-2017 π
β¨ COPYING β¨
Copyright (C) 2010-2017 Axel Kittenberger. Free use of this software is granted under the terms of the GNU General Public License (GPL) version 2, or any later version. Free redistrubition of this Documentation (/doc directory) is granted under the terms of the Creative Commons 3.0 Attribution License (CC-3.0-BY). π
and that's the whole page bestie π this one's from Lsyncd 2.2.1, dated January 2017, filed under LSYNCD(1) β go forth and sync, you main character πβ¨π¦
π¦ where this page comes from
- alpine 3.22: lsyncd-doc 2.3.1-r1 Β· GPL-2.0-or-later
- alpine 3.23: lsyncd-doc 2.3.1-r1 Β· GPL-2.0-or-later
- alpine 3.24: lsyncd-doc 2.3.1-r1 Β· GPL-2.0-or-later
- debian bookworm: lsyncd 2.2.3-1+b1 Β· GPL-2.0-or-later
- debian trixie: lsyncd 2.2.3-1+b1 Β· GPL-2.0-or-later
- epel 9: lsyncd 2.2.3-5.el9 Β· GPLv2+
- fedora 43: lsyncd 2.3.1-9.fc43 Β· GPL-2.0-or-later AND CC-BY-3.0
- fedora 44: lsyncd 2.3.1-10.fc44 Β· GPL-2.0-or-later AND CC-BY-3.0
- nixos 26.05: lsyncd 2.3.1
- nixpkgs unstable: lsyncd 2.3.1
- opensuse-leap 16.0: lsyncd 2.3.1-bp160.1.12 Β· GPL-2.0-only
- opensuse-leap 16.0: lsyncd 2.3.1-bp160.1.12 Β· GPL-2.0-only
- opensuse-leap 16.0: lsyncd 2.3.1-bp160.1.12 Β· GPL-2.0-only
- opensuse-leap 16.0: lsyncd 2.3.1-bp160.1.12 Β· GPL-2.0-only
- ubuntu jammy: lsyncd 2.2.3-1 Β· GPL-2.0-or-later
- ubuntu noble: lsyncd 2.2.3-1 Β· GPL-2.0-or-later
- ubuntu resolute: lsyncd 2.2.3-1build1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms