全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 16244|回复: 138

[疑问] [完全开源] 可在WebUI查看进度的一键DD脚本

  [复制链接]
发表于 2021-11-21 22:13:31 | 显示全部楼层 |阅读模式
本帖最后由 flyqie 于 2021-11-21 22:21 编辑

脚本介绍

该脚本可在DD系统时为您提供一个WebUI以帮助您了解到目前的DD状态.

基于现有非常成熟的一键重装脚本修改, 只修改脚本内DD相关逻辑, 无任何学习成本.

脚本执行环境暂只支持linux amd64, 可DD Windows等系统(跟原来脚本一样).

WebUI是在网上找的一个跳转页面模板魔改的

特别感谢

Shell原作者: MoeClub

Shell二次修改: cxthhhhh

使用方法

基础用法同原始脚本, 高级用法可自行查看shell文件(部分功能可能未经过全面测试, 需要您自行承担后果).

脚本最后会显示您的WebUI地址, 此地址不会再次显示在任何地方, DD结束后WebUI也将会自动消失.

Shell地址: https://github.com/flyqie/dd-shell

Go程序地址: https://github.com/flyqie/dd-web

脚本直链地址: https://raw.githubusercontent.com/flyqie/dd-shell/master/Core_Install.sh

演示图





风险说明

由于该脚本使用环境复杂, 故无法完全测试, 可能会导致您的服务器无**常运行,数据丢失.

部分VPS商家明令禁止DD系统, 可能会导致您的服务器被终止.

DD时会占用较高资源(不是说脚本占资源哈, 是指DD系统这个行为本身), 可能导致您的服务器被暂停或终止.

作者无法知晓及监控用户行为, 也不承担对该脚本的任何责任(包括但不限于法律责任、数据损失责任)

技术相关说明

该脚本主要修改了原始的wget + gzip + dd步骤, 将其全部使用go实现, 同时加入了WebUI, WebUI与服务器之间通过ws进行沟通.

已测试环境

Proxmoxve 6 KVM

Vultr KVM

(其他没测试, 欢迎各位大佬提交测试结果, 目前好像没发现因为该脚本导致的DD失败的情况)

注意事项

脚本自动重启后能Ping通但无法访问WebUI是正常的, 会先配置临时运行环境(这部分没改动), 等临时运行环境配置完开始DD后WebUI才可访问.

默认情况下, 如果DD出现错误WebUI会一直可用并展示错误详情, 如果DD成功了会自动重启, 此配置可通过脚本参数修改.

脚本意义

个人认为这个脚本没什么特别大的意义, 无非也就是让DD过程变得更加的清晰, 能够比较准确的判断是哪个地方出了问题, 并没有考虑到在重启后DD没开始之前出现的问题该如何排查.

顺便说下之前被封的某人, 他确实有技术, 他的脚本也不只是让DD脚本有了进度条, 但是这人情商好像不太行, 做事欠考虑.

另外, 之前5刀带IPMI的杜甫真的香, 可惜俺没有, 有IKVM真的省了很多事啊 .
发表于 2021-11-21 22:27:27 | 显示全部楼层
卧槽 这可是价值5000的进度显示啊

点评

带webui不是进vnc我觉得这价值五万以上  发表于 2021-11-22 09:03
前几天还有人价高者得,笑死了。  发表于 2021-11-22 08:26
看来有瓜啊  发表于 2021-11-22 00:38
发表于 2021-11-23 19:16:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2021-12-7 18:25:14 | 显示全部楼层
洛克 发表于 2021-12-7 16:58
Error! Download 'dd_web' failed!

默认的dd-web下载源是https://github.com/flyqie/dd-web/releases/download/v0.1/ddWeb_20211121_linux_amd64

使用参数 --dd-web-bin-url 可以自行指定下载源地址.

举例(https://example.com/dd_pkg.gz 为DD包地址, https://example.com/demo_ddWeb_20211121_linux_amd64 为dd-web二进制文件地址):

  1. bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/flyqie/dd-shell/master/Core_Install.sh') -dd "https://example.com/dd_pkg.gz" --dd-web-bin-url "https://example.com/demo_ddWeb_20211121_linux_amd64"
复制代码
发表于 2021-12-2 22:05:29 | 显示全部楼层
flyqie 发表于 2021-12-2 21:12
1. 麻烦发下执行的命令

2. 因为在DD开始之前会联网安装一些包, 所以会无法访问, 目前考虑在开机时候跑个 ...

bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/flyqie/dd-shell/master/Core_Install.sh') -d 10 -v 64 -a --dd-web-authkey 1234 -p [我的密码]
 楼主| 发表于 2021-12-2 20:04:51 | 显示全部楼层
trikneet 发表于 2021-12-2 15:35
192388 blocks
Socket error Event: 32 Error: 10053.
Connection closing...Socket close.

1. 非DD模式

2. 网络太卡...脚本里设了输出WebUI地址后6s reboot.... 如果觉得不太行的话大佬可以自行改时间或者直接改成按enter重启
发表于 2021-11-22 08:44:32 来自手机 | 显示全部楼层
AaronYYDS 发表于 2021-11-21 22:52
大佬 我这个执行后没出现ui的地址

进度显示在vnc里面
 楼主| 发表于 2021-11-22 02:11:22 | 显示全部楼层

补了脚本执行时的图就好很多了,能找到问题了。

看了下报错位置,这地方我没改过,原脚本这块处理的确实有点问题。

在特殊情况下,wget并不会出现错误,而是返回正常状态码,但此时initrd.img文件是无效的。

这个时候尝试去重打包initrd.img就会出现错误,也就造成了重启后无**常跑起来debian installer的问题。

这块我改天看下逻辑怎么优化吧,目前的处理方法建议是 手动下载initrd.img并且注释掉原来的下载initrd.img逻辑 或者 尝试换个镜像源看下。
发表于 2021-11-22 00:21:39 来自手机 | 显示全部楼层
支持,为楼主行为点赞
 楼主| 发表于 2021-11-21 23:58:17 | 显示全部楼层
AaronYYDS 发表于 2021-11-21 23:04
由于我是国内机 我是这么执行的

但是他最后结束了  也没有找到那个ui的地址 我去看了看脚本是2333端口  ...

啊这,你理解错了哇,是指DD安装过程中显示进度的WebUI, 之前那个5K的加进度条说的也是这个, 直装linux的话没必要做webui而且很麻烦(主要是本来用的就是debian installer....)
发表于 2021-11-21 23:06:21 来自手机 | 显示全部楼层
好顶,楼主高赞
发表于 2021-11-21 22:14:27 | 显示全部楼层
好顶赞,一键三连,希望支持linode
发表于 2021-11-21 22:17:05 来自手机 | 显示全部楼层
啪啪打脸某人了
发表于 2021-11-21 22:17:11 | 显示全部楼层
支持!
发表于 2021-11-21 22:18:31 来自手机 | 显示全部楼层
点赞楼主,把杯拿来,给你倒咖啡。
发表于 2021-11-21 22:18:55 | 显示全部楼层
白票100块,支持以下
发表于 2021-11-21 22:19:14 来自手机 | 显示全部楼层
你说我支不支持,那我当然是支持的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-26 12:06 , Processed in 0.073520 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表