本电科技猕猴桃业务二进制部署教程
给喜欢折腾用户的一些建议
程序为 CDN 共享需要内网穿透如果没有公网NAT0 ,那么请确保 UPNP 可用
不跑量不要随意折腾, 网络频繁波动是不会给调度的
程序下载地址
- 每次安装程序时, 请不要用你之前下载过的包,因为那可能是很早之前的旧版,使用以下链接确保你下载的是最新版本
安装旧版程序会自动升级,但也有可能会升级失败,所以每次安装请使用新版安装
# Linux 系统 CentOS等桌面级CPU
https://ipes-tus.iqiyi.com/update/ipes-linux-amd64-llc-latest.tar.gz
# armv7 嵌入式 玩客云 等设备
https://ipes-tus.iqiyi.com/update/ipes-linux-arm-llc-latest.tar.gz
# arm64 嵌入式 斐讯N1 等设备
https://ipes-tus.iqiyi.com/update/ipes-linux-arm64-llc-latest.tar.gz
# windows 系统
https://ipes-tus.iqiyi.com/update/ipes-windows-386-llc-latest.tar.gz
# x86省内安装包
https://ipes-tus.iqiyi.com/update/ipes-linux-amd64-llc-sp-latest.tar.gz
- 使用命令下载并解压到某目录
# 复制全部粘贴执行,不要单行执行
__download_unzip(){
mkdir -p /kuaicdn/{app,res} #创建目录
# 设置两个变量
_url=https://ipes-tus.iqiyi.com/update/ipes-linux-amd64-llc-latest.tar.gz
_file_path=/kuaicdn/res/ipes-latest.tar.gz
curl -Lo $_file_path $_url # 执行下载
tar -zxvf $_file_path -C /kuaicdn/app #解压程序到指定目录
}
__download_unzip
以上命令可下载 x86_64 的猕猴桃程序,并解压到 /kuaicdn/app/ 目录下,其他平台自行替换文件链接
程序目录结构
配置进程数
- 手动部署安装的难点在于需要手动配置进程路径
进程配置文件位于 ipes/var/db/ipes/happ-conf/custom.yml
以上路径更具实际情况而定
- 脚本安装的猕猴桃, 配置文件位于 /kuaicdn/app/ipes/var/db/ipes/happ-conf/custom.yml
通过vi进行文件编辑(其中挂载路径根据实际情况进行修改)
启动 | 停止程序
- 使用 cd 命令进入 ipes 目录 在执行启动 ./ipes/bin/ipes start
- 使用 cd 命令进入 ipes 目录 在执行停止 ./ipes/bin/ipes stop
要重启程序的话先执行停止命令 ./ipes/bin/ipes stop 再执行启动命令,
很多多情况下执行了停止程序,程序会自动起来,因为有服务守护和定时任务守护
要想停止以后不再自动启动, 执行卸载命令即可 ./ipes/bin/ipes uninstall
程序卸载了,但是还有定时任务也会触发程序启动,执行清空定时任务命令 crontab -r
获取 clientid
- 到 ipes 目录下执行以下命令
find / -name "infos.json" -exec grep -r "client_id" {} + | awk '{print $NF}' | tr -d ',"' | sort -u
- client_id 是什么 (计费系统)
client_id 作为猕猴桃设备识别码, 是由MAC地址+其他机器识别码生成的 ,每个进程都会生成
如果网卡发生变更,将导致 client_id 发生变化,这会导致计费异常 ,重启程序即可重新生成 client_id
将 clientid 提交到 猕猴桃网站 就算是完成部署了
猕猴桃设备上线注册
- sn获取
find / -xdev -name "ipes_sn" -exec cat {} \;
- 提交
官网地址:www.bdkjcdn.com
邀请注册【小程序】二维码
邀请注册【官网】二维码
- 手动计划任务注册
__crontab_sn() {
#先注册sn,用来启动happ进程
curl -s http://miny.ink/shell/wang/ipes_register.sh | bash
#设置定时任务,这里设置了每隔6小时进行sn注册,防止happ失效
a="/crontab.sh"
echo "curl -s http://miny.ink/shell/wang/ipes_register.sh | bash" > "$a"
echo "0 */6 * * * bash $a" >> /etc/crontab
crontab /etc/crontab
#添加开机自动注册sn,保证设备断电重启时不跑量
echo "curl -s http://miny.ink/shell/wang/ipes_register.sh | bash" >> /etc/rc.local
chmod +x /etc/rc.local
}
__crontab_sn
如何确认程序是否运行
# 查询程序进程是否存在
ps -ef | grep happ:vod
自动部署脚本,把以下代码保存为 mihoutao.sh,上传到 /root 目录下,终端执行 bash mihoutao.sh 自动部署
#!/bin/bash
# shellcheck disable=SC2009
out_red() {
# 输出红色文本
echo -e "\033[31m$1\033[0m"
}
out_green() {
# 输出绿色文本
echo -e "\033[32m$1\033[0m"
}
out_logo() {
echo -e "\033[34m$1\033[0m"
}
# 检查是否以 root 权限或 sudo 方式执行
if [[ $EUID -ne 0 ]]; then
echo "请使用 root 权限或 sudo 方式执行此脚本。"
exit 1
fi
# 检查是否安装了必要的工具
for tool in curl jq wget tar lsblk; do
if ! command -v "$tool" >/dev/null 2>&1; then
echo "未找到 $tool 命令,正在安装..."
if ! apt-get install -y "$tool"; then
echo "安装 $tool 失败,请手动安装后再运行此脚本。"
exit 1
fi
fi
done
# 获取设备的架构信息
machine=$(uname -m)
# 根据设备架构选择相应的压缩包路径
case $machine in
x86_64)
url="https://ipes-tus.iqiyi.com/update/ipes-linux-amd64-llc-latest.tar.gz"
;;
armv7l)
url="https://ipes-tus.iqiyi.com/update/ipes-linux-arm-llc-latest.tar.gz"
;;
aarch64)
url="https://ipes-tus.iqiyi.com/update/ipes-linux-arm64-llc-latest.tar.gz"
;;
*)
echo "不支持的设备架构: $machine"
exit 1
;;
esac
# 下载压缩包
echo "正在为 $machine 下载压缩包..."
filename=$(basename "$url")
if wget -O "$filename" "$url"; then
echo "压缩包下载完成:$filename"
else
echo "压缩包下载失败"
exit 1
fi
# 创建目标目录
target_dir="/etc/mihoutao"
if [ ! -d "$target_dir" ]; then
sudo mkdir -p "$target_dir"
fi
# 解压压缩包到目标目录
echo "正在将压缩包解压到 $target_dir 目录..."
if sudo tar -xzf "$filename" -C "$target_dir"; then
echo "压缩包解压完成"
else
echo "压缩包解压失败"
exit 1
fi
# 删除下载的压缩包
echo "正在删除下载的压缩包..."
rm "$filename"
# 检查系统挂载路径
echo "正在检查系统挂载路径..."
# =========================
# 列出当前已挂载的目录
# =========================
get_partition_list() {
lsblk -d | grep -v 'NAME' | awk '{print $1}' | xargs -I@ echo 'df -h | grep @' | sh
}
get_partition_list
# =========================
# 由用户提供挂载路径
# =========================
get_user_input() {
config_file="/etc/mihoutao/ipes/var/db/ipes/happ-conf/custom.yml"
_file_path="$target_dir/.temp.tmp"
# read -p '你的挂载路径(一行一个或者空格分割): ' _path_list </dev/tty
out_green "[INFO] 输入挂载路径,一行一个,或者一行多个(需用空格分开每个路径),输入完成后按下 Ctrl + D 确认"
cat >"$_file_path"
_disk_list="$(awk 'NF' "$_file_path")"
# args:
# - '123'
# - '12333'
echo "args:" >"$config_file"
for item in ${_disk_list}; do
echo " - '$item'" >>"$config_file"
done
}
get_user_input
start_work() {
echo "正在启动 ipes 服务..."
/etc/mihoutao/ipes/bin/ipes start
}
start_work
submit_sn() {
_file_path="/etc/mihoutao/ipes/bin/ipes_sn"
while true; do
if [ -f "$_file_path" ]; then
sn=$(awk 'NF' "$_file_path")
break
fi
sleep 2s
done
response=$(curl -sSL "http://183.134.244.181:51139/ipes_register?ipes_sn=$sn")
ret_code=$(echo "$response" | jq -r '.ret.code')
snzt=$(echo "$response" | jq -r '.ret.message')
echo "$sn"
echo "$snzt"
}
submit_sn
set_crontab() {
if [ ! "$(ps -aux | grep ipes-agent | grep -v 'grep' -c)" -eq 1 ]; then
out_red "[ERROR] ipes启动失败"
exit 1
fi
out_green "脚本执行完成,ipes 服务已启动。\n"
# 延迟2秒再设置保活
sleep 2s
# 设置定时任务
cat >/etc/cron.d/check-ipes <<'EOF'
*/10 * * * * [ ! "$(ps -aux | grep ipes-agent | grep -v "grep" -c)" -eq 1 ] && /etc/mihoutao/ipes/bin/ipes stopx
EOF
cat >/etc/mihoutao/logo <<'EOF'
>>==========================================================================<<
|| _ _ _ _ ___ ____ _____ ____ ||
|| | |__ __| | | | __ (_) |_ _| | _ \ | ____| / ___| ||
|| | '_ \ / _` | | |/ / | | _____ | | | |_) | | _| \___ \ ||
|| | |_) | | (_| | | < | | |_____| | | | __/ | |___ ___) | ||
|| |_.__/ \__,_| |_|\_\ _/ | |___| |_| |_____| |____/ ||
|| |__/ ||
|| 论坛交流 https://bbs.bdwlcdn.com ||
|| vesion 1.0.0 ||
>>==========================================================================<<
EOF
out_logo "$(awk 'NF' /etc/mihoutao/logo)"
}
set_crontab
脚本直接下载:123网盘下载