V6.7.6 添加可用内存&剩余空间检测
This commit is contained in:
parent
951c3b1a20
commit
9034af5d15
|
|
@ -3,7 +3,7 @@
|
||||||
# AutoUpdate for Openwrt
|
# AutoUpdate for Openwrt
|
||||||
# Dependences: bash wget-ssl/wget/uclient-fetch curl openssl jsonfilter
|
# Dependences: bash wget-ssl/wget/uclient-fetch curl openssl jsonfilter
|
||||||
|
|
||||||
Version=V6.7.5
|
Version=V6.7.6
|
||||||
|
|
||||||
function TITLE() {
|
function TITLE() {
|
||||||
clear && echo "Openwrt-AutoUpdate Script by Hyy2001 ${Version}"
|
clear && echo "Openwrt-AutoUpdate Script by Hyy2001 ${Version}"
|
||||||
|
|
@ -64,6 +64,7 @@ function SHOW_VARIABLE() {
|
||||||
设备名称: $(uname -n) / ${TARGET_PROFILE}
|
设备名称: $(uname -n) / ${TARGET_PROFILE}
|
||||||
固件版本: ${OP_VERSION}
|
固件版本: ${OP_VERSION}
|
||||||
内核版本: $(uname -r)
|
内核版本: $(uname -r)
|
||||||
|
运行内存: Mem: $(MEMINFO 1)M | Swap: $(MEMINFO 2)M | Total: $(MEMINFO 3)M
|
||||||
其他参数: ${TARGET_BOARD} / ${TARGET_SUBTARGET}
|
其他参数: ${TARGET_BOARD} / ${TARGET_SUBTARGET}
|
||||||
固件作者: ${Author}
|
固件作者: ${Author}
|
||||||
作者仓库: ${Github}
|
作者仓库: ${Github}
|
||||||
|
|
@ -82,6 +83,47 @@ EOF
|
||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function MEMINFO() {
|
||||||
|
local Mem Swap All Result
|
||||||
|
Mem=$(free | grep Mem: | awk '{Mem=$7/1024} {printf("%.0f\n",Mem)}' 2> /dev/null)
|
||||||
|
Swap=$(free | grep Swap: | awk '{Swap=$4/1024} {printf("%.0f\n",Swap)}' 2> /dev/null)
|
||||||
|
All=$(echo ${Mem} + ${Swap} | bc 2> /dev/null)
|
||||||
|
case $1 in
|
||||||
|
1)
|
||||||
|
Result=${Mem}
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
Result=${Swap}
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
Result=${All}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [[ -n ${Result} ]]
|
||||||
|
then
|
||||||
|
LOGGER "[MEMINFO] [$1] 运行内存: ${Result}M"
|
||||||
|
echo ${Result}
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
SPACEINFO() {
|
||||||
|
local Result Path
|
||||||
|
Path=$(echo $1 | awk -F '/' '{print $2}')
|
||||||
|
Result=$(df -m /${Path} 2> /dev/null | grep -v Filesystem | awk '{print $4}')
|
||||||
|
if [[ -n ${Result} ]]
|
||||||
|
then
|
||||||
|
LOGGER "[SPACEINFO] /${Path} 可用空间: ${Result}M"
|
||||||
|
echo "${Result}"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
LOGGER "[SPACEINFO] /${Path} 可用空间获取失败!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function RM() {
|
function RM() {
|
||||||
[[ -z $* ]] && return 1
|
[[ -z $* ]] && return 1
|
||||||
rm -rf "$*" 2> /dev/null
|
rm -rf "$*" 2> /dev/null
|
||||||
|
|
@ -370,11 +412,9 @@ function CHECK_DEPENDS() {
|
||||||
|
|
||||||
function CHECK_TIME() {
|
function CHECK_TIME() {
|
||||||
[[ -s $1 && -n $(find $1 -type f -mmin -$2) ]] && {
|
[[ -s $1 && -n $(find $1 -type f -mmin -$2) ]] && {
|
||||||
LOGGER "[CHECK_TIME] 文件: [$1] 距离修改时间小于 $2 分钟!"
|
|
||||||
echo true
|
echo true
|
||||||
return 0
|
return 0
|
||||||
} || {
|
} || {
|
||||||
LOGGER "[CHECK_TIME] 文件: [$1] 验证失败!"
|
|
||||||
RM $1
|
RM $1
|
||||||
echo false
|
echo false
|
||||||
return 1
|
return 1
|
||||||
|
|
@ -391,7 +431,7 @@ function ANALYZE_API() {
|
||||||
EXIT 2
|
EXIT 2
|
||||||
}
|
}
|
||||||
RM ${API_File} && touch -a ${API_File}
|
RM ${API_File} && touch -a ${API_File}
|
||||||
LOGGER "[ANALYZE_API] 开始解析 Github API ..."
|
LOGGER "开始解析 Github API ..."
|
||||||
for i in $(seq 0 500);do
|
for i in $(seq 0 500);do
|
||||||
name=$(jsonfilter -i ${API_Cache} -e '@["assets"]' | jsonfilter -e '@['""$i""'].name' 2> /dev/null)
|
name=$(jsonfilter -i ${API_Cache} -e '@["assets"]' | jsonfilter -e '@['""$i""'].name' 2> /dev/null)
|
||||||
[[ ! $? == 0 ]] && break
|
[[ ! $? == 0 ]] && break
|
||||||
|
|
@ -418,15 +458,15 @@ function ANALYZE_API() {
|
||||||
unset i
|
unset i
|
||||||
fi
|
fi
|
||||||
[[ ! -s ${API_File} ]] && {
|
[[ ! -s ${API_File} ]] && {
|
||||||
ECHO r "Github API 解析内容为空!"
|
ECHO r "Github API 解析内容为空,请稍候再试!"
|
||||||
return 1
|
return 1
|
||||||
}
|
} || return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function GET_CLOUD_LOG() {
|
function GET_CLOUD_LOG() {
|
||||||
local Result Version
|
local Result Version
|
||||||
[[ ! $(cat ${API_File} 2> /dev/null) =~ Update_Logs.json ]] && {
|
[[ ! $(cat ${API_File} 2> /dev/null) =~ Update_Logs.json ]] && {
|
||||||
LOGGER "[GET_CLOUD_LOG] 未检测到已部署的云端日志!"
|
LOGGER "未检测到已部署的云端日志!"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
|
@ -470,7 +510,7 @@ function GET_FW_INFO() {
|
||||||
1) Type="固件名称";;
|
1) Type="固件名称";;
|
||||||
2) Type="固件格式";;
|
2) Type="固件格式";;
|
||||||
3) Type="下载次数";;
|
3) Type="下载次数";;
|
||||||
4) Type=" SHA256 ";;
|
4) Type="校验信息";;
|
||||||
5) Type="固件版本";;
|
5) Type="固件版本";;
|
||||||
6) Type="发布日期";;
|
6) Type="发布日期";;
|
||||||
7) Type="固件体积";;
|
7) Type="固件体积";;
|
||||||
|
|
@ -478,7 +518,7 @@ function GET_FW_INFO() {
|
||||||
*) Type="未定义信息";;
|
*) Type="未定义信息";;
|
||||||
esac
|
esac
|
||||||
[[ ! ${Result} == "-" ]] && {
|
[[ ! ${Result} == "-" ]] && {
|
||||||
LOGGER "[GET_FW_INFO] 获取${Type}: ${Result}"
|
LOGGER "获取${Type}: ${Result}"
|
||||||
echo -e "${Result}"
|
echo -e "${Result}"
|
||||||
} || {
|
} || {
|
||||||
LOGGER "[GET_FW_INFO] ${Type}获取失败!"
|
LOGGER "[GET_FW_INFO] ${Type}获取失败!"
|
||||||
|
|
@ -541,7 +581,7 @@ function UPGRADE() {
|
||||||
;;
|
;;
|
||||||
--path)
|
--path)
|
||||||
Firmware_Path="$2"
|
Firmware_Path="$2"
|
||||||
ECHO g "使用自定义固件保存路径: [${Firmware_Path}]"
|
ECHO g "固件保存路径: [${Firmware_Path} | $(SPACEINFO ${Firmware_Path})M]"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
--skip-verify)
|
--skip-verify)
|
||||||
|
|
@ -609,16 +649,26 @@ $(echo -e "云端固件版本: ${CLOUD_FW_Version}${CHECKED_Type}")
|
||||||
云端固件体积: ${CLOUD_FW_Size}
|
云端固件体积: ${CLOUD_FW_Size}
|
||||||
固件下载次数: ${CLOUD_FW_Count}
|
固件下载次数: ${CLOUD_FW_Count}
|
||||||
EOF
|
EOF
|
||||||
LOGGER "当前版本: ${OP_VERSION}"
|
if [[ ${Force_Mode} != 1 ]]
|
||||||
LOGGER "云端版本: ${CLOUD_FW_Version}"
|
then
|
||||||
LOGGER "云端固件名称: ${CLOUD_FW_Name}"
|
if [[ $(MEMINFO 3) -lt $(echo ${CLOUD_FW_Size} | awk -F '.' '{print $1}') ]]
|
||||||
LOGGER "云端固件体积: ${CLOUD_FW_Size}"
|
then
|
||||||
LOGGER "固件下载人数: ${CLOUD_FW_Count}"
|
ECHO r "内存空间不足 [${CLOUD_FW_Size}],请尝试设置 Swap 交换分区或重启设备后再试!"
|
||||||
|
EXIT
|
||||||
|
fi
|
||||||
|
if [[ $(SPACEINFO ${Firmware_Path}) -lt $(echo ${CLOUD_FW_Size} | awk -F '.' '{print $1}') ]]
|
||||||
|
then
|
||||||
|
ECHO r "设备空间不足 [${CLOUD_FW_Size}],请尝试更换固件保存路径后再试!"
|
||||||
|
EXIT
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
LOGGER "[Force Mode] 跳过可用资源测试"
|
||||||
|
fi
|
||||||
GET_CLOUD_LOG -v ${CLOUD_FW_Version}
|
GET_CLOUD_LOG -v ${CLOUD_FW_Version}
|
||||||
case "${Upgrade_Stopped}" in
|
case "${Upgrade_Stopped}" in
|
||||||
1 | 2)
|
1 | 2)
|
||||||
[[ ${AutoUpdate_Mode} == 1 ]] && ECHO y "当前固件已是最新版本,无需更新!" && EXIT 0
|
[[ ${AutoUpdate_Mode} == 1 ]] && ECHO y "当前固件 [${OP_VERSION}] 已是最新版本,无需更新!" && EXIT 0
|
||||||
[[ ${Upgrade_Stopped} == 1 ]] && err_MSG="当前固件已是最新版本" || err_MSG="云端固件版本为旧版"
|
[[ ${Upgrade_Stopped} == 1 ]] && err_MSG="当前固件 [${OP_VERSION}] 已是最新版本" || err_MSG="云端固件版本为旧版"
|
||||||
[[ ! ${Force_Mode} == 1 ]] && {
|
[[ ! ${Force_Mode} == 1 ]] && {
|
||||||
ECHO && read -p "${err_MSG},是否继续更新固件?[Y/n]:" Choose
|
ECHO && read -p "${err_MSG},是否继续更新固件?[Y/n]:" Choose
|
||||||
} || Choose=Y
|
} || Choose=Y
|
||||||
|
|
@ -679,14 +729,19 @@ EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
function DO_UPGRADE() {
|
function DO_UPGRADE() {
|
||||||
ECHO r "警告: 固件更新期间请不要断开电源或重启设备!"
|
ECHO r "警告: 固件更新期间请不要断开电源或进行其他操作!"
|
||||||
sleep 3
|
sleep 3
|
||||||
ECHO g "正在更新固件,请耐心等待 ..."
|
ECHO g "正在更新固件,请耐心等待 ..."
|
||||||
$*
|
$*
|
||||||
[[ $? -ne 0 ]] && {
|
if [[ $? != 0 ]]
|
||||||
ECHO r "固件刷入失败,请尝试使用 [autoupdate -F] 指令更新固件!"
|
then
|
||||||
|
ECHO r "固件更新失败,请尝试使用 [autoupdate -F] 指令更新固件!"
|
||||||
EXIT 1
|
EXIT 1
|
||||||
}
|
else
|
||||||
|
ECHO y "固件更新成功,即将重启设备 ..."
|
||||||
|
sleep 3
|
||||||
|
reboot
|
||||||
|
fi
|
||||||
EXIT
|
EXIT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -910,7 +965,6 @@ function LOG() {
|
||||||
|
|
||||||
URL_X() {
|
URL_X() {
|
||||||
# URL_X https://raw.githubusercontent.com/Hyy2001X/AutoBuild-Actions/master/Scripts/AutoUpdate.sh F@@1 G@@1 X@@1
|
# URL_X https://raw.githubusercontent.com/Hyy2001X/AutoBuild-Actions/master/Scripts/AutoUpdate.sh F@@1 G@@1 X@@1
|
||||||
# Support for Github URL
|
|
||||||
local URL=$1 Type URL_Final
|
local URL=$1 Type URL_Final
|
||||||
[[ ${URL} =~ raw.githubusercontent.com ]] && Type=raw
|
[[ ${URL} =~ raw.githubusercontent.com ]] && Type=raw
|
||||||
[[ ${URL} =~ releases/download ]] && Type=release
|
[[ ${URL} =~ releases/download ]] && Type=release
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue