Commit Graph

909 Commits

Author SHA1 Message Date
Juanga Covas
5530957e3e
Update FAQ entry on scripting
Update FAQ entry: How can I call a script before or after each rsync operation?
Add information about how rsync is called filtering directories and files using STDIN so you have to save it in your bash script to use it after calling rsync
2022-11-27 06:33:26 +01:00
Daniel Poelzleithner
dd48284cd0 fix changelog dates 2022-11-17 15:43:48 +01:00
Daniel Poelzleithner
6d59f16140 release 2.3.1 2022-11-17 02:22:35 +01:00
Daniel Poelzleithner
e831ad6945 check alarm for type first. fixes #679 2022-11-11 20:05:09 +01:00
Daniel Poelzleithner
d779eb434f Allow lsyncd to be build in the source folder without breaking. Not recommended 2022-11-11 19:32:09 +01:00
Daniel Poelzleithner
818fd4115f also test executable files 2022-11-11 19:00:26 +01:00
Daniel Poelzleithner
f4c15496dc fix cron test 2022-11-11 18:26:57 +01:00
Daniel Poelzleithner
96a6276440 disable lua 5.4.4 due segfault on luac invocation 2022-11-11 18:05:50 +01:00
Daniel Poelzleithner
5096f27bbd Fix more warnings from static code analysis 2022-11-11 15:27:21 +01:00
Daniel Poelzleithner
945b57d8fb Add Cron test 2022-11-11 15:11:09 +01:00
Daniel Poelzleithner
787b2b0015 fix static code analysis warnings, typos 2022-11-10 04:21:17 +01:00
Daniel Poelzleithner
e09b58b721 Fix wrong arguments for Sync:appendFilter proxy function 2022-11-09 22:44:04 +01:00
Daniel Poelzleithner
9b81bb1785 fix dump for more complex structures 2022-11-09 22:41:04 +01:00
Daniel Poelzleithner
cda98d6ba9 add Queue.inject, test Queue, bugfixes in remove() 2022-11-09 15:22:58 +01:00
Daniel Poelzleithner
daa8abb4cf nix: extract version from lsyncd.lua 2022-11-08 13:27:20 +01:00
Daniel Poelzleithner
7604dd0e16 cmake: extract lsyncd version from lsyncd.lua 2022-10-31 14:36:39 +01:00
Daniel Poelzleithner
e371078222 update nix locks 2022-10-28 15:12:54 +02:00
Daniel Poelzleithner
a2f7df504c bump version 2022-10-28 15:12:41 +02:00
Daniel Poelzleithner
e08685cfd6 Search crontab library with different names 2022-10-28 14:08:00 +02:00
Daniel Poelzleithner
1eb8a83500 Print version in debug and help messages 2022-10-28 14:07:17 +02:00
Daniel Poelzleithner
e6f3427c5f reduce required cmake version to 3.5 2022-06-30 11:43:12 +02:00
Daniel Poelzleithner
f02bf700c1 bump version to 2.3.0 2022-06-07 23:26:04 +02:00
Daniel Poelzleithner
6c8a3c2490 don't fail fast in CI 2022-06-07 22:30:51 +02:00
Daniel Poelzleithner
82f9f27172 Add proper compatibilty wrappers for 5.1 2022-06-07 22:28:30 +02:00
Daniel Poelzleithner
63f506582a fix ci 2022-06-07 11:12:48 +02:00
Daniel Poelzleithner
18008e1d15 enable more versions 2022-06-03 07:08:18 +02:00
Daniel Poelzleithner
dd84b2e6b6 lua 5.4 fixes 2022-06-03 07:07:08 +02:00
Daniel Poelzleithner
8c71941f9c Remove old debug prints, fix error() calls 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
c84e3d0e05 fix compile warning about write() return code 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
c5514e0451 Document crontab support 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
e94edac51e Update docs 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
f244405bce Use ^ instead of ${} syntax in commandSubstitution as well 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
5b8fa2deda don't export splitQuotedString 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
f2272f1aa7 Support tunnel command as string 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
867a3cec8e Add debug function 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
22259eee49 Add rsync tunnel example 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
a16d714d6e fix alarm calculation 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
1b7bf7577f do not export inhert functions 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
075d64a069 Implement batchSizeLimit for rsync based transfers
If the batchSizeLimit is set, only files lower then this limit will
be grouped in one rsync transfer.
Each file larger then this limit will spawn their own transfer process.
This will cause large files to no longer block small file transfers under the
circumstance the maxProcess limit on the sync is larger then 1

A very optimized, very secure transfer configuration based on a
pool of ssh connection looks like this:

```
sync {
        default.rsync,
        tunnel = tunnel {
            command = {"ssh", "-N", "-L", "localhost:${localport}:localhost:873", "user@targetmachine"},
            mode = "pool",
            parallel = 2,
        },
        source = "/tmp/src",
        target    = "rsync://localhost:${localport}/test",
        delay = 5,
        batchSizeLimit = 1024 * 1024 * 30,
        maxProcesses = 4,
        rsync = {
                verbose = true,
                inplace = true,
        }
}
```

If you configure remote ssh configuration only allows portforwarding and your rsync daemon
is configured correctly, you can very securely transfer data without giving shell access.
2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
7f0127548b Add function to return file size 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
32e2cac8cc Add script to simulate fs changes 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
4a0896f58f fix logic error in alarm compare 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
6d9164a29a Fix wrong alarm selection 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
ff84a35d4d Finish full sync cron trigger 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
9ec4f42888 Only check Tunnels if there is at least one tunnel defined 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
95f8ea67dd Log source of next alarm as well 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
c8fbe955fe Add debug functions and timestamp2string helpers 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
58f1991e0b [WIP] implement crontab full sync 2022-06-03 06:45:38 +02:00
Daniel Poelzleithner
d6c49b6858 Fixes for diffrent lua versions 2022-06-03 06:45:30 +02:00
Daniel Poelzleithner
46188f9f60 Implement tunnel pool mode.
In this mode, multiple tunnel processes are started and connection a load
balanced on the pool of connections.

Example config:

...
sync {
  default.rsync,
  tunnel = tunnel {
    command = {"ssh", "-N", "-L", "localhost:${localport}:localhost:873", "user@testmachine"},
    mode = "pool",
    parallel = 2,
  },
  target    = "rsync://localhost:${localport}/test",
  ...
}
2022-06-03 06:44:02 +02:00