分类 运维类 下的文章

遇到这种“重启就恢复原样”的情况确实非常折磨人。这通常说明你的路由器在重启后,系统仍然试图加载一个损坏或不兼容的第三方主题,或者是你的系统配置无法永久保存(比如存储空间满了,导致每次重启都回滚)。

为了彻底解决这个问题,我们可以按照以下几个步骤进行排查和修复:

第一步:找出并卸载那个“惹祸”的主题
既然你必须切换回 bootstrap 才能打开网页,说明默认加载的那个主题是有问题的。我们需要把它彻底删掉。

先不要执行你的修复命令,在刚重启后(打不开网页的状态下),通过 SSH 登录,运行以下命令查看当前系统正试图加载什么主题:

Bash
uci get luci.main.mediaurlbase
记下输出的结果(比如 /luci-static/argon)。

查看当前安装了哪些主题:

Bash
opkg list-installed | grep luci-theme
卸载那个损坏的主题(假设坏掉的主题是 argon,请替换为你实际查到的名字):

Bash
opkg remove luci-theme-argon
第二步:检查路由器存储空间(Overlay)是否已满
如果你的 uci commit luci 命令在执行时没有报错,但重启后依然无效,极有可能是路由器的可写分区(Overlay)已经满了(100%)。当空间满时,OpenWrt 无法保存新的配置,重启后就会丢失修改。

运行以下命令查看磁盘空间:

Bash
df -h
重点查看挂载点为 /overlay 或 / 的这一行,看 Use%(已用百分比) 是否达到了 100%。

如果是 100%:你需要清理空间,或者重置路由器。通常是因为安装了太多插件,或者系统日志占满了空间。可以尝试删除一些不用的插件来释放空间。

第三步:检查是否有开机自启脚本在“捣鬼”
有时候,某些一键安装包或固件自带的脚本会在开机时强制设置某个特定主题。如果该主题不存在或损坏,就会导致你现在的状况。

检查开机脚本 rc.local:

Bash
cat /etc/rc.local
看看里面有没有类似 uci set luci.main.mediaurlbase=... 的命令。如果有,用 vi /etc/rc.local 编辑文件,把那行删掉或注释掉(在行首加 #)。

检查自定义设置(如果你用的是某些定制版的固件,如 Lean 的 LEDE):
去 /etc/uci-defaults/ 目录下看看有没有可疑的初始化脚本。

第四步:在 Web 界面中“彻底”保存并清理缓存
如果你通过命令行修复后进入了网页,建议在网页端再彻底保存一次,这有时能触发系统更新其他的关联配置文件。

执行你那三行命令,恢复网页访问。

清理系统中的 LuCI 缓存:

Bash
rm -rf /tmp/luci-modulecache/
rm -f /tmp/luci-indexcache
登录 OpenWrt 网页后台,进入 系统 (System) -> 系统属性 (System) -> 语言和界面 (Language and Style)。

确保主题下拉菜单中选择的是 Bootstrap。

点击页面底部的 保存并应用 (Save & Apply)。

主要是结合jenkins

  1. panel 设置好svn 和cron
  2. sonarqube设置好sercet
  3. jenkins输入sonarqube的用户sercet
  4. jenkins配置好sonarqube环境
  5. jenkins创建好一个built即 任务,记住名字 比如

    Project_release_check

    在docker挂载

    主机/data/svn/prj_release

    /var/jenkins_home/workspace/Project_release_check

  6. jenkins任务设置

    sonar.projectKey=${JOB_BASE_NAME}
    sonar.projectName=${JOB_BASE_NAME}
    sonar.projectVersion=1.0
    sonar.sources=/var/jenkins_home/workspace/Project_release_check
    sonar.sourceEncoding=UTF-8
    sonar.java.binaries=.
    sonar.branch.name=${Branch}

  7. jenkins设置好定时

参考网站
https://learnku.com/articles/59179
https://sagarkpanda.medium.com/how-to-install-and-configure-sonarqube-with-jenkins-2fe6c732620

  1. 建立docker
  2. 下载CLI
    https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scanners/sonarscanner/
    注:可能需要FQ才能看见下载链接
  3. 在server端创建 project 和 token
  4. 客户端运行
    sonar-scanner -Dsonar.projectKey=项目名字 -Dsonar.sources=./ -Dsonar.host.url=生成的URL -Dsonar.token=生成的token
    注意,如果遇到这类的sb错误
    java.lang.IllegalStateException: Error when executing blame for file
    可以添加
    -Dsonar.test.exclusions=文件所在的路径