首页
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
篇与
的结果
2022-06-13
相同内容文件压缩后md5校验值不同的问题
0x1 奇怪的问题 一般我们经常使用md5来校验文件一致性,大多数时候都没有问题。但是最近在做压缩测试,想确认文件有无问题,先cp -a复制了一份目录为备份文件,再把两个目录使用相同命令压缩,校验md5却发现值不同 [root@localhost 123]# du -sb * 117569124 mat 75331667 mat.tar.gz 117569124 mmm 75333283 mmm.tar.gz [root@localhost 123]# ls -l total 147152 drwxrwxr-x 7 root root 4096 Jul 16 2021 mat -rw-r--r-- 1 root root 75331667 Jun 13 17:02 mat.tar.gz drwxrwxr-x 7 root root 4096 Jul 16 2021 mmm -rw-r--r-- 1 root root 75333283 Jun 13 17:03 mmm.tar.gz [root@localhost 123]# stat *gz File: ‘mat.tar.gz’ Size: 75331667 Blocks: 147144 IO Block: 4096 regular file Device: 803h/2051d Inode: 1853497 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-06-13 17:03:11.688382823 +0800 Modify: 2022-06-13 17:02:56.342809111 +0800 Change: 2022-06-13 17:02:56.342809111 +0800 Birth: - File: ‘mmm.tar.gz’ Size: 75333283 Blocks: 147144 IO Block: 4096 regular file Device: 803h/2051d Inode: 1853498 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-06-13 17:03:11.878389933 +0800 Modify: 2022-06-13 17:03:07.281218061 +0800 Change: 2022-06-13 17:03:07.281218061 +0800 Birth: - [root@localhost 123]# md5sum *gz e50a6873bbda5495395ca2bb810a01dc mat.tar.gz f087a1e58d12e2df5794126259b43ad5 mmm.tar.gz 可以看到复制目录和原目录本来大小是一致的,但压缩后大小不一样了,md5值变了 0x2 进一步测试 根据上面的问题,我们先后压缩同一份目录发现也可以复现,经过网上搜索后发现是跟时间有关系,目录access时间不同导致最后压缩后文件md5不一致,但是更有趣的是压缩过程会修改access的时间,导致每次打包后md5值都不一样
2022年06月13日
1,548 阅读
0 评论
0 点赞
2022-06-13
nginx做文件服务器的优化
背景 目前大部分浏览器已经不支持ftp协议了,win11也移除了支持ftp的ie,那么现在使用ftp有几个方案: 使用资源管理器,但界面看起来就不太舒服了 使用cmd匿名登录或者wget下载指定文件,浏览文件不方便 使用第三方工具登录ftp或者下载ftp文件,浏览文件不方便 解决 其实下载ftp和查看ftp文件都还是支持的,只是更好的观赏性和便利性已经不支持了。而且ftp的重要功能是上传,对于内网大部分的用户而言他们都不需要上传,所以我们新增一个http协议吧,让下载/浏览/便利重新回归,此次使用nginx的文件下载功能。 nginx文件下载 nginx最小化的编译安装也是支持文件下载的,参数如下: server { listen 80; location / { autoindex on; root html; } } 这个配置满足了文件下载功能,但是有几个问题:中文文件名乱码,文件名超过一定字符显示不完整,再就是不够美观。所以采用开源模块fancy来解决此文件。 优化 fancy主体,此模块编译进nginx https://github.com/aperezdc/ngx-fancyindex 主题优化代码 https://github.com/TheInsomniac/Nginx-Fancyindex-Theme 安装后更新为如下代码: # 其中主题解压到了/var/ftp/pub/fancyindex,其他方法貌似访问有问题 # 前面三个参数功能nginx默认是支持的,把fancy改成auto就行了 server { listen 80; charset utf-8,gbk; location / { fancyindex on; fancyindex_localtime on; fancyindex_exact_size off; fancyindex_name_length 500; fancyindex_header "/fancyindex/header.html"; fancyindex_footer "/fancyindex/footer.html"; fancyindex_ignore "fancyindex"; alias /var/ftp/pub/; } }
2022年06月13日
744 阅读
0 评论
0 点赞
2022-06-13
docker通过宿主机PID获取容器
场景 某docker的宿主机很卡,显示负载很高,可能是由某个容器导致的,但是通过宿主机的top看资源使用没有明显的异常,不能很好区分,其他的异常表现为显示有zombie进程,那么现在查出进程号后如何知道宿主机的此进程号对应的哪个容器呢? 解决 其实对于正常情况来说查进程号是能够看到容器不少信息的,如果没有大量重复容器的情况下基本上能够通过这些信息定位到相关的容器。但是我们遇到的情况是: 第一有大量重复的容器,正常情况查询宿主机进程显示的内容都是一样的 第二此进程已经zombie,显示的内容为僵尸进程内容,所以需要使用以下命令来查询此进程号对应的容器: docker inspect -f '{{.State.Pid}} {{.Id}}' $(docker ps -q) | grep <Pid>
2022年06月13日
906 阅读
0 评论
0 点赞
2022-06-09
windows下tomcat乱码
cmd的乱码问题解决方案 方法1: tomcat/conf/logging.properties中如下改成GBK修复在cmd中乱码的问题 java.util.logging.ConsoleHandler.encoding = GBK #java.util.logging.ConsoleHandler.encoding = UTF-8 方法2:
2022年06月09日
1,237 阅读
0 评论
0 点赞
2022-06-07
jenkins api触发构建
0x0 背景 基于文档jenkins构建docker镜像的问题,现在有了进一步的需求,在构建镜像的时候需要定制oem版本的包,或者后续可能会有多个版本,那么每个版本都新增一个jenkins任务维护起来太过于麻烦,所以需要有办法能提供一个通用的打包任务 0x1 问题 要能够通用的打包任务,重点在于以下: 打包的时候来提交参数,war的地址/war的版本来定制,其他的代码文件与之前的固定版本一致即可 基于上面这个问题,要么jenkins任务的时候弹窗给出参数,要么使用接口来触发任务了 0x2 解决 以上第一个问题是没有问题的,当前固定版本的构建也是通过脚本获取了war文件和war版本信息,后续的操作跟文件无关了,所以这部分代码通用。第二个问题选择使用jenkins api的方式触发构建 0x3 jenkins api jenkins api需要token鉴权,所以使用一个普通用户创建一个token即可(保证安全),登录jenkins后点击用户名,再选择configure,最后选择show Legacy API Token,即可复制出有效token,之后再按照jenkins api文档给出的示例调用方式,这里还有一个重点问题,因为需要提供参数,所以接口要选择'/buildWithParameters',但使用下面调用请求返回报错: curl -XPOST http://jenkins.xxx.com/job/镜像-common/buildWithParameters --user yuctest:xxxxx4a25f85629a846ba7285d7xxxxx --data war=ftp://192.168.xx.xx/xxx/xxx/123.war --data version=cccccc 前端的报错内容很模糊,无参考价值,但jenkins后台日志提示如下: java.lang.IllegalStateException: This build is not parameterized! 基本上可以推断出我们使用的传参接口,但是创建的任务却没有启用相关的功能,所以应该要修改以下任务。 在任务配置的通用栏下,可以看到选项'This project is parameterized',勾选后还要继续设置传送哪种参数,否则是无法保存的,我们这里需要传送两个参数,并且都是字符串,所以选择了string类型,并且设置名称,值可以不设置,之后变可以在后面的执行步骤中获取这两个变量了 0x4 最后 使用接口测试就没有问题了,余下的步骤也参考之前的固定版本就行 20220609 在jenkins中点击构建的时候会弹到参数页面,输入给定的参数就行了,不是一定需要通过api调用
2022年06月07日
1,210 阅读
0 评论
0 点赞
1
...
49
50
51
...
58