64 lines
2.3 KiB
Bash
64 lines
2.3 KiB
Bash
![]() |
#!/bin/sh
|
||
|
|
||
|
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}"
|
||
|
|
||
|
num=$(mount |grep "/external"|wc -l)
|
||
|
if [ $num -lt 1 ]; then
|
||
|
mkdir -p external
|
||
|
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"
|
||
|
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
|
||
|
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
|
||
|
|
||
|
echo "ready to rclone mount, please wait...(abount 30s)"
|
||
|
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 1s --low-level-retries 2 --cache-dir rclone.cache --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 "/<LocalNetworkAddresses>/{:a;N;/<\/LocalNetworkAddresses>/!ba;s/.*<\/LocalNetworkAddresses>/<LocalNetworkAddresses><string>$SELFIP<\/<string><\/LocalNetworkAddresses>/}" emby.config/config/system.xml
|
||
|
fi
|
||
|
fi
|
||
|
fi
|