首页
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
篇与
的结果
2024-09-14
docker挂载文件修改不同步、未同步
背景 某次修改宿主机挂载到 docker 容器上的文件内容后,在容器内查看文件内容出现错误 英文环境:stale file headle 中文环境:文件句柄失效 后面经过测试,还可能出现文件内容不一致,容器内的没有同步修改 原因 经过检索后,确定了问题:docker 挂载文件时,并不是挂载了某个文件的路径,而是挂载了文件的inode 某些编辑器(vi)在编辑保存文件时,采用了备份、替换的策略,即编辑过程中,将变更写入新文件,保存时,再将备份文件替换原文件,此时会导致文件的inode发生变化。原inode对应的文件其实并没有发生修改。 解决办法 避免使用 vim ,它会执行这种策略,或者设置 backupcopy=yes 文件权限修改为 666 或者 777, vim 则会保持 inode 不变 经过测试,及时没有使用上面的方法, vim 不是都会修改 inode 号,目前还没有发现规律(什么时候才会更换 inode),但为了保险,建议后续修改文件的时候都按照要求
2024年09月14日
9 阅读
0 评论
0 点赞
2024-09-14
python3 requests SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure
报错 python3 requests模块请求https环境报错如下内容: requests.exceptions.SSLError: HTTPSConnectionPool(host='192.168.192.21', port=443): Max retries exceeded with url: /web/wdashboard/cn/summary.html (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure 一开始以为是不支持 sslv3 的问题,使用 openssl 测试发现服务端是使用的 tlsv1.2 ,那就不是协议问题,经过检索后确定是加密套件不匹配导致 解决办法 安装旧版本 requests==2.24.0 和 urllib==1.25.11 然后在请求的时候增加 verify=False,不安装这两个旧版,verify不生效 requests.get(url=url, headers=headers, verify=False) 可以使用 pip3 list 查看已经安装的版本,然后使用 pip3 uninstall 卸载 再使用 pip3 install requests==2.24.0 安装指定版本
2024年09月14日
7 阅读
0 评论
0 点赞
2024-09-10
Atlassian产品破解
破解方法和产品 参考工具和文档: https://github.com/caelumlux/atlassian-agent 虽然代码已经有一年甚至两年未更新,但是按照宣传,可以实现所有 atlassian 产品的破解,并且实际测试破解 Crowd 6.0.2 版本,此版本的更新时间是 2024.09.04 没有问题 步骤 代码拉取、编译无问题,使用 mvn package 之前最好配置国内源,查看了代码操作,应该没有安全问题 接下来按照文档步骤操作即可,要注意的是 -p 参数,前面的是需要的值,应该写比如 crowd,而不是 Crowd,否则 license 无效。最后安装模板也是同样的办法,先安装,然后找到模块对应的 序列号 、应用密钥 即可 以下是代码归档 1725938692-atlassian-agent.tar
2024年09月10日
11 阅读
0 评论
0 点赞
2024-09-10
crowd密码过期通知
背景 公司使用的 crowd 一直没有升级,版本是 2.11.1 ,一直以来用户密码过期时间是一年,但是都没有通知功能,很多用户登录很多次不行,又来咨询,互相都浪费了不少时间,所以这次决定想一个办法解决密码过期通知的 办法 通过查询资料,找到了两个办法: 升级到新版本,已经测试新版本在邮件配置的后台有了密码过期通知的模板,说明后来是新增了这个功能的 使用自定义的脚本,需要在数据库中检索密码将要过期的用户,拿到用户邮箱发送通知 选择 两个办法优劣如下: 升级到版本是优先考虑的选项,但是存在几个问题 a. 一是公司还使用了同时期的 confluence、jira b. 其他第三方的服务也跟 crowd 做了对接 c. 最后 OA 还使用了 crowd 的 api 接口做用户管理 d. 没有最新license,可能还需要破解,存在安全以及稳定性的问题 e. 最后还需要从 2.11.1 版本恢复数据到 6.0.2 功能和稳定性也未知 f. 综合考虑目前升级版本风险无法控制,可能需要暂缓 使用自定义脚本的方式来通知,优劣如下: a. 可以自己检索任意时间、用户进行通知都可以 b. 是否准确、以及通知的稳定性未知,主要是功能方面 c. 综上,目前来看的话,使用这种方法在安全性上可以得到保证 脚本 脚本如下: #!/bin/bash host="192.168.xx.xx" port=3336 user="crowd" pass="crowd" db='crowd' sql="select * from (select concat(u.first_name,u.last_name) as full_name, u.email_address, DATE(FROM_UNIXTIME(ua.attribute_value/1000)) pwd_last_changed, DATEDIFF(DATE_ADD(FROM_UNIXTIME(ua.attribute_value/1000), INTERVAL da.attribute_value DAY), NOW()) days_before_expire from crowd.cwd_user u inner join cwd_user_attribute ua on ua.user_id=u.id and u.active='T' and ua.attribute_name='passwordLastChanged' inner join cwd_directory_attribute da on u.directory_id=da.directory_id and da.attribute_name='password_max_change_time' order by days_before_expire) t where t.days_before_expire in (0,1,7)" #sql="select * from (select concat(u.first_name,u.last_name) as full_name, # u.email_address, # DATE(FROM_UNIXTIME(ua.attribute_value/1000)) pwd_last_changed, # DATEDIFF(DATE_ADD(FROM_UNIXTIME(ua.attribute_value/1000), INTERVAL da.attribute_value DAY), NOW()) days_before_expire # from crowd.cwd_user u # inner join cwd_user_attribute ua on # ua.user_id=u.id # and ua.attribute_name='passwordLastChanged' # inner join cwd_directory_attribute da on # u.directory_id=da.directory_id # and da.attribute_name='password_max_change_time' # order by days_before_expire) t # where email_address='yuc@succez.com'" text=$(mysql -u${user} -h${host} -p${pass} -P${port} -D${db} -N -e "${sql}") dddte=`date +%F_%T` echo "===================== ${dddte} Execute ======================" echo "$text" | while read line;do read name mail days <<< $(echo $line | awk '{print $1,$2,$4}') ddate=`date +%F_%T` #echo $name #echo $mail #echo $days # send mail to user mail echo "----------------- ${ddate} ------------------" >> ~/crowdmail.log echo -e " ${name} 你好, 你的 Crowd 密码即将过期,剩余天数为: ${days} ,请在过期之前登录 openvpn 到站点: https://crowd.xx.com/crowd 修改新密码 " | mailx -v -s "Crowd密码过期提醒" $mail &>> ~/crowdmail.log # 记录 echo $ddate $line >> ~/crowd.pass done SQL 参考 官方 JIRA 中问答(在历史版本中没有此功能的解决方案) 然后 mailx 需要配置下邮箱,这里使用的是阿里云的邮件服务
2024年09月10日
3 阅读
0 评论
0 点赞
2024-08-28
超大文件的修改编辑方法
背景 想象一个场景,假如有一个导出的数据库纯文本文件需要更改其中一两行的内容,有什么快速有效的办法? 服务器配置好的情况下: 当文本内容是十几G的时候,我们可以考虑使用 vim 来修改,无非是定位行,搜索关键字,更改后保存慢一些 当文本内容是几十G的时候,我们可以考虑使用 sed 等命令搜索更改文本内容,这时候保存是非常慢的,vim几乎处理不了了,并且这些命令会全量的生成临时文件,需要两倍的文件空间,最后替换才能保存成功 那么就没有好办法,能够直接修改文件的部分内容,而不需要这么长时间吗,就算仅修改文件起始行的某个字符这样的简单需求 方案 反向推理,我们需要一个手段能截断文件的内容,让需要修改的部分不要那么大,在修改完成后再合并这些内容即可 方案1 最开始我想到的是 split,它能够切割文件,并且它切割的速度是非常快的,假如有一个 270G 的文件需要修改,那么我可以切割成每个文件为 40G 甚至 20G ,在某个文件中修改完指定内容后合并所有文件即可。这里面花费的时间主要有几个: 按照每个子文件大小为 20G 切割一个 270G 的文件 (这部分也比较慢,raidz3机械400M左右读写需一个小时) 找到需要修改的内容,如果内容比较靠前或者靠后那么基本是第一或者最后一个文件 修改文件,文件只有20G了,那么修改的速度是可以接收的 合并文件 (这部分的时间也比较慢,大概670秒) 方案2 上面方案中切割文件虽然从理论上比直接修改原文件更好,比如不需要生成全量临时文件,修改的时候只改一部分,时间和操作可控(相对于直接修改270G文件时间是未知数)。但它仍然是有很大的缺陷 它仍然需要修改数十G的文件,并且切割和合并慢,总之就是需要操作的还是文件太大 那么有没有方法能够把文件的一部分切割出来,修改之后再替换呢? 这样似乎就规避了所有的缺点,答案是有的,我们可以使用 dd 来实现。大致的思路如下: 首先我们把文件需要修改的一部分切割下来,这里可以使用 dd or head or tail,这部分的重点是 最好能够截断到某一完整的行,所以多几行也是没关系的,原因后面会介绍,然后记录文件的字符数wc -c 接下来修改截断的这部分内容,就算截取了几万行,几十万行,甚至上百万行,这个速度仍然是很快的 重点: 修改之前查看文本最后是否存在换行符,如果没有 vim 需要设置 binary, noendofline 这样vim不会自动添加,否则vim会自动添加一个换行符,导致文件格式出现问题 接下来调整文件的字节数,保证修改后的文件与截断之前的文件字节数一致,使用 wc -c 确认,如果长度变了,覆盖文本的时候会有问题,举例:原文本是26个字母,然后截取前8个修改内容,但是修改后长度变成了16,那么会覆盖这16个字母到源26个字母中,中间不想被修改的部分也被覆盖了,所以这里重点注意 在覆盖文件后,查看处理后的文件,有两个地方要检查,分别是:修改的地方是否成功,覆盖的末尾处是否存在截断或者内容不匹配等 实际操作: 使用 dd or head or tail 取文件需要修改的附近处,dd 设置 bs=1 大概率不是完整的行,需要设置 vim binary, noendofline , 而 head, tail 一般都是完整的行,可以不需要设置 查看文件的字符数,wc -c 修改文件内容,使用你喜欢的方式即可 查看新字符数是否跟之前一致,少了则补,多了则删 覆盖新文本到原文本 dd if=temp.txt of=access.txt conv=notrunc,最重要的是后面这个参数,一般使用 dd 会把文件覆盖成新文本,就是新文本内容比原文本短的话,多余的会被截断,相当于只会保留新文本,使用这个参数后会保持原文本后面的内容不动
2024年08月28日
6 阅读
0 评论
0 点赞
1
...
8
9
10
...
58