- 博客(45)
- 收藏
- 关注
原创 Python多进程时SQLAlchemy查询缓存引发的数据无法更新
当执行这个查询语句的时候,我没有进行commit,这样就会造成缓存问题,会导致在跑多进程的时候会出现数据不同步的情况,a进程对数据进行了修改,b进程获取的到的仍然是修改前的数据。接着继续,a进程此时取出来的次数应该是2,但是实际情况是取出来的还是1,加一后通过b进程入到数据库导致还是为2。在做项目的时候,我写了两个进程,一个查数据库,增加次数后把数据放入redis。a进程取出一个数据为次数为1,把这个次数加一然后放入redis。如果使用global,则全局修改的是数据库的默认隔离级别。
2024-07-30 08:47:31
572
原创 flask_apscheduler出现ValueError: Timezone offset does not match system offset: 0 != 28800
原因是:时区会被解析两次,如果没有加时区,就会调用默认的self.timezone = astimezone(config.pop('timezone', None)) or get_localzone(),由于时区与系统不匹配,会报错。在初始化时scheduler = APScheduler(BackgroundScheduler(timezone="Asia/Shanghai"))在配置文件中添加SCHEDULER_TIMEZONE = 'Asia/Shanghai'
2024-07-30 08:46:29
553
原创 mac安装m2Crypto(python)
主要是因为由于OSX升级之后 /usr/include 没有了,所以使用命令修改swig寻址路径。最后一行是完整的一行,同时在bash下可以使用\来换行使其易读。
2024-07-30 08:45:14
423
原创 yum下载一个包的所有依赖包
通常生产环境由于安全原因都无法访问互联网。此时就需要进行离线安装,主要有两种方式:源码编译、rpm包安装。源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装。
2024-07-30 08:41:07
2142
原创 删除~/.ssh/known_hosts相应ip小工具
因为工作原因,用的mac和Linux比较多,这两个系统都自带终端。好处就是ssh可以直接执行连接,但是开发环境是几个虚拟机,经常的重装,导致我的hostkey经常需要到~/.ssh/known_hosts文件下删除相应的ip,比如下面:当known_hosts文件有十几二十几行的时候vim打开查找已经是比较麻烦的事情了。身为程序员当然要写个脚本来代替自己去删除了。
2024-07-30 08:39:47
749
原创 shell脚本模拟ssh登录
使用mac的终端直接ssh,但是每次都要输入密码,不堪其扰,我就想到了用shell脚本写出一个替我自动输入密码的一个脚本。这个脚本应该也适用于Linux。
2024-07-30 08:38:09
1293
原创 sed 在替换含有反斜杠的字符报错的问题解决
s后面的会默认为分隔符,我们只需要替换掉就行,这里我把/替换成#其中$pwd_dir为/User/xxxxx/....这就会导致sed认为有多个分隔符导致匹配出问题。
2024-07-30 08:36:42
514
原创 docker中/var/lib/docker目录迁移
var/lib/docker/overlay2的占用空间很大。需要对/var/lib/docker目录进行迁移。数据较大时可能复制速度比较慢,请耐心等待。这里选择/data01为例。
2024-07-30 08:35:43
659
原创 Pycharm配置使用cmder终端
打开pycharm设置,settings>tool>terminal中修改shell path。红框处为实际的cmder安装目录。.配置pycharm。
2024-07-30 08:33:59
1270
原创 ES迁移——使用reindex
reindex是ES自带的一个用于迁移数据的api,支持按照分片大小进行分次迁移。远程迁移时要针对ES的配置文件进行修改。因为设备资源的不足,需要将旧业务平台迁移到性能更好的服务器上。相应的ES数据作为业务详情的来源也必须一起迁移。其中size需要根据一条数据大小进行设置,如果数据偏小可以设置比较大,数据偏大就设置比较小。source中参数为源集群参数,如源集群host,源集群index(index参数)其中index_list.txt为需要迁移的index名称,每行一个。ES版本相同(都是星海安装的)
2024-07-30 08:32:36
1012
原创 批量停止pg的锁表语句脚本
线上服务器每月都会创建下一个月的数据表的分区表,但是表在使用的时候创建分区容易造成锁表,所有自动化实现kill掉数据库中锁表的语句。
2024-07-30 08:31:01
448
原创 监控删除docker日志
docker容器在启动一段时间后应用服务会产生日志,当没有映射出来的时候,这些日志就会持续占用var下的目录空间,此时就需要清理这些日志。
2024-07-30 08:29:46
453
原创 查看pg中正在执行的语句
有时候代码写的不好,会导致sql性能比较差,比如乱用in_。这时候就需要查看pg中正在执行的语句,看哪些语句执行时间过长。
2024-07-30 08:28:51
624
原创 检查在 Linux 中按 RAM 或 CPU 使用率排序的进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head效果:
2024-07-30 08:28:27
447
原创 Git Merge 与 Git Rebase的区别
假设一个仓库有两条分支:master和dev,基于master分支的提交c1(ec5be)创建dev分支,在dev分支上修改文件后生成新的提交c2(76d12),此时切回master分支,不做任何修改,执行dev分支向master分支合并,Git 很懒,首先会尝试执行fast-forward合并,合并成功,master分支和dev分支同时指向提交c2(76d12),不会创建新的提交。git rebase是将一个分支的修改应用到另一个分支上,使得两个分支的修改看起来像是顺序提交的。
2024-07-26 08:45:35
665
原创 CI/CD简述
SAST(静态应用程序安全性测试):SAST是一种白盒测试方法,可以使用SonarQube,Veracode,Appscan等SAST工具从内部检查代码,以发现软件缺陷,漏洞和弱点(例如SQL注入等)。集成测试是使用Cucumber、Selenium等工具执行的,在这些工具中,单个应用程序模块被组合起来并作为一组进行测试,同时评估其是否符合指定的功能需求。因此我们首先需要了解CI/CD流程中的各个阶段,以及从快速、规模交付的视角探讨为什么CI/CD流水线对于我们的组织是必不可少的。这是一个高层次测试方法。
2024-07-26 08:43:58
511
原创 Docker与防火墙问题——不让docker创建iptables规则
所以就会出现防火墙没有开放端口,但容器启动后会自己开放,且在firewalld上是没有记录。在某一天,线上被扫出来一个服务漏洞,但是那个服务漏洞的端口不在firewalld防火墙上开放,查了大半天,发现docker自动会在iptable上面添加规则。有的到时候创建容器会因为eslinux的存在,到时一些奇奇怪怪的报错,所以这里先进行关闭。默认情况下当Docker启动容器映射端口时,会直接使用iptables开启添加端口。这里可以看出是docker的问题,所以需要修改docker的配置。
2024-07-26 08:42:01
467
原创 在pg中终止一条执行中的语句
我们在使用分区表的时候经常会使用定时任务创建分区表,但是如果表链接没有完全断开,就会锁表。此时就需要一条语句将锁表的sql给终止掉。pid即为对应的sql语句的pid。
2024-07-26 08:40:07
540
原创 查询最近一段sql日志中执行时间最长的语句
用这条语句去查最近1w行的sql日志,或者直接grep排序用sort -k 7 -r -n。注意需要打开pg日志的执行时间打印。
2024-07-26 08:36:42
568
原创 redis查看占用内存大的key
在测试环境中,经常出现某些同事乱用redis存数据,导致redis内存不够用,所以有下面的命令来查redis的内存占用和占用大的key。
2024-07-26 08:33:26
831
原创 修改git密码后重置更新git记住的密码
域账号密码到期了,进行修改之后提交代码发现git默认记住的密码还是原来的,需要重新重置一下密码进行更新。然后重新提交代码,输入用户名和新的密码即可。
2024-07-26 08:29:34
1239
原创 记录一次centos7恢复系统的过程
昨天客户反馈了一个问题,服务器突然进不去系统了,只能进入一个shell的维护系统,显示下图的样子。此方法有可能会丢失数据,推荐使用之前进入pe之类的维护系统将数据备份一下。Google之,发现应该是系统盘出了问题。
2024-07-26 08:28:05
988
原创 linux中du命令怎么显示隐藏文件夹的使用量
另外,如果你想要包括隐藏文件夹的使用量,并且只显示总使用量而不显示每个文件和文件夹的详细信息,你可以使用 --max-depth 参数限制递归深度。例如,du -sh --max-depth=1 .[!.]* * 只会显示当前目录下的一级文件夹(包括隐藏文件夹)的总使用量。请注意,这个命令会递归地计算目录中所有文件和子目录的使用量,包括隐藏文件夹及其内容。运行此命令后,du -sh 命令将会显示当前目录下所有文件和文件夹(包括隐藏文件夹)的总使用量,并以人类可读的格式输出。命令不会显示隐藏文件夹的使用量。
2024-07-26 08:23:18
1108
原创 一键删除项目中的__pycache__文件夹
在编码过程中,运行测试代码之后总会生成一些pyc文件在pycache目录下面,虽然修改.gitignore可以保证提交中不含有这些文件,但是要想获取一个干净的目录的话还是删掉为好。这里就编写了一个脚本,用来删除一个目录下所有的__pycache__目录,包括子目录下的。
2024-07-25 17:57:48
1013
原创 werkzeug.security的generate_password_hash方法的使用
然后,我们调用generate_password_hash()方法,将密码作为参数传递给它。该方法将返回密码的哈希值,将其存储在hash_value变量中。generate_password_hash()方法使用安全的密码哈希算法(如PBKDF2或bcrypt)来保护密码,并自动生成一个随机的盐值。其中,generate_password_hash()方法用于生成密码的哈希值。如果您需要自定义哈希算法的参数(如迭代次数、盐长度等),generate_password_hash()方法还提供了一些可选参数。
2024-07-25 17:48:32
501
原创 xpath获取元素属性
它将匹配具有class属性为example的div元素。@data-id部分表示要获取的属性名称。要使用XPath获取元素的属性,可以使用@符号后跟属性名称。
2024-07-25 17:43:53
429
原创 docker新版本更改数据目录提示Status: unknown flag: Status: unknown flag: --graph
错误消息 "Status: unknown flag: --graph" 指示 docker 命令中使用了未知的 --graph 标志。在 Docker 的最新版本中,不再使用 --graph 标志来指定 Docker 存储图形的位置。请注意,dockerd 是 Docker 守护进程的名称,/path/to/custom/docker/storage 是您希望指定的自定义存储路径。如果您需要指定自定义的 Docker 存储路径,可以使用 data-root 选项来替代 --graph 标志。
2024-07-25 17:42:44
515
原创 在谷歌浏览器的控制台中怎么判断一个网页是否加载完成
"interactive":文档已被解析,除了图片、样式表和iframe之外的资源都已完成加载,此时用户可以与页面交互。"complete":文档和所有子资源已完成加载。使用document.readyState属性。"loading":文档正在加载。
2024-07-25 17:41:22
609
原创 仿format()将变量嵌入替换到字符串中
在工作中遇到一个需求,需要将一个变量数组按照顺序嵌入到字符串中。这种需求第一想到的是强大的format函数,但format函数格式固定,需要使用{},所以不满足需求,只好自己写一个替换的。
2024-07-25 17:40:06
195
原创 麒麟高级服务器操作系统V10安装docker
服务采用docker启动,适配国产化麒麟V10系统,需要安装docker。使用二进制的安装方式进行安装,docker版本为19.03.15。选择对应版本的tgz包即可。
2023-09-27 10:50:21
1108
1
原创 麒麟高级服务器操作系统V10安装supervisor
安装supervisor需要先安装setuptools,这些都是python库的形式进行安装,麒麟V10内置了python3.7,可以省去安装python的步骤。下载他们的tgz包即可,本文以setuptools-67.7.2和supervisor-4.2.5版本作为示范。产品在做国产化适配,我负责对安装包,docker依赖等做适配,记录下安装supervisor的步骤。
2023-09-27 10:47:55
1366
1
原创 docker根据overlay2的目录名找到对应的容器
在工作中,有一段旧代码在容器中使用了临时文件库tmpfile,并设置为不自动删除,所以临时文件一直堆积在/tmp目录下。查到overlay2目录下的某个目录占用比较大,就需要根据目录名找到对应的容器。而容器中的tmp目录是不会清理的,终于有一天,整个var目录满了。
2023-09-27 10:41:41
539
1
原创 python将markdown转换为html并应用github-markdown-css样式
先通过python-markdown将md字符串转换成html代码,通过将其包在容器中应用github-markdown-css的样式,css文件是通过cdn导入的,如果有需要可以访问官方仓库将css下载到本地。python-markdown官方文档github-markdown-css的仓库。
2023-09-27 10:35:11
1005
1
转载 python2和python3共存(原生)
作者:Johnny Wong链接:https://www.zhihu.com/question/21653286/answer/96834584来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。## 对于 Linux ##sudo pip install sth# 或者明确版本sudo pip2 install sthsudo p
2017-12-04 07:41:37
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人