Commit Graph

888 Commits

Author SHA1 Message Date
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
Daniel Poelzleithner 6e60f6b89e Call runner cleanup method when exiting through error codes 2022-06-03 06:44:02 +02:00
Daniel Poelzleithner 2b9de7d4c3 rename traceback function 2022-06-03 06:44:02 +02:00
Daniel Poelzleithner fb86124f30 Call user provideable check function 2022-06-03 06:44:01 +02:00
Daniel Poelzleithner eda846deed Add function to return a free port 2022-06-03 06:44:01 +02:00
Daniel Poelzleithner f66b7147fd Report tunnel status in status file 2022-06-03 06:44:01 +02:00
Daniel Poelzleithner c543a21162 Add function to substitude commands with placeholders 2022-06-03 06:44:01 +02:00
Daniel Poelzleithner 3d2288dccf Updates to tunnel logic.
Delay before tunnel is considered up.
Working delay if restart fails.
Disabled state.
Kill all tunnel processes on graceful exit
2022-06-03 06:44:01 +02:00
Daniel Poelzleithner f603d41c6c bump version 2022-06-03 06:44:01 +02:00
Daniel Poelzleithner 274b2b0416 [WIP] Add tunnel support 2022-06-03 06:44:01 +02:00
Daniel Poelzleithner 24ef43f5fd Add lua-crontab to dependencies 2022-06-03 06:43:43 +02:00
Daniel Poelzleithner 1796fdb71b fix manual link 2022-04-20 23:16:44 +02:00
Daniel Poelzleithner 3fae375201 only link to the releases page 2022-04-20 23:11:18 +02:00
Daniel Poelzleithner b9c459b94d update flakes 2022-04-20 23:08:29 +02:00
Daniel Poelzleithner 96725fa494 correctly install html docs when existing. build docs in nixpkg 2022-04-20 19:50:35 +02:00
Daniel Poelzleithner 0de678ab3c move docs from gh-pages into src folder to keep it easier in sync 2022-04-20 19:20:52 +02:00
Daniel Poelzleithner 2841ef8528 add .editorconfig 2022-03-11 07:12:39 +01:00
Daniel Poelzleithner a410ddebb8 Install man page to correct subfolder
fixes #655
2022-03-04 12:10:32 +01:00
Daniel Poelzleithner 8e002d64b5
Merge pull request #656 from LeonGaultier/patch-lua_version_mismatch_error_start_binary
fix error - bad binary format (version mismatch)
2022-02-28 21:12:09 +01:00
Marko Oldenburg b7d11f6b00 change header discription 2022-02-24 14:40:46 +01:00
Marko Oldenburg efa8155b68 fix error - bad binary format (version mismatch)
The problem is that the generated make files end up referencing a mix of lua versions
This patch will fix it.
2022-02-14 12:55:05 +01:00
Daniel Poelzleithner e2a27af6e7 use relative sh path 2022-01-12 20:46:41 +01:00