Below prior link has a description from the likely original developer that goes beyond what manual has:
path separated list (using ;
on Windows and :
on others).
I doubt it’s possible to repeat, but I also doubt there is a limit (except maybe memory, if you have little). Processing of the parameter file probably is all Duplicati and C# code, which I think tends to have few hardcoded limitations, unlike the plan of passing enormous length to command startup which may hit:
Is there a maximum length for a shell script command?
How long can the command line be? (looks really old, but the point is that argument length has a limit)
I’m not sure it does, so good question about operation ordering that might require the file list to be in the parameters file before the job run, which means --run-script-before run time may be late. If all else fails, building file list could be done outside of Duplicati, then read in either by CLI start or (ugly) proper timing.
Another timing point – earlier recipe glossed over this, but you want to be able to handle a failed backup somehow, because the design involves moving a time marker of some sort saying that backup handled everything up to that point (and maybe a bit beyond because backup is not instant). Need to ensure that. Rolling the time marker back on failure would be awkward, but not moving it forward until good is easier:
Say the time of last backup is start of Monday for 1 hour. Tuesday starts another just for files newer than start of Monday. Some might have been between 12 AM and 1 AM and backed up already. No problem…
If Tuesday backup fails and nothing is done to reset the time marker, Wednesday will start at Tuesday so backup of the last 23 hours of Monday will have been missed. Solution may be to define the time marker from a time point of view before the backup, but not actually put it in effect until after a successful backup. Putting a file-based time in effect can be done using mv
rename which leaves the modification time alone.
Scripting options
run-script-example.sh
It seems like there ought to be some way to stitch this together, but clearly it’s not completely trivial to get.
EDIT:
might be a way to set the --changed-files without worrying about whether --parameters-file is read again.