moxbox init

This commit is contained in:
monlor
2020-03-05 00:08:40 +08:00
commit 76dbe98978
856 changed files with 170708 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
-----------------------------------------------------
Welcome to MIXBOX!
-----------------------------------------------------
__ ______ __ ________ __ ____ ____ _ __
/ / / / _/ / |/ / _/ |/ // __ )/ __ \ |/ /
/ /_/ // / / /|_/ // / | // __ / / / / /
/ __ // / / / / // / / |/ /_/ / /_/ / |
/_/ /_/___/ /_/ /_/___//_/|_/_____/\____/_/|_|

View File

@@ -0,0 +1,8 @@
service="DropBear"
appname="dropbear"
needver="0.0.1"
backupfiles="bin/dropbear,config/dropbear_dss_host_key,config/dropbear_rsa_host_key"
supports="linux_arm,linux_mips"
appinfo="移植小米的SSH功能到工具箱"
newinfo="添加备份功能支持"
version="0.0.2"

View File

@@ -0,0 +1,26 @@
#------------------【DropBear】--------------------
dropbear() {
eval `mbdb export dropbear`
source "$(mbdb get mixbox.main.path)"/bin/base
echo "********* $service ***********"
echo "[${appinfo}]"
echo "[仅支持小米路由器!]"
readsh "启动${appname}服务[1/0] " "enable" "1"
if [ "$enable" == '1' ]; then
# Scripts Here
readsh "请输入${appname}端口号" "port" "1022"
read -p "【慎重】是否启动时修改root用户密码[1/0]? " modify_passwd
checkread $modify_passwd && mbdb set $appname.main.modify_passwd="$modify_passwd"
if [ "$modify_passwd" = '1' ]; then
readsh "请输入系统root用户密码" "rootpasswd"
fi
readsh "请输入${appname}外网访问配置[1/0]" "openport" "1"
${mbroot}/apps/${appname}/scripts/${appname}.sh restart
elif [ "$enable" = '0' ]; then
${mbroot}/apps/${appname}/scripts/${appname}.sh stop
fi
}
#------------------【DropBear】--------------------

View File

@@ -0,0 +1,84 @@
#!/bin/sh
source "$(mbdb get mixbox.main.path)"/bin/base
eval `mbdb export dropbear`
[ -z "${port}" ] && port=1022
get_config() {
logsh "$service" "检查${appname}配置文件中..."
[ ! -f ${mbroot}/apps/${appname}/config/dropbear_rsa_host_key -a ! -f /etc/dropbear/dropbear_rsa_host_key ] && logsh "$service" "缺失证书文件无法启动!" && exit 1
[ ! -f ${mbroot}/apps/${appname}/config/dropbear_dss_host_key -a ! -f /etc/dropbear/dropbear_dss_host_key ] && logsh "$service" "缺失证书文件无法启动!" && exit 1
[ ! -f ${mbroot}/apps/${appname}/bin/${appname} ] && cp -rf /usr/sbin/dropbear ${mbroot}/apps/${appname}/bin/${appname}
# [ ! -f ${mbroot}/apps/${appname}/bin/dropbearkey ] && cp -rf /usr/bin/dropbearkey ${mbroot}/apps/${appname}/bin/dropbearkey
[ ! -f ${mbroot}/apps/${appname}/config/dropbear_rsa_host_key ] && cp -rf /etc/dropbear/dropbear_rsa_host_key ${mbroot}/apps/${appname}/config/dropbear_rsa_host_key
[ ! -f ${mbroot}/apps/${appname}/config/dropbear_dss_host_key ] && cp -rf /etc/dropbear/dropbear_dss_host_key ${mbroot}/apps/${appname}/config/dropbear_dss_host_key
}
start() {
logsh "$service" "正在启动${appname}服务... "
# cru a "${appname}" "0 6 * * * ${mbroot}/apps/${appname}/scripts/${appname}.sh restart"
# Scripts Here
logsh "$service" "服务启动端口号为:${port}"
get_config
if [ "$modify_passwd" = '1' -a -n "$rootpasswd" ]; then
logsh "$service" "系统root用户密码将修改为$rootpasswd"
echo -e "${rootpasswd}\n${rootpasswd}" | passwd root
fi
open_port
write_firewall_start
${mbroot}/apps/${appname}/bin/${appname} -p ${port} -d ${mbroot}/apps/${appname}/config/dropbear_dss_host_key -r ${mbroot}/apps/${appname}/config/dropbear_rsa_host_key -b ${mbroot}/apps/${appname}/config/banner
logsh "$service" "启动${appname}服务完成!"
sleep 1
kill -9 "$(pssh | grep ${mbroot}/apps/${appname}/bin/${appname} | grep -Ev "[ ]+${port}[ ]+" | awk '{print$1}' | tr '\n' ' ')" && sleep 1
}
stop() {
logsh "$service" "正在停止${appname}服务... "
[ "$enable" == '0' ] && destroy
close_port
remove_firewall_start
}
destroy() {
# End app, Scripts here
# cru d "${appname}"
logsh "$service" "如果终止${appname}将会在重启后生效!"
# kill -9 "$(pssh | grep ${mbroot}/apps/${appname}/bin/${appname} | awk '{print$1}' | tr '\n' ' ')" && sleep 1
return
}
end() {
mbdb set $appname.main.enable=0
stop && exit 1
}
status() {
if [ -n "$(pssh | grep ${mbroot}/apps/${appname}/bin/${appname})" ]; then
status="运行端口号:${port}|1"
else
status="未运行|0"
fi
mbdb set ${appname}.main.status="$status"
}
case "$1" in
start) start ;;
stop) stop ;;
restart) stop; start; ;;
reload) close_port && open_port ;;
status) status ;;
esac