Schedule Batch Jobs
- Create a new batch job via FreeFileSync's main dialog: Menu → File → Save as a batch job...
- By default, FreeFileSync will show a progress dialog during synchronization and
will wait while the summary dialog is shown.
If the progress dialog is not needed, enable checkbox Run minimized and
also set Auto-Close if you want to skip the summary dialog at the end.
Note
Even if the progress dialog is not shown at the beginning, you can make it visible at any
time during synchronization by double-clicking the FreeFileSync icon in the notification area.
- If you don't want error or warning messages to stall synchronization when no user is available to respond,
either check Ignore errors or set Cancel to stop the synchronization at the first error.
- The FreeFileSync batch job can be started by double-clicking on the
ffs_batch file or
it can be set up in your operating system's scheduler:
Note
Be sure to enable Auto-Close and Ignore errors/Cancel if you schedule the ffs_batch file
to run under a different user account. With no one there to close the results dialog manually,
the task would hang indefinitely.
Windows: Task Scheduler
- Open the Task Scheduler either via the start menu, or enter taskschd.msc in the run dialog (keyboard shortcut: Windows + R).
- Create a new basic task and follow the wizard.
- Make Program/script point to the location of FreeFileSync.exe and insert the
ffs_batch file into Add arguments.
- Use quotation marks to protect spaces in path names, e.g. "D:\Backup Projects.ffs_batch"
Note
- Program/script always needs to point to an executable file like FreeFileSync.exe even
when the ffs_batch file association is registered.
If an ffs_batch file was entered instead, the task would return with
error code 2147942593 (0x800700C1), "%1 is not a valid Win32 application".
- If you schedule FreeFileSync to run under a different user account, note that the configuration file
GlobalSettings.xml will also be read from a different path,
C:\Users\<username>\AppData\Roaming\FreeFileSync,
or in the case of the SYSTEM account from
C:\Windows\System32\config\systemprofile\AppData\Roaming\FreeFileSync.
You can force usage of a particular GlobalSettings.xml file by passing
it as a Command Line parameter.
macOS: Automator and Calendar
- Open Launchpad and run Automator.

- Create a new Calendar Alarm.

- Drag and drop the ffs_batch file on the workflow panel.

- Double-click Actions / Files & Folders / Open Finder Items to add it to the workflow.

- Go to File → Save... and save the Automator job.

- The Calendar app will start automatically with the Automator job scheduled to the current day. You can now select a different time for synchronization or make it a recurring task.
Linux/macOS: Cron Job
Cron executes arbitrary command lines repeatedly at given intervals.
To schedule a FreeFileSync batch job,
construct a command line for cron consisting of the path to the FreeFileSync executable
followed by the path to the FreeFileSync batch job, e.g.
/opt/FreeFileSync/FreeFileSync "/home/zenju/Backup Projects.ffs_batch"
macOS: The executable is located inside the application package,
e.g. for an all-users installation:
/Applications/FreeFileSync.app/Contents/MacOS/FreeFileSync
Open cron's table of scheduled jobs for editing:
Note
Cron might use a text editor you are not familiar with.
A different editor can be selected via the "
EDITOR" environment variable,
e.g.
nano, or
gedit:
Example: Start crontab using the nano text editor
Each ctrontab line begins with conditions for recurring execution of the command line that follows.
Cron's basic concept is to run a command
every minute unless
limits are applied:
To run only
every hour, the
minute must be fixed:
# | minute | hour | day of month | month | day of week |
| 0 | * | * | * | * |
To run once
every day, set both
minute and hour; e.g. run daily at 17:00:
# | minute | hour | day of month | month | day of week |
| 0 | 17 | * | * | * |
Multiple items are separated by "
,",
ranges specified using "
-",
and interval steps by "
/".
# | minute | hour | day of month | month | day of week |
| */10 | 9-17 | * | * | mon,fri |
Example: Run every 10 minutes but only fom 9:00 to 17:00 and only on Monday and Friday
To run once after each
system startup, use alternative syntax "
@reboot":
@reboot sleep 60; /opt/FreeFileSync/FreeFileSync "/home/zenju/Backup Projects.ffs_batch"
Example: Start synchronization 60 seconds after system reboot