2025-07-02 10:40:08 +08:00
#!/bin/bash
2025-07-01 12:30:10 +08:00
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 } "
2025-07-02 10:40:08 +08:00
progdir = $( pwd )
2025-07-01 12:30:10 +08:00
num = $( mount | grep "/external" | wc -l)
if [ $num -lt 1 ] ; then
2025-07-02 19:48:26 +08:00
mkdir -p external >/dev/null 2>& 1
2025-07-01 12:30:10 +08:00
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 "
2025-07-02 10:40:08 +08:00
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..."
2025-07-02 21:54:37 +08:00
chmod u+x tmuxrunwebdavsim.sh
2025-07-02 19:48:26 +08:00
tmux -V
if [ $? -eq 0 ] ; then
./tmuxrunwebdavsim.sh
else
nohup ./runwebdavsim.sh >/dev/null 2>& 1 &
fi
2025-07-02 10:40:08 +08:00
fi
echo "TRY CONNECT webdavsim, please wait... abount(30s)"
webdavsimok = "0"
2025-07-01 12:30:10 +08:00
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
2025-07-02 10:40:08 +08:00
webdavsimok = "1"
2025-07-01 12:30:10 +08:00
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
2025-07-02 10:40:08 +08:00
if [ " $webdavsimok " != "1" ] ; then
echo "webdavsim not run, exit"
exit
fi
echo "ready to rclone mount, please wait...(abount 60s)"
2025-07-02 21:54:37 +08:00
#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
2025-07-01 12:30:10 +08:00
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 "
2025-07-02 10:40:08 +08:00
sed -i -e " /<LocalNetworkAddresses>/{:a;N;/<\/LocalNetworkAddresses>/!ba;s/.*<\/LocalNetworkAddresses>/<LocalNetworkAddresses><string> $SELFIP <\/string><\/LocalNetworkAddresses>/} " emby.config/config/system.xml
sed -i -e " s/<LocalNetworkAddresses \/>/<LocalNetworkAddresses><string> $SELFIP <\/string><\/LocalNetworkAddresses>/ " emby.config/config/system.xml
2025-07-01 12:30:10 +08:00
fi
fi
fi