#!/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) # 获取当前脚本的名称 SCRIPT_NAME=$(basename "$0") # 检查是否有相同的脚本在运行(排除当前进程) #if pgrep -f "$SCRIPT_NAME" | grep -v "$$" > /dev/null; then # echo "脚本已在运行,退出..." # exit 1 #fi mkdir -p emby.tmp emby.cache >/dev/null 2>&1 chmod 777 emby.tmp emby.cache #docker stop embysim #docker rm embysim num=$(mount |grep "/external"|wc -l) if [ $num -lt 1 ]; then mkdir external >/dev/null 2>&1 mkdir emby.external >/dev/null 2>&1 mount -o bind,shared emby.external external echo "mount emby.external to external to mark shared" fi if [ ! -e alistservers.txt ]; then cp alistservers.template.txt alistservers.txt fi 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" url=$(cat rclone.conf |grep -E "^url"|sed -e 's/.*\(http.*\)/\1/'|head -1) echo "get webdav url from rclone:$url" curl -v -L $url if [ $? -eq 0 ]; then iswebdavsim=$(curl -v -L $url -o - 2>&1|grep "Path-Based WebDAV Server"|wc -l) if [ $iswebdavsim -gt 0 ]; then echo "WARN:webdavsim is running, data may be outdate." else echo "ERROR:$url is NOT WebDAVSim, exit" exit fi 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 num=$(mount |grep "/rclone.media"|wc -l) if [ $num -gt 0 ]; then echo "WARN:rclone.media already mounted, the webdav content may be outdate" else chmod u+x rclonemount.sh ./rclonemount.sh fi num=$(mount |grep "/rclone.media"|wc -l) if [ $num -lt 1 ]; then echo "ERROR:rclone not running, exit" exit fi # --gpus all \ # -e HTTP_PROXY=http://192.168.101.1:8118 \ # -e HTTPS_PROXY=http://192.168.101.1:8118 \ # --net=host \ cores=$(cat /proc/cpuinfo |grep processor|wc -l) cpus=$(expr $cores / 2) if [ $cpus -lt 1 ]; then cpus="1" fi #echo "use cpus:$cpus" # --cpus $cpus \ docker-compose -v if [ $? -eq 0 ]; then sed -i -e "s|let serverAddr =.*|let serverAddr = 'http://${SELFIP}:8097';|g" nginx/conf.d/externalUrl.js sed -i -e "s|- .*emby.config:/config|- ${progdir}/emby.config:/config|g" docker-compose.yml sed -i -e "s|- .*external:/external|- ${progdir}/external:/external|g" docker-compose.yml sed -i -e "s|- .*emby.tmp:/tmp|- ${progdir}/emby.tmp:/tmp|g" docker-compose.yml sed -i -e "s|- .*emby.cache:/cache|- ${progdir}/emby.cache:/cache|g" docker-compose.yml docker stop embyUrl-nginx docker stop embysim docker-compose down docker-compose up -d else docker stop embyUrl-nginx docker rm embyUrl-nginx docker run -d \ --name embyUrl-nginx \ -v $progdir/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v $progdir/nginx/conf.d:/etc/nginx/conf.d \ -v $progdir/emby.tmp:/tmp \ -p 8096:80 \ --restart on-failure \ nginx:alpine docker stop embysim docker rm embysim docker run -d \ --sysctl net.ipv6.conf.all.disable_ipv6=1 \ --name embysim \ -v $progdir/emby.config:/config \ -v $progdir/external:/external:rshared \ -v $progdir/emby.tmp:/tmp \ -v $progdir/emby.cache:/cache \ --device /dev/dri:/dev/dri \ -p 8097:8096 \ -p 8920:8920 \ --env UID=1000 \ --env GID=100 \ --env GIDLIST=100 \ --env SELFIP=${SELFIP} \ --restart on-failure \ emby/embyserver:latest #pandagroove/embysim:1.0.0 fi sleep 1 docker cp "externalPlayer.js" "embysim":"/system/dashboard-ui/externalPlayer.js" docker exec "embysim" sh -c "chmod 777 /system/dashboard-ui/externalPlayer.js;sed -i -e 's|||g' \"/system/dashboard-ui/index.html\";sed -i 's|||g' \"/system/dashboard-ui/index.html\""