#!/bin/bash prog="$0" while [ -h "${prog}" ]; do newProg=`/bin/ls -ld "${prog}"` newProg=`expr "${newProg}" : ".* -> \(.*\)$"` if expr "x${newProg}" : 'x/' >/dev/null; then prog="${newProg}" else progdir=`dirname "${prog}"` prog="${progdir}/${newProg}" fi done progdir=`dirname "${prog}"` cd "${progdir}" progdir=$(pwd) num=$(mount |grep "/external"|wc -l) if [ $num -lt 1 ]; then mkdir -p external >/dev/null 2>&1 mount -o bind,shared emby.external external echo "mount emby.external to external to mark shared" fi mkdir -p external/rclone.media rclone.cache chmod 777 external/rclone.media rclone.cache url=$(cat rclone.conf |grep -E "^url"|sed -e 's/.*\(http.*\)/\1/'|head -1) echo "webdav url:$url" mkdir -p ${progdir}/emby.tmp chmod 777 ${progdir}/emby.tmp export TMPDIR=${progdir}/emby.tmp if [ "$SELFIP" == "" ]; then interface=$(ip route show | grep default | awk '{print $5}') export SELFIP=$(ip addr show $interface | grep -w inet | awk '{print $2}' | cut -d/ -f1|head -1) echo "DETECT SELF IP:${SELFIP}, if this is not correct, change SELFIP to your real ip" fi curl -v -L $url if [ $? -eq 0 ]; then echo "WARN:webdavsim is running, data may be outdate." else echo "run webdavsim..." chmod u+x tmuxrunwebdavsim.sh tmux -V if [ $? -eq 0 ]; then ./tmuxrunwebdavsim.sh else nohup ./runwebdavsim.sh >/dev/null 2>&1 & fi fi echo "TRY CONNECT webdavsim, please wait... abount(30s)" webdavsimok="0" for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 do echo "loop: $i" curl -v -L $url if [ $? -eq 0 ]; then webdavsimok="1" break fi echo "found error, sleep 3s, and retry..." sleep 3 done num=$(ps -ef|grep "rclone --config"|grep -v grep|wc -l) if [ $num -gt 1 ]; then echo "more than 1 run, exit myself." exit fi if [ "$webdavsimok" != "1" ]; then echo "webdavsim not run, exit" exit fi echo "ready to rclone mount, please wait...(abount 60s)" #rclone --config rclone.conf mount webdavsim-nas:/dav external/rclone.media --daemon --daemon-wait 60s --no-check-certificate --allow-other --umask 000 --default-permissions --dir-cache-time 1h --webdav-vendor rclone --vfs-cache-mode writes --vfs-read-chunk-size 32M --vfs-read-chunk-size-limit 1G --buffer-size 64M --vfs-cache-max-age 1h --vfs-cache-max-size 10G --timeout 1800s --contimeout 10s --daemon-timeout 300s --poll-interval 10s --low-level-retries 2 --cache-dir rclone.cache --log-file rclone.log rclone --config rclone.conf mount webdavsim-nas:/dav external/rclone.media --daemon --daemon-wait 60s --no-check-certificate --allow-other --umask 000 --default-permissions --dir-cache-time 1h --webdav-vendor rclone --vfs-cache-mode off --timeout 1800s --contimeout 10s --daemon-timeout 300s --poll-interval 10s --low-level-retries 2 --log-file rclone.log echo "mount ok" interface=$(ip route show | grep default | awk '{print $5}') SELFIP=$(ip addr show $interface | grep -w inet | awk '{print $2}' | cut -d/ -f1|head -1) echo "DETECT SELF IP:${SELFIP}, if this is not correct, change SELFIP to your real ip" if [ "$SELFIP" != "" ]; then if [ ! -e config.selfip.modified.dat ]; then if [ -e emby.config/config/system.xml ]; then touch config.selfip.modified.dat echo "auto change embysim's selfip to $SELFIP, please restart embysim" sed -i -e "//{:a;N;/<\/LocalNetworkAddresses>/!ba;s/.*<\/LocalNetworkAddresses>/$SELFIP<\/string><\/LocalNetworkAddresses>/}" emby.config/config/system.xml sed -i -e "s//$SELFIP<\/string><\/LocalNetworkAddresses>/" emby.config/config/system.xml fi fi fi