首页
Search
1
v2ray异常错误之二
3,310 阅读
2
linux时区设置
2,698 阅读
3
DB2常用操作
2,173 阅读
4
websphere修改jvm内存xmx和xms
1,929 阅读
5
nfs客户端文件属主为nobody的现象
1,552 阅读
技术
生活
运动
游戏
电影
登录
Search
标签搜索
docker
linux
troubleshooting
nginx
secure
truenas
mysql
windows
python
esxi
docker swarm
oracle
zabbix
tomcat
blog
dsm
群晖
rpa
freenas
db
yuc
累计撰写
291
篇文章
累计收到
0
条评论
首页
栏目
技术
生活
运动
游戏
电影
页面
搜索到
289
篇与
的结果
2025-01-17
mysql锁问题Lock wait timeout exceeded; try restarting transaction
问题 某同事提交故障如下: 显示执行的SQL为: UPDATE USER_STATUS SET REMEMBER_ME = '[["soo6K5cZk","thilY3jZk","5865d0554677eff2ba06014891a5635a",1734675764872]' WHERE USER_ID = 'xxx' # 报错 Lock wait timeout exceeded; try restarting transaction 排查 查询当前运行的sql,以分析是否有锁冲突 show processlist; # 结果只有当前运行的sql,这条update只有单条数据,理论上应该很快,但当前已经执行了超过 40 秒,到最后反馈超时 查询当前的事物表,存在哪些事物在执行 select * from information_schema.innodb_trx; # 查询到这条sql已经回滚结束了,但是仍然有一个几小时之前的事物,没有显示sql语句 根据其id,和运行中的信息关联查询 select * from (SELECT * FROM information_schema.processlist p LEFT JOIN information_schema.INNODB_TRX t ON p.id = t.trx_mysql_thread_id) a where id=7936144\G; # 发现其状态是 Running,但没有sql 如何处理 评估对业务影响不大,所以杀掉这个线程id后执行正常
2025年01月17日
4 阅读
0 评论
0 点赞
2025-01-17
wordpress修改背景
目标 目前是纯白色背景,修改背景后达到更好的展示效果 修改 在 外观 -> 自定义 -> 额外CSS 中增加如下内容 body{ background-image: url(https://xxx.xxx.xxx/wp-content/uploads/beams-components-24fbfee2.png); background-size: 2000px; background-position: center -600px; background-repeat: no-repeat; background-attachment: fixed; } 其中图片可以采用 1846x1256 分辨率大小,大小推荐在 400K 以内,尽量节省带宽
2025年01月17日
2 阅读
0 评论
0 点赞
2024-12-17
docker pull镜像拉取(加速、代理)
问题背景 现在国内已经完全墙了 dockerhub 导致镜像无法正常拉取,除了设置国内的镜像源加速外,以下再介绍两种方式 主流Linux方案 使用 proxychains 这个工具可以让执行的命令走代理 增加docker的代理配置 新增如下文件 mkdir -p /etc/systemd/system/docker.service.d vim /etc/systemd/system/docker.service.d/http-proxy.conf 新增的文件中添加如下内容: [Service] Environment="HTTP_PROXY=http://127.0.0.1:8118" Environment="HTTPS_PROXY=http://127.0.0.1:8118" Environment="NO_PROXY=localhost,127.0.0.1" 重启 docker 进程生效 sudo systemctl daemon-reload sudo systemctl restart docker 群晖方案 群晖无法很好的安装 socks 转 http 协议的工具,如 privoxy,也无法安装 proxychains,那么应该如何解决这个问题? 根据测试的结论,还是使用 systemd,步骤如下: 创建以下目录和文件 /etc/systemd/system/pkg-Docker-dockerd.service.d/http-proxy.conf # 7.1版本的目录,如果是其他版本目录结构不同 2. 文件内增加如下内容: ```sh [Service] Environment="HTTP_PROXY=socks5://127.0.0.1:1086" Environment="HTTPS_PROXY=socks5://127.0.0.1:1086" # 也支持使用 socks5 协议 重启服务生效 systemctl daemon-reload systemctl restart pkg-Docker-dockerd.service 如果修改了代理地址,也需要重启生效,为了减少对运行容器的影响,建议开启 live restore
2024年12月17日
9 阅读
0 评论
0 点赞
2024-11-29
idea的编译和使用
注意项 使用 idea 打开 class 与 jd-gui 确实差别很大,所以建议用程序对应的 jdk 版本启动 jd-gui 并且获取 java 代码,再就是 jd-gui中 复制代码也有丢失现象,用左上角保存代码吧 编译的时候可能出现代码不全有依赖项目中的其他类,最好是把整个项目都拿过来 项目右键 open module settings ,在里面设置对应的 jdk 版本,与项目使用的一致 编译的时候差一些模块,因为实际运行可能是在 tomcat 中,而 tomcat 是有的,所以可以拷贝对应jar,然后在 open module settings 设置的 dependencies 中把新加的 jar 目录加载进来 编译仍然可能出现模块不存在的现象,但是通过 import 显示的路径找目录怎么样都是确定存在的 查了很久也没查到原因,发现鼠标放到 import 的每一级路径都是可以 jump to souce 的,于是一级一级跳转,发现某一级的时候跳转到不正确的目录的,有了这个信息后调整了 dependencies 中的加载顺序,暂时解决了,不知道有没有更简单的方法 用上面方式拿掉了这行 import 代码重新编译成功了,但是替换运行后报错找不到类 经过摸索排查,发现反编译 java 文件修改需要添加一行 package,用于声明路径,至此问题解决
2024年11月29日
5 阅读
0 评论
0 点赞
2024-11-28
crowd密码强度提升
问题背景 crowd 旧版本在修改密码的时候对密码强度要求不高,存在安全隐患,现研究如何提升 crowd 用户的密码强度策略 检查配置 查看了 crowd 后台配置,发现并没有跟密码相关的配置部分,那么只能想其他办法了 通过查看部署文件,发现可能通过修改代码的方式加强策略,具体找出了以下几个可能有关的文件: crowd-webapp/WEB-INF/classes/com/atlassian/crowd/console/action/ChangeExpiredPassword.class crowd-webapp/WEB-INF/classes/com/atlassian/crowd/console/action/ResetPassword.class crowd-webapp/WEB-INF/classes/com/atlassian/crowd/console/action/user/ChangePassword.class 计划反编译后修改源码实现密码强度的增强校验 配置过程 本次使用到了如下一些工具: jdk8_131 crowd 的启动运行jdk jd-gui 反编译 class 文件为源码 jet-brains idea 修改源码并且重新编译 使用上面的工具反编译后几个文件内都有如下代码,看起来用于密码的强度校验,所以可以从这里入手: private void doValidation() { if (StringUtils.isBlank(this.password)) addFieldError("password", getText("passwordempty.invalid")); if (StringUtils.isBlank(this.confirmPassword)) { addFieldError("confirmpassword", getText("passwordempty.invalid")); } else if (!StringUtils.equals(this.password, this.confirmPassword)) { addFieldError("password", getText("passworddonotmatch.invalid")); } } 修改为如下代码: private void doValidation() { if (StringUtils.isBlank(this.password)) { addFieldError("password", getText("passwordempty.invalid")); } else { String regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!#<>@$%^&*\\-_+=|;:,.<>?/]).{8,}$"; if (!this.password.matches(regex)) addFieldError("password", "密码包含大写字母、小写字母、数字、特殊字符@#./-_<>+=?!$%^&* ,并且不少于8位"); } if (StringUtils.isBlank(this.confirmPassword)) { addFieldError("confirmpassword", getText("passwordempty.invalid")); } else if (!StringUtils.equals(this.password, this.confirmPassword)) { addFieldError("password", getText("passworddonotmatch.invalid")); } } 上面修改后的代码强度策略为:最少一个大写、一个小写、一个数字、一个特殊字符。但特殊字符只是尽量扩展了,并没有完全包括所有的字符,目前单文件强度测试是符合预期的 应用测试 在重新编译生成 class 后替换原环境,分别测试在管理员后台修改密码、在普通用户后台修改、过期修改、忘记密码、邮件重置 等都测试成功 使用如下代码可在 vscode 运行测试效果 public class PasswordValidator { public static void main(String[] args) { // 测试密码 String password = "1Password."; // 测试密码可以修改 // // 调用验证密码的方法 if (!isValidPassword(password)) { System.out.println("密码需包含大写字母、小写字母、数字、特殊字符@#./-_<>+=?!$%^&* ,并且不少于8位"); } else { System.out.println("密码验证通过!"); } } // 密码验证方法 public static boolean isValidPassword(String password) { // 密码的正则表达式 // String regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$"; // old String regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!#<>@$%^&*\\-_+=|;:,.<>?/]).{8,}$"; // new // 使用正则表达式进行匹配验证 return password.matches(regex); } } 20241125 在研究 crowd 新增 directory 的时候,发现 directory 的配置页面是可以设置密码复杂度正则的,后续可以测试下这里是否能控制住
2024年11月28日
4 阅读
0 评论
0 点赞
1
...
5
6
7
...
58