Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [Unit]
- Description=RClone mount of users remote dropbox using filesystem permissions
- Documentation=http://rclone.org/docs/
- After=network-online.target
- [Service]
- Type=notify
- #Set up environment
- Environment=REMOTE_NAME="dropbox_app"
- Environment=REMOTE_PATH="/"
- Environment=MOUNT_DIR="/mnt/PLEX"
- Environment=POST_MOUNT_SCRIPT=""
- Environment=RCLONE_TEMP_DIR="/tmp/rclone/cache"
- Environment=RCLONE_RC_ON="false"
- #Default arguments for rclone mount. Can be overridden in the environment file
- Environment=RCLONE_MOUNT_ATTR_TIMEOUT="5s"
- #TODO: figure out default for the following parameter
- Environment=RCLONE_MOUNT_DAEMON_TIMEOUT="UNKNOWN_DEFAULT"
- Environment=RCLONE_MOUNT_DIR_CACHE_TIME="6h0m0s"
- Environment=RCLONE_MOUNT_DIR_PERMS="0777"
- Environment=RCLONE_MOUNT_FILE_PERMS="0777"
- Environment=RCLONE_MOUNT_GID="998"
- Environment=RCLONE_MOUNT_MAX_READ_AHEAD="2G"
- Environment=RCLONE_MOUNT_POLL_INTERVAL="2m0s"
- Environment=RCLONE_MOUNT_UID="998"
- Environment=RCLONE_MOUNT_UMASK="0"
- Environment=RCLONE_MOUNT_VFS_CACHE_MAX_AGE="6h0m0s"
- Environment=RCLONE_MOUNT_VFS_CACHE_MAX_SIZE="300G"
- Environment=RCLONE_MOUNT_VFS_CACHE_MODE="writes"
- Environment=RCLONE_MOUNT_VFS_CACHE_POLL_INTERVAL="2m0s"
- Environment=RCLONE_MOUNT_VFS_READ_CHUNK_SIZE="128M"
- Environment=RCLONE_MOUNT_VFS_READ_CHUNK_SIZE_LIMIT="off"
- #TODO: figure out default for the following parameter
- Environment=RCLONE_MOUNT_VOLNAME="UNKNOWN_DEFAULT"
- #Check that rclone is installed
- ExecStartPre=/usr/bin/test -x /usr/bin/rclone
- #Check the mount directory
- ExecStartPre=/usr/bin/test -d "${MOUNT_DIR}"
- ExecStartPre=/usr/bin/test -w "${MOUNT_DIR}"
- #TODO: Add test for MOUNT_DIR being empty -> ExecStartPre=/usr/bin/test -z "$(ls -A "${MOUNT_DIR}")"
- #Mount rclone fs
- ExecStart=/usr/bin/rclone mount \
- #See additional items for access control below for information about the following 2 flags
- --allow-other \
- # --default-permissions \
- --rc="${RCLONE_RC_ON}" \
- --cache-tmp-upload-path="${RCLONE_TEMP_DIR}/upload" \
- --cache-chunk-path="${RCLONE_TEMP_DIR}/chunks" \
- --cache-workers=10 \
- # --cache-writes \
- --cache-dir="${RCLONE_TEMP_DIR}/vfs" \
- --cache-db-path="${RCLONE_TEMP_DIR}/db" \
- --no-modtime \
- --bwlimit="500M" \
- --stats=0 \
- --checkers=10 \
- --cache-info-age=60m \
- --attr-timeout="${RCLONE_MOUNT_ATTR_TIMEOUT}" \
- --tpslimit=10 \
- --retries=3 \
- --retries-sleep="30s" \
- --size-only \
- --cache-db-purge \
- #TODO: Include this once a proper default value is determined
- # --daemon-timeout="${RCLONE_MOUNT_DAEMON_TIMEOUT}" \
- --dir-cache-time="${RCLONE_MOUNT_DIR_CACHE_TIME}" \
- --dir-perms="${RCLONE_MOUNT_DIR_PERMS}" \
- --file-perms="${RCLONE_MOUNT_FILE_PERMS}" \
- --gid="${RCLONE_MOUNT_GID}" \
- --max-read-ahead="${RCLONE_MOUNT_MAX_READ_AHEAD}" \
- --poll-interval="${RCLONE_MOUNT_POLL_INTERVAL}" \
- --uid="${RCLONE_MOUNT_UID}" \
- --umask="${RCLONE_MOUNT_UMASK}" \
- --buffer-size="1G" \
- --dropbox-batch-mode=sync \
- --dropbox-batch-size=10 \
- --transfers=10 \
- --dropbox-chunk-size=64M \
- --dropbox-batch-timeout="30s" \
- --dropbox-batch-commit-timeout=12h0m0s \
- --vfs-cache-max-age="${RCLONE_MOUNT_VFS_CACHE_MAX_AGE}" \
- --vfs-cache-max-size="${RCLONE_MOUNT_VFS_CACHE_MAX_SIZE}" \
- --vfs-cache-mode="${RCLONE_MOUNT_VFS_CACHE_MODE}" \
- --vfs-cache-poll-interval="${RCLONE_MOUNT_VFS_CACHE_POLL_INTERVAL}" \
- --vfs-read-chunk-size="${RCLONE_MOUNT_VFS_READ_CHUNK_SIZE}" \
- --vfs-read-chunk-size-limit="${RCLONE_MOUNT_VFS_READ_CHUNK_SIZE_LIMIT}" \
- #TODO: Include this once a proper default value is determined
- # --volname="${RCLONE_MOUNT_VOLNAME}"
- "${REMOTE_NAME}:${REMOTE_PATH}" "${MOUNT_DIR}"
- #Execute Post Mount Script if specified
- ExecStartPost=/bin/sh -c "${POST_MOUNT_SCRIPT}"
- #Unmount rclone fs
- ExecStop=/bin/fusermount -u "${MOUNT_DIR}"
- ExecStop=umount "${MOUNT_DIR}"
- #Restart info
- Restart=always
- RestartSec=10
- [Install]
- WantedBy=default.target
Advertisement
Add Comment
Please, Sign In to add comment