mirror of
https://github.com/ViViDboarder/hassio-addon-rclone.git
synced 2024-12-22 11:37:42 +00:00
Initial addition of timegaps pruning
Might want to move from two cron tasks to a single one where rclone and prune are executed sequentially
This commit is contained in:
parent
9891b6d111
commit
f678ec65b9
@ -27,6 +27,18 @@ The rclone destination in the form `<drive>:<path>`. See note above on how to se
|
|||||||
|
|
||||||
Rclone command to execute (`sync`, `copy`, or `move`)
|
Rclone command to execute (`sync`, `copy`, or `move`)
|
||||||
|
|
||||||
|
### Option: `prune.rules`
|
||||||
|
|
||||||
|
Rules for pruning backups based on time gap configuration. This is done with a tool caled [timegaps](https://gehrcke.de/timegaps/) and is optional.
|
||||||
|
|
||||||
|
### Option: `prune.cron`
|
||||||
|
|
||||||
|
Cron schedule to run the prune job. Need help? https://crontab.guru/
|
||||||
|
|
||||||
|
### Option: `prune.delete`
|
||||||
|
|
||||||
|
Rather than logging, if set to true, this will delete backups based on the rules set in `prune.rules`.
|
||||||
|
|
||||||
### Option: `credentials.username`
|
### Option: `credentials.username`
|
||||||
|
|
||||||
Username to view web UI
|
Username to view web UI
|
||||||
|
@ -6,9 +6,14 @@ ENV LANG C.UTF-8
|
|||||||
ARG BUILD_ARCH=aarch64
|
ARG BUILD_ARCH=aarch64
|
||||||
ARG VERSION=v1.55.1
|
ARG VERSION=v1.55.1
|
||||||
|
|
||||||
|
# Install rclone
|
||||||
COPY install_rclone.sh /
|
COPY install_rclone.sh /
|
||||||
RUN /install_rclone.sh "${VERSION}" "${BUILD_ARCH}"
|
RUN /install_rclone.sh "${VERSION}" "${BUILD_ARCH}"
|
||||||
|
|
||||||
|
# Add timegaps for pruning backups
|
||||||
|
RUN apk add python3=3.9.5-r2 py3-pip=20.3.4-r1
|
||||||
|
RUN pip install timegaps==0.1.1
|
||||||
|
|
||||||
ENV XDG_CONFIG_HOME=/data
|
ENV XDG_CONFIG_HOME=/data
|
||||||
|
|
||||||
COPY rootfs /
|
COPY rootfs /
|
||||||
|
@ -23,6 +23,10 @@ options:
|
|||||||
cron: "0 * * * *"
|
cron: "0 * * * *"
|
||||||
destination: "<drive>:<path>"
|
destination: "<drive>:<path>"
|
||||||
sync_command: sync
|
sync_command: sync
|
||||||
|
prune:
|
||||||
|
rules: ""
|
||||||
|
cron: ""
|
||||||
|
delete: false
|
||||||
credentials:
|
credentials:
|
||||||
username: homeassistant
|
username: homeassistant
|
||||||
password: homeassistant
|
password: homeassistant
|
||||||
@ -34,6 +38,10 @@ schema:
|
|||||||
cron: str
|
cron: str
|
||||||
destination: str
|
destination: str
|
||||||
sync_command: list(sync|copy|move)
|
sync_command: list(sync|copy|move)
|
||||||
|
prune:
|
||||||
|
rules: str
|
||||||
|
cron: str
|
||||||
|
delete: bool
|
||||||
credentials:
|
credentials:
|
||||||
username: str
|
username: str
|
||||||
password: str
|
password: str
|
||||||
|
@ -8,13 +8,13 @@ bashio::config.require.password 'credentials.password'
|
|||||||
bashio::config.suggest.true 'tls.ssl'
|
bashio::config.suggest.true 'tls.ssl'
|
||||||
bashio::config.require.ssl 'tls' 'tls.certfile' 'tls.keyfile'
|
bashio::config.require.ssl 'tls' 'tls.certfile' 'tls.keyfile'
|
||||||
|
|
||||||
sync_command=$(bashio::config 'sync_command')
|
SYNC_COMMAND=$(bashio::config 'sync_command')
|
||||||
destination=$(bashio::config 'destination')
|
DESTINATION=$(bashio::config 'destination')
|
||||||
|
|
||||||
username=$(bashio::config 'credentials.username')
|
USERNAME=$(bashio::config 'credentials.username')
|
||||||
password=$(bashio::config 'credentials.password')
|
PASSWORD=$(bashio::config 'credentials.password')
|
||||||
|
|
||||||
command="rclone rc --user \"$username\" --pass \"$password\" sync/$sync_command srcFs=/backup dstFs=$destination _async=true"
|
command="rclone rc --user \"$USERNAME\" --pass \"$PASSWORD\" sync/$SYNC_COMMAND srcFs=/backup dstFs=$DESTINATION _async=true"
|
||||||
|
|
||||||
echo "$(bashio::config 'cron') $command" > /etc/crontabs/root
|
echo "$(bashio::config 'cron') $command" >> /etc/crontabs/root
|
||||||
crontab -l
|
crontab -l
|
||||||
|
16
rclone/rootfs/etc/cont-init.d/timegaps.sh
Executable file
16
rclone/rootfs/etc/cont-init.d/timegaps.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#! /usr/bin/with-contenv bashio
|
||||||
|
|
||||||
|
bashio::log.info "Configuring pruning with timegaps..."
|
||||||
|
TIMEGAPS_RULES=$(bashio::config 'prune.rules')
|
||||||
|
TIMEGAPS_CRON=$(bashio::config 'prune.cron')
|
||||||
|
TIMEGAPS_DELETE=""
|
||||||
|
if bashio::config.true 'prune.delete'; then
|
||||||
|
TIMEGAPS_DELETE="--delete"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$TIMEGAPS_RULES" ] && [ -z "$TIMEGAPS_CRON" ]; then
|
||||||
|
COMMAND="timegaps $TIMEGAPS_DELETE $TIMEGAPS_RULES /backups/*.tar"
|
||||||
|
|
||||||
|
echo "$TIMEGAPS_CRON $COMMAND" >> /etc/crontabs/root
|
||||||
|
crontab -l
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user