貌似我有强迫症,每次打开路由器web管理,都必须要看看有没有软件升级,然后一个一个点着升级,或者一连上ssh,都会首先输入opkg update, opkg list-upgradable… 多次这么操作后,觉得挺麻烦,于是,参考搜索的资料,写了个shell脚本,运行一下脚本就会自动检查更新,逐个升级有可用更新的软件,大神略过哈,仅供有同样需要的人参考!
#!/bin/sh
clr() {
local ys=31
while getopts ':c:' OPT; do
case $OPT in
c) expr $OPTARG + 10 &>/dev/null && [ $OPTARG -ge 30 ] && [ $OPTARG -le 37 ] && local ys=$OPTARG ;;
esac
done
while read k; do
echo -e "\e[1;"${ys}"m"${k}"\e[0m"
done
return 0
}
opkg update
j=$(opkg list-upgradable | wc -l)
if [ $j -lt 1 ]; then
echo "There is no application need upgrade on your device..." | clr
exit 1
else
echo
echo "There are ${j} application need upgrade" | clr -c 34
opkg list-upgradable | clr -c 34
echo
read -n1 -t5 -r -p 'Do you want to upgrade now[y/n]?' ssfsj
case $ssfsj in
Y | y)
# 多个选项用竖线分隔,比如上一句可以是 Y | y | S | s )
sfsj=1
;;
N | n)
sfsj=0
;;
*)
sfsj=0
;;
esac
echo
if [ $sfsj -eq 1 ]; then
echo "Now upgrading..." | clr -c 34
opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade --force-overwrite
echo "Total: ${j} application upgrade successful..." | clr -c 34
exit 0
else
echo "User canceled the upgrade..." | clr
exit 2
fi
fi
代码如上,保存到一个文本文件(Linux下的),例如appupdate.sh, 然后赋运行权限 chmod +x appupdate.sh, 就可以用 ./appupdate.sh 运行脚本了
如果想开机运行,可以在 /etc/rc.local里面加一句/root/appupdate.sh(如果你的脚本是在其他路径,自行修改),让脚本开机自动运行。rc.local 里面的代码开机会运行,编辑需谨慎。
还可以在luci界面,找到系统–计划任务,添加自定义任务,让脚本定时运行。
编辑计划任务,还可以用命令crontab -e,类似vim的界面,关于计划任务的这个内容格式有点点麻烦,建议度娘弄清楚再编辑。
最后,水平有限,希望对你有一点点参考的意义,莫笑粗浅!
版权声明:本文为coolbi5原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。