Scheduling File Transfers
Schedule automated file transfers
MFT uses standard cron expressions to run file transfers automatically in the background, without manual triggering.
Cron format
MFT uses a 6-field cron expression:
seconds minutes hours day-of-month month day-of-week
For example, 0 0 0 * * ? runs at 0 seconds, 0 minutes, 0 hours on any day — daily at midnight.
Common schedules
You can copy these expressions directly into your MFT definitions:
Every hour
schedule: 0 0 * * * ?
Runs exactly at the top of the hour (1:00, 2:00, 3:00, and so on).
Every 15 minutes
schedule: 0 */15 * * * ?
Runs at 0, 15, 30, and 45 minutes past the hour.
Daily at midnight
schedule: 0 0 0 * * ?
Weekdays at 9 AM
schedule: 0 0 9 * * MON-FRI
Runs Monday through Friday.
Every 2 hours
schedule: 0 0 */2 * * ?
Weekly on Monday
schedule: 0 0 9 * * MON
Daily at 2 AM
schedule: 0 0 2 * * ?
Commonly used for backups outside business hours.
Special characters
Use these symbols to build custom schedules:
* (Asterisk): Matches any value. In the month field, the job runs every month.
? (Question mark): Indicates no specific value. Use it in either the day-of-month or day-of-week field when the other field specifies a value.
- (Dash): Defines a range.
schedule: 0 0 9 * * MON-FRI # Monday through Friday
, (Comma): Creates a list of specific values.
schedule: 0 0 9 * * MON,WED,FRI # Only these three days
/ (Slash): Defines an increment.
schedule: 0 */15 * * * ? # Every 15 minutes
Examples
The following examples show schedules inside complete MFT definitions.
Hourly log copy
Copying log files to storage every hour:
apiVersion: weik.io/v1alpha1
kind: MFT
metadata:
name: hourly_logs
spec:
source:
name: app_server_smb
path: logs/
destination:
name: weikio_blob
path: logs/
command: copy
filters: "*.log"
schedule: 0 0 * * * ?
Nightly database backup
Copying database dumps at 2 AM:
apiVersion: weik.io/v1alpha1
kind: MFT
metadata:
name: nightly_backup
spec:
source:
name: backup_server_smb
path: backups/database/
destination:
name: backup_s3
path: database/
command: copy
filters: "*.sql.gz"
schedule: 0 0 2 * * ?
Weekly report delivery
Moving generated reports to a partner’s SFTP server on Monday morning:
apiVersion: weik.io/v1alpha1
kind: MFT
metadata:
name: weekly_reports
spec:
source:
name: company_smb
path: reports/weekly/
destination:
name: partner_sftp
path: incoming/
command: move
filters: "report_*.csv"
schedule: 0 0 9 * * MON
Running jobs on the right agent
A scheduled job must run on an agent that can reach the source and destination systems. The requirements block tells Weik.io to select an agent with specific capabilities:
apiVersion: weik.io/v1alpha1
kind: MFT
metadata:
name: onpremise_to_cloud
spec:
source:
name: company_smb
path: data/
destination:
name: weikio_blob
path: data/
command: copy
schedule: 0 0 0 * * ?
requirements:
Location: OnPremise
Network: internal
An SMB transfer fails on a cloud agent that has no VPN access to the corporate network. By setting Location: OnPremise, the system waits for an on-premise agent to pick up the scheduled task.
Common requirement tags:
Location(e.g., OnPremise, Cloud, Edge)Network(e.g., internal, external, vpn)Environment(e.g., production, staging)
Next steps
- File Transfer Patterns - Filter, sync, and move files
- MFT Setup - Create the CoreSystems for your schedules
- Scheduled Tasks - Details on Weik.io’s scheduling engine