Sign inSign up

xorguy/rclone-cron

By xorguy

Updated about 4 years ago

ARMv7 fork from pfidr/rclone

Image
0

485

xorguy/rclone-cron repository overview

ARMv7 version of: https://hub.docker.com/r/pfidr/rclone

Docker image to perform a rclone sync based on a cron schedule, with healthchecks.io monitoring.

rclone is a command line program to sync files and directories to and from:

Google Drive Amazon S3 Openstack Swift / Rackspace cloud files / Memset Memstore Dropbox Google Cloud Storage Amazon Drive Microsoft OneDrive Hubic Backblaze B2 Yandex Disk SFTP FTP HTTP The local filesystem

Usage

Configure rclone

rclone needs a configuration file where credentials to access different storage provider are kept.

By default, this image uses a file /config/rclone.conf and a mounted volume may be used to keep that information persisted.

A first run of the container can help in the creation of the file, but feel free to manually create one.

$ mkdir config $ docker run --rm -it -v $(pwd)/config:/config pfidr/rclone Perform sync in a daily basis

A few environment variables allow you to customize the behavior of rclone:

SYNC_SRC source location for rclone sync/copy/move command. Directories with spaces should be wrapped in single quotes. SYNC_DEST destination location for rclone sync/copy/move command. Directories with spaces should be wrapped in single quotes. SYNC_OPTS additional options for rclone sync/copy/move command. Defaults to -v SYNC_OPTS_EVAL further additional options for rclone sync/copy/move command. The variables and commands in the string are first interpolated like in a shell. The interpolated string is appended to SYNC_OPTS. That means '--backup-dir /olddate -I' first evaluates to '--backup-dir /old2019-09-12', which is then appended to SYNC_OPTS. The evaluation happens immediately before rclone is called. SYNC_ONCE set variable to only run the sync one time and then exit the container RCLONE_CMD set variable to sync copy or move when running rclone. Defaults to sync RCLONE_DIR_CMD set variable to ls or lsf for source directory check style. Defaults to ls RCLONE_DIR_CMD_DEPTH set the limit of the recursion depth to this. Defaults to -1 (rclone default) RCLONE_DIR_CHECK_SKIP set variable to skip source directory check before sync. Use with caution CRON crontab schedule 0 0 * * * to perform sync every midnight. Also supprorts cron shortcuts: @yearly @monthly @weekly @daily @hourly CRON_ABORT crontab schedule 0 6 * * * to abort sync at 6am FORCE_SYNC set variable to perform a sync upon boot CHECK_URL healthchecks.io url or similar cron monitoring to perform a GET after a successful sync FAIL_URL Fail URL to perform a GET after unsuccessful execution. By default this is CHECK_URL with appended "/fail" at the end HC_LOG set variable to send log data to healthchecks.io. OUTPUT_LOG must also be set. OUTPUT_LOG set variable to output log file to /logs ROTATE_LOG set variable to delete logs older than specified days from /logs TZ set the timezone to use for the cron and log America/Chicago UID set variable to specify user to run rclone as. Must also use GID. GID set variable to specify group to run rclone as. Must also use UID. When using UID/GID the config and/or logs directory must be writeable by this UID

$ docker run --rm -it -v $(pwd)/config:/config -v /path/to/source:/source -e SYNC_SRC="/source" -e SYNC_DEST="dest:path" -e TZ="America/Chicago" -e CRON="0 0 * * *" -e CRON_ABORT="0 6 * * *" -e FORCE_SYNC=1 -e CHECK_URL=https://hchk.io/hchk_uuid pfidr/rclone See rclone sync docs for source/dest syntax and additional options.

Tag summary

Content type

Image

Digest

sha256:7125db401

Size

17.9 MB

Last updated

about 4 years ago

docker pull xorguy/rclone-cron:1.58.0