Backups only during a certain time frame?

I apologize if this has been covered, I tried searching and came up empty. I’m currently using the 2.0 beta and in the process of switching my friends and family over to it as i’m quite impressed so far. I was wondering if there is a way to limit it to only running during certain hours?

My parents have pretty slow internet and their initial backup is going to take forever so I’d like to be able to set it to only run during the night but it doesn’t appear there is any scheduling type of setup… as i’m typing this i’m kinda thinking maybe there’s a command line option but I don’t see anything about turning it on or off via the commandline.

1 Like

If it’s going to take" forever", why would you want to slow it down even more by running it only at night?

Defining time windows for throttling makes sense to me, especially for users with limited bandwidth. Full speed uploading at night, limited upload speed during working hours, to save bandwidth for everyday-use.

Another option could be to complete a running backup gracefully at a specific time. This could help in situations of an incidental massive change of the source (video camera upload), or a few minutes before a planned restart takes place (Windows Update).

1 Like

Like kees-z mentioned to save bandwidth for everyday usage, they split their internet with their neighbor and their phone is voip so I’d prefer not to do anything that could cause problems. It’s possible the backup won’t cause any issues but I was hoping there might be a way to schedule when Duplicati can run that I just hadn’t seen yet.

After a bit of googling i might be able to do this with PsSuspend - Windows Sysinternals | Microsoft Docs and task scheduler.

Just for others interested pssuspend seemed to work fine. I added a new folder to my own backup then suspended and unsuspended Duplicati.GUI.TrayIcon a few times during the upload it appeared to work quite well and I verified the files were uploaded just fine.

2 Likes

Thanks for the tip. Did you work out a way to schedule the suspension/resumption at certain future times?

i created a different batch files to suspend and unsuspend and then added them as a task via task scheduler. I didn’t do a ton of testing with it but in my limited testing it worked well.

It’s good to hear you’ve got a solution working for you!

Another possible option would be to use a --run-script-before-required task to check the current time which would allow you to do things like:

  • disallow the job to run
  • set %DUPLICATI__throttle_upload% and %DUPLICATI__throttle_download as appropriate for the time period

For to work as expected you’d probably need to scheduled the job to run fairly frequently, and of course it wouldn’t change settings in the middle of a run - so it’s certainly not ideal…

Just to link forum and github pages together I’ve collected all the relevant links I could find :slight_smile:

Scheduling pauses / throttle is also requested on github on #2980 and #2921 and there is even a request to have it check your if laptop is plugged into power or on a metered connection on #2115

Now we just need someone with the time to implement all these good ideas :smiley:

Yes I am also looking to allow running at certain times (backups at night)… I am using Duplicati on Linux(LUbuntu) and I wish it only to run at night. How? Help?

Until it’s baked into the Duplicati code itself the only thing you can due is play with schedules and / or use --run-script-before-required scripts to do a time check and only allow the backup to continue if it’s within your target times.

Of course I’m not really sure what sort of schedule you’re looking for. I assume that it’s not enough for you to just schedule Duplicati to run once a day starting at 9 PM, so what do you mean by “run at night”?

i am starting my initial backup, 4TB, so I was looking for Duplicati to stop (or slow down) during the daytimes and only run full power(full bandwith) at night.

Ah, so you expect backups to take longer than your nightly availability time so you want a stop, slow, or pause to happen during certain times.

For now I think the only way to do it is by using the PsSuspend tool mentioned earlier in the topic or possibly the script mentioned here: