{"id":13573154,"url":"https://github.com/clsync/lrsync","last_synced_at":"2026-03-16T07:08:35.705Z","repository":{"id":71634594,"uuid":"20730578","full_name":"clsync/lrsync","owner":"clsync","description":"rsync-like clsync wrapper for live syncing (based on inotify)","archived":false,"fork":false,"pushed_at":"2014-08-07T04:43:32.000Z","size":212,"stargazers_count":17,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-10T15:48:26.798Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clsync.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-11T15:30:36.000Z","updated_at":"2025-01-22T16:17:45.000Z","dependencies_parsed_at":"2023-02-22T00:46:13.019Z","dependency_job_id":null,"html_url":"https://github.com/clsync/lrsync","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clsync%2Flrsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clsync%2Flrsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clsync%2Flrsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clsync%2Flrsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clsync","download_url":"https://codeload.github.com/clsync/lrsync/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248322600,"owners_count":21084336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:00:30.838Z","updated_at":"2026-03-16T07:08:30.664Z","avatar_url":"https://github.com/clsync.png","language":"C","readme":"lrsync\n======\nContents\n--------\n\n0. Name\n1. Motivation\n2. How does that work\n3. Use cases\n4. Support\n\n\n0. Name\n-------\n\n\"lrsync\" means \"live [rsync](http://rsync.samba.org/)\".\n\n\n1. Motivation\n-------------\n\nTo make [clsync](https://github.com/xaionaro/clsync) more convenient and useful.\n\nWell, honestly, this's quite useless utility because you can work with clsync directly :)\n\n2. How does that work\n---------------------\n\n\"lrsync\" just parses arguments and sorts it for clsync and rsync (via clsync's \"sync-handler-arguments\"), after that it calls clsync this way: `clsync -Klrsync -Mrsyncdirect -S path_to_rsync -W source_directory -D destination_directory -L /tmp/.lrsync clsync_arguments -- %RSYNC-ARGS% rsync_arguments`. In this command `clsync_arguments`, `rsync_arguments`, `source_directory` and `destination_directory` are parsed from lrsync arguments.\n\nYou can see the result clsync command using option \"--clsync-command-only\". For example:\n\n    $ lrsync --exit-on-no-events --max-iterations=20 -av 1/ 2/ --clsync-command-only\n    clsync \\\n      -Klrsync \\\n      -Mrsyncdirect \\\n      -S \\\n      rsync \\\n      -W \\\n      1/ \\\n      -D \\\n      2/ \\\n      -L \\\n      /tmp/.lrsync \\\n      --exit-on-no-events \\\n      --max-iterations=20 \\\n      -- \\\n      %RSYNC-ARGS% \\\n      -av \\\n      1/ \\\n      2/ \n\n3. Use cases\n------------\n\n1. This may be useful if you have a directory that is actively updated. And you want to move it somewhere. You can just call:\n\n    lrsync --exit-hook /root/apacherestart.sh --exit-on-no-events --max-iterations 20 --inplace -av /usr/www/ /var/www/\n\n2. You want to get two directories in synchronous state:\n\n    lrsync --delay-sync 3 --delay-collect 3 --delay-collect-bigfile 3 -av /home/dir1 /home/dir2\n\n4. Support\n----------\n\nWrite-to:\n* dyokunev@ut.mephi.ru 0x8E30679C\n* irc.freenode.net#clsync\n","funding_links":[],"categories":["C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclsync%2Flrsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclsync%2Flrsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclsync%2Flrsync/lists"}