Guest User

Untitled

a guest
May 11th, 2022
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.30 KB | None | 0 0
  1. [Unit]
  2. Description=RClone mount of users remote dropbox using filesystem permissions
  3. Documentation=http://rclone.org/docs/
  4. After=network-online.target
  5.  
  6.  
  7. [Service]
  8. Type=notify
  9. #Set up environment
  10. Environment=REMOTE_NAME="dropbox_app"
  11. Environment=REMOTE_PATH="/"
  12. Environment=MOUNT_DIR="/mnt/PLEX"
  13. Environment=POST_MOUNT_SCRIPT=""
  14. Environment=RCLONE_TEMP_DIR="/tmp/rclone/cache"
  15. Environment=RCLONE_RC_ON="false"
  16.  
  17. #Default arguments for rclone mount. Can be overridden in the environment file
  18. Environment=RCLONE_MOUNT_ATTR_TIMEOUT="5s"
  19. #TODO: figure out default for the following parameter
  20. Environment=RCLONE_MOUNT_DAEMON_TIMEOUT="UNKNOWN_DEFAULT"
  21. Environment=RCLONE_MOUNT_DIR_CACHE_TIME="6h0m0s"
  22. Environment=RCLONE_MOUNT_DIR_PERMS="0777"
  23. Environment=RCLONE_MOUNT_FILE_PERMS="0777"
  24. Environment=RCLONE_MOUNT_GID="998"
  25. Environment=RCLONE_MOUNT_MAX_READ_AHEAD="2G"
  26. Environment=RCLONE_MOUNT_POLL_INTERVAL="2m0s"
  27. Environment=RCLONE_MOUNT_UID="998"
  28. Environment=RCLONE_MOUNT_UMASK="0"
  29. Environment=RCLONE_MOUNT_VFS_CACHE_MAX_AGE="6h0m0s"
  30. Environment=RCLONE_MOUNT_VFS_CACHE_MAX_SIZE="300G"
  31. Environment=RCLONE_MOUNT_VFS_CACHE_MODE="writes"
  32. Environment=RCLONE_MOUNT_VFS_CACHE_POLL_INTERVAL="2m0s"
  33. Environment=RCLONE_MOUNT_VFS_READ_CHUNK_SIZE="128M"
  34. Environment=RCLONE_MOUNT_VFS_READ_CHUNK_SIZE_LIMIT="off"
  35. #TODO: figure out default for the following parameter
  36. Environment=RCLONE_MOUNT_VOLNAME="UNKNOWN_DEFAULT"
  37.  
  38. #Check that rclone is installed
  39. ExecStartPre=/usr/bin/test -x /usr/bin/rclone
  40.  
  41. #Check the mount directory
  42. ExecStartPre=/usr/bin/test -d "${MOUNT_DIR}"
  43. ExecStartPre=/usr/bin/test -w "${MOUNT_DIR}"
  44. #TODO: Add test for MOUNT_DIR being empty -> ExecStartPre=/usr/bin/test -z "$(ls -A "${MOUNT_DIR}")"
  45.  
  46. #Mount rclone fs
  47. ExecStart=/usr/bin/rclone mount \
  48. #See additional items for access control below for information about the following 2 flags
  49. --allow-other \
  50. # --default-permissions \
  51. --rc="${RCLONE_RC_ON}" \
  52. --cache-tmp-upload-path="${RCLONE_TEMP_DIR}/upload" \
  53. --cache-chunk-path="${RCLONE_TEMP_DIR}/chunks" \
  54. --cache-workers=10 \
  55. # --cache-writes \
  56. --cache-dir="${RCLONE_TEMP_DIR}/vfs" \
  57. --cache-db-path="${RCLONE_TEMP_DIR}/db" \
  58. --no-modtime \
  59. --bwlimit="500M" \
  60. --stats=0 \
  61. --checkers=10 \
  62. --cache-info-age=60m \
  63. --attr-timeout="${RCLONE_MOUNT_ATTR_TIMEOUT}" \
  64. --tpslimit=10 \
  65. --retries=3 \
  66. --retries-sleep="30s" \
  67. --size-only \
  68. --cache-db-purge \
  69. #TODO: Include this once a proper default value is determined
  70. # --daemon-timeout="${RCLONE_MOUNT_DAEMON_TIMEOUT}" \
  71. --dir-cache-time="${RCLONE_MOUNT_DIR_CACHE_TIME}" \
  72. --dir-perms="${RCLONE_MOUNT_DIR_PERMS}" \
  73. --file-perms="${RCLONE_MOUNT_FILE_PERMS}" \
  74. --gid="${RCLONE_MOUNT_GID}" \
  75. --max-read-ahead="${RCLONE_MOUNT_MAX_READ_AHEAD}" \
  76. --poll-interval="${RCLONE_MOUNT_POLL_INTERVAL}" \
  77. --uid="${RCLONE_MOUNT_UID}" \
  78. --umask="${RCLONE_MOUNT_UMASK}" \
  79. --buffer-size="1G" \
  80. --dropbox-batch-mode=sync \
  81. --dropbox-batch-size=10 \
  82. --transfers=10 \
  83. --dropbox-chunk-size=64M \
  84. --dropbox-batch-timeout="30s" \
  85. --dropbox-batch-commit-timeout=12h0m0s \
  86. --vfs-cache-max-age="${RCLONE_MOUNT_VFS_CACHE_MAX_AGE}" \
  87. --vfs-cache-max-size="${RCLONE_MOUNT_VFS_CACHE_MAX_SIZE}" \
  88. --vfs-cache-mode="${RCLONE_MOUNT_VFS_CACHE_MODE}" \
  89. --vfs-cache-poll-interval="${RCLONE_MOUNT_VFS_CACHE_POLL_INTERVAL}" \
  90. --vfs-read-chunk-size="${RCLONE_MOUNT_VFS_READ_CHUNK_SIZE}" \
  91. --vfs-read-chunk-size-limit="${RCLONE_MOUNT_VFS_READ_CHUNK_SIZE_LIMIT}" \
  92. #TODO: Include this once a proper default value is determined
  93. # --volname="${RCLONE_MOUNT_VOLNAME}"
  94. "${REMOTE_NAME}:${REMOTE_PATH}" "${MOUNT_DIR}"
  95.  
  96. #Execute Post Mount Script if specified
  97. ExecStartPost=/bin/sh -c "${POST_MOUNT_SCRIPT}"
  98.  
  99. #Unmount rclone fs
  100. ExecStop=/bin/fusermount -u "${MOUNT_DIR}"
  101. ExecStop=umount "${MOUNT_DIR}"
  102.  
  103. #Restart info
  104. Restart=always
  105. RestartSec=10
  106.  
  107. [Install]
  108. WantedBy=default.target
  109.  
Advertisement
Add Comment
Please, Sign In to add comment