Jump to content

arizonaslim

Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by arizonaslim

  1. I keep getting this error when i run the rclone_mount script. Ive kept all naming conventions the same as in the guide

     

    Full logs for this script are available at /tmp/user.scripts/tmpScripts/rclone_mount/log.txt

    02.09.2020 14:07:30 INFO: Creating local folders.
    02.09.2020 14:07:30 INFO: *** Starting mount of remote gdrive_vfs
    02.09.2020 14:07:30 INFO: Checking if this script is already running.
    02.09.2020 14:07:30 INFO: Script not running - proceeding.
    02.09.2020 14:07:30 INFO: *** Checking if online
    02.09.2020 14:07:32 PASSED: *** Internet online
    02.09.2020 14:07:32 INFO: Mount not running. Will now mount gdrive_vfs remote.
    02.09.2020 14:07:32 INFO: Recreating mountcheck file for gdrive_vfs remote.
    2020/09/02 14:07:32 DEBUG : rclone: Version "v1.53.0" starting with parameters ["rcloneorig" "--config" "/boot/config/plugins/rclone/.rclone.conf" "copy" "mountcheck" "gdrive_vfs:" "-vv" "--no-traverse"]
    2020/09/02 14:07:32 DEBUG : Creating backend with remote "mountcheck"
    2020/09/02 14:07:32 DEBUG : Using config file from "/boot/config/plugins/rclone/.rclone.conf"
    2020/09/02 14:07:32 DEBUG : fs cache: adding new entry for parent of "mountcheck", "/usr/local/emhttp"
    2020/09/02 14:07:32 DEBUG : Creating backend with remote "gdrive_vfs:"
    2020/09/02 14:07:32 Failed to create file system for "gdrive_vfs:": didn't find section in config file
    02.09.2020 14:07:32 INFO: *** Creating mount for remote gdrive_vfs
    02.09.2020 14:07:32 INFO: sleeping for 5 seconds
    2020/09/02 14:07:32 Failed to create file system for "gdrive_vfs:": didn't find section in config file
    02.09.2020 14:07:37 INFO: continuing...
    02.09.2020 14:07:37 CRITICAL: gdrive_vfs mount failed - please check for problems.  Stopping dockers
    binhex-sabnzbd
    binhex-radarr
    binhex-sonarr
    plex
    tautulli
    Script Finished Sep 02, 2020  14:09.53

     

     

    Heres my mout script

    #!/bin/bash

    ######################
    #### Mount Script ####
    ######################
    ### Version 0.96.7 ###
    ######################

    ####### EDIT ONLY THESE SETTINGS #######

    # INSTRUCTIONS
    # 1. Change the name of the rclone remote and shares to match your setup
    # 2. NOTE: enter RcloneRemoteName WITHOUT ':'
    # 3. Optional: include custom command and bind mount settings
    # 4. Optional: include extra folders in mergerfs mount

    # REQUIRED SETTINGS
    RcloneRemoteName="gdrive_vfs" # Name of rclone remote mount WITHOUT ':'. NOTE: Choose your encrypted remote for sensitive data
    RcloneMountShare="/mnt/user/mount_rclone" # where your rclone remote will be located without trailing slash  e.g. /mnt/user/mount_rclone
    LocalFilesShare="/mnt/user/local" # location of the local files and MountFolders you want to upload without trailing slash to rclone e.g. /mnt/user/local. Enter 'ignore' to disable
    MergerfsMountShare="/mnt/user/mount_mergerfs" # location without trailing slash  e.g. /mnt/user/mount_mergerfs. Enter 'ignore' to disable
    DockerStart="binhex-sabnzbd binhex-radarr binhex-sonarr plex tautulli" # list of dockers, separated by space, to start once mergerfs mount verified. Remember to disable AUTOSTART for dockers added in docker settings page
    MountFolders=\{"downloads/complete,downloads/intermediate,downloads/seeds,movies,tv"\} # comma separated list of folders to create within the mount

    # Note: Again - remember to NOT use ':' in your remote name above

    # OPTIONAL SETTINGS

    # Add extra paths to mergerfs mount in addition to LocalFilesShare
    LocalFilesShare2="ignore" # without trailing slash e.g. /mnt/user/other__remote_mount/or_other_local_folder.  Enter 'ignore' to disable
    LocalFilesShare3="ignore"
    LocalFilesShare4="ignore"

    # Add extra commands or filters
    Command1="--rc"
    Command2=""
    Command3=""
    Command4=""
    Command5=""
    Command6=""
    Command7=""
    Command8=""

    CreateBindMount="N" # Y/N. Choose whether to bind traffic to a particular network adapter
    RCloneMountIP="192.168.1.252" # My unraid IP is 172.30.12.2 so I create another similar IP address
    NetworkAdapter="eth0" # choose your network adapter. eth0 recommended
    VirtualIPNumber="2" # creates eth0:x e.g. eth0:1.  I create a unique virtual IP addresses for each mount & upload so I can monitor and traffic shape for each of them

    ####### END SETTINGS #######

    ###############################################################################
    #####   DO NOT EDIT ANYTHING BELOW UNLESS YOU KNOW WHAT YOU ARE DOING   #######
    ###############################################################################

    ####### Preparing mount location variables #######
    RcloneMountLocation="$RcloneMountShare/$RcloneRemoteName" # Location for rclone mount
    LocalFilesLocation="$LocalFilesShare/$RcloneRemoteName" # Location for local files to be merged with rclone mount
    MergerFSMountLocation="$MergerfsMountShare/$RcloneRemoteName" # Rclone data folder location

    ####### create directories for rclone mount and mergerfs mounts #######
    mkdir -p /mnt/user/appdata/other/rclone/remotes/$RcloneRemoteName #for script files
    if [[  $LocalFileShare == 'ignore' ]]; then
        echo "$(date "+%d.%m.%Y %T") INFO: Not creating local folders as requested."
    else
        echo "$(date "+%d.%m.%Y %T") INFO: Creating local folders."
        eval mkdir -p $LocalFilesLocation/"$MountFolders"
    fi
    mkdir -p $RcloneMountLocation
    mkdir -p $MergerFSMountLocation

    #######  Check if script is already running  #######
    echo "$(date "+%d.%m.%Y %T") INFO: *** Starting mount of remote ${RcloneRemoteName}"
    echo "$(date "+%d.%m.%Y %T") INFO: Checking if this script is already running."
    if [[ -f "/mnt/user/appdata/other/rclone/remotes/$RcloneRemoteName/mount_running" ]]; then
        echo "$(date "+%d.%m.%Y %T") INFO: Exiting script as already running."
        exit
    else
        echo "$(date "+%d.%m.%Y %T") INFO: Script not running - proceeding."
        touch /mnt/user/appdata/other/rclone/remotes/$RcloneRemoteName/mount_running
    fi

    ####### Checking have connectivity #######

    echo "$(date "+%d.%m.%Y %T") INFO: *** Checking if online"
    ping -q -c2 google.com > /dev/null # -q quiet, -c number of pings to perform
    if [ $? -eq 0 ]; then # ping returns exit status 0 if successful
        echo "$(date "+%d.%m.%Y %T") PASSED: *** Internet online"
    else
        echo "$(date "+%d.%m.%Y %T") FAIL: *** No connectivity.  Will try again on next run"
        rm /mnt/user/appdata/other/rclone/remotes/$RcloneRemoteName/mount_running
        exit
    fi

    #######  Create Rclone Mount  #######

    # Check If Rclone Mount Already Created
    if [[ -f "$RcloneMountLocation/mountcheck" ]]; then
        echo "$(date "+%d.%m.%Y %T") INFO: Success ${RcloneRemoteName} remote is already mounted."
    else
        echo "$(date "+%d.%m.%Y %T") INFO: Mount not running. Will now mount ${RcloneRemoteName} remote."
    # Creating mountcheck file in case it doesn't already exist
        echo "$(date "+%d.%m.%Y %T") INFO: Recreating mountcheck file for ${RcloneRemoteName} remote."
        touch mountcheck
        rclone copy mountcheck $RcloneRemoteName: -vv --no-traverse
    # Check bind option
        if [[  $CreateBindMount == 'Y' ]]; then
            echo "$(date "+%d.%m.%Y %T") INFO: *** Checking if IP address ${RCloneMountIP} already created for remote ${RcloneRemoteName}"
            ping -q -c2 $RCloneMountIP > /dev/null # -q quiet, -c number of pings to perform
            if [ $? -eq 0 ]; then # ping returns exit status 0 if successful
                echo "$(date "+%d.%m.%Y %T") INFO: *** IP address ${RCloneMountIP} already created for remote ${RcloneRemoteName}"
            else
                echo "$(date "+%d.%m.%Y %T") INFO: *** Creating IP address ${RCloneMountIP} for remote ${RcloneRemoteName}"
                ip addr add $RCloneMountIP/24 dev $NetworkAdapter label $NetworkAdapter:$VirtualIPNumber
            fi
            echo "$(date "+%d.%m.%Y %T") INFO: *** Created bind mount ${RCloneMountIP} for remote ${RcloneRemoteName}"
        else
            RCloneMountIP=""
            echo "$(date "+%d.%m.%Y %T") INFO: *** Creating mount for remote ${RcloneRemoteName}"
        fi
    # create rclone mount
        rclone mount \
        --allow-other \
        --buffer-size 256M \
        --dir-cache-time 720h \
        --drive-chunk-size 512M \
        --log-level INFO \
        --vfs-read-chunk-size 128M \
        --vfs-read-chunk-size-limit off \
        --vfs-cache-mode writes \
        --bind=$RCloneMountIP \
        $RcloneRemoteName: $RcloneMountLocation &

    # Check if Mount Successful
        echo "$(date "+%d.%m.%Y %T") INFO: sleeping for 5 seconds"
    # slight pause to give mount time to finalise
        sleep 5
        echo "$(date "+%d.%m.%Y %T") INFO: continuing..."
        if [[ -f "$RcloneMountLocation/mountcheck" ]]; then
            echo "$(date "+%d.%m.%Y %T") INFO: Successful mount of ${RcloneRemoteName} mount."
        else
            echo "$(date "+%d.%m.%Y %T") CRITICAL: ${RcloneRemoteName} mount failed - please check for problems.  Stopping dockers"
            docker stop $DockerStart
            rm /mnt/user/appdata/other/rclone/remotes/$RcloneRemoteName/mount_running
            exit
        fi
    fi

    ####### Start MergerFS Mount #######

    if [[  $MergerfsMountShare == 'ignore' ]]; then
        echo "$(date "+%d.%m.%Y %T") INFO: Not creating mergerfs mount as requested."
    else
        if [[ -f "$MergerFSMountLocation/mountcheck" ]]; then
            echo "$(date "+%d.%m.%Y %T") INFO: Check successful, ${RcloneRemoteName} mergerfs mount in place."
        else
    # check if mergerfs already installed
            if [[ -f "/bin/mergerfs" ]]; then
                echo "$(date "+%d.%m.%Y %T") INFO: Mergerfs already installed, proceeding to create mergerfs mount"
            else
    # Build mergerfs binary
                echo "$(date "+%d.%m.%Y %T") INFO: Mergerfs not installed - installing now."
                mkdir -p /mnt/user/appdata/other/rclone/mergerfs
                docker run -v /mnt/user/appdata/other/rclone/mergerfs:/build --rm trapexit/mergerfs-static-build
                mv /mnt/user/appdata/other/rclone/mergerfs/mergerfs /bin
    # check if mergerfs install successful
                echo "$(date "+%d.%m.%Y %T") INFO: *sleeping for 5 seconds"
                sleep 5
                if [[ -f "/bin/mergerfs" ]]; then
                    echo "$(date "+%d.%m.%Y %T") INFO: Mergerfs installed successfully, proceeding to create mergerfs mount."
                else
                    echo "$(date "+%d.%m.%Y %T") ERROR: Mergerfs not installed successfully.  Please check for errors.  Exiting."
                    rm /mnt/user/appdata/other/rclone/remotes/$RcloneRemoteName/mount_running
                    exit
                fi
            fi
    # Create mergerfs mount
            echo "$(date "+%d.%m.%Y %T") INFO: Creating ${RcloneRemoteName} mergerfs mount."
    # Extra Mergerfs folders
            if [[  $LocalFilesShare2 != 'ignore' ]]; then
                echo "$(date "+%d.%m.%Y %T") INFO: Adding ${LocalFilesShare2} to ${RcloneRemoteName} mergerfs mount."
                LocalFilesShare2=":$LocalFilesShare2"
            else
                LocalFilesShare2=""
            fi
            if [[  $LocalFilesShare3 != 'ignore' ]]; then
                echo "$(date "+%d.%m.%Y %T") INFO: Adding ${LocalFilesShare3} to ${RcloneRemoteName} mergerfs mount."
                LocalFilesShare3=":$LocalFilesShare3"
            else
                LocalFilesShare3=""
            fi
            if [[  $LocalFilesShare4 != 'ignore' ]]; then
                echo "$(date "+%d.%m.%Y %T") INFO: Adding ${LocalFilesShare4} to ${RcloneRemoteName} mergerfs mount."
                LocalFilesShare4=":$LocalFilesShare4"
            else
                LocalFilesShare4=""
            fi
    # make sure mergerfs mount point is empty
            mv $MergerFSMountLocation $LocalFilesLocation
            mkdir -p $MergerFSMountLocation
    # mergerfs mount command
            mergerfs $LocalFilesLocation:$RcloneMountLocation$LocalFilesShare2$LocalFilesShare3$LocalFilesShare4 $MergerFSMountLocation -o rw,async_read=false,use_ino,allow_other,func.getattr=newest,category.action=all,category.create=ff,cache.files=partial,dropcacheonclose=true
    # check if mergerfs mount successful
            echo "$(date "+%d.%m.%Y %T") INFO: Checking if ${RcloneRemoteName} mergerfs mount created."
            if [[ -f "$MergerFSMountLocation/mountcheck" ]]; then
                echo "$(date "+%d.%m.%Y %T") INFO: Check successful, ${RcloneRemoteName} mergerfs mount created."
            else
                echo "$(date "+%d.%m.%Y %T") CRITICAL: ${RcloneRemoteName} mergerfs mount failed.  Stopping dockers."
                docker stop $DockerStart
                rm /mnt/user/appdata/other/rclone/remotes/$RcloneRemoteName/mount_running
                exit
            fi
        fi
    fi

    ####### Starting Dockers That Need Mergerfs Mount To Work Properly #######

    # only start dockers once
    if [[ -f "/mnt/user/appdata/other/rclone/remotes/$RcloneRemoteName/dockers_started" ]]; then
        echo "$(date "+%d.%m.%Y %T") INFO: dockers already started."
    else
        touch /mnt/user/appdata/other/rclone/remotes/$RcloneRemoteName/dockers_started
        echo "$(date "+%d.%m.%Y %T") INFO: Starting dockers."
        docker start $DockerStart
    fi

    rm /mnt/user/appdata/other/rclone/remotes/$RcloneRemoteName/mount_running
    echo "$(date "+%d.%m.%Y %T") INFO: Script complete"

    exit

     

     

    Will someone kindly tell me where I'm screwing up.

    Thanks in advsance

     

×
×
  • Create New...