自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 内网服务器通过另一台能访问公网的服务器实现访问公网, iptables NAT

一、服务器A,能访问外网网卡eth0, 配置内网IPTYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noNAME="eth0"DEVICE="eth0"ONBOOT="yes"IPADDR=172.16.10.52 # 作为内网的网关NET...

2020-03-05 17:06:00 8678 1

原创 服务器使用国密(SM2/SM3/SM4)证书,通过浏览器访问

1. Apache + GmsslApache 本身不支持国密,需要修改代码支持GMTLS下载解压:wget http://archive.apache.org/dist/httpd/httpd-2.4.39.tar.gztar -zxf httpd-2.4.39.tar.gz修改文件:Apache dir\modules\ssl\ssl_engine_init.cSSL_C...

2019-11-28 15:50:30 11673 5

原创 Python中执行MySQL语句, 遇到同时有单引号, 双引号处理方式 !r, repr()

SQL语句:insert_cmd = "INSERT INTO {0} SET {1}".format(db_conn.firmware_info_table, ','.join(['{0}={1!r}'.format(k, str(v)) for (k, v) in info_dict.items()])){0}={1!r} 中, 设置字段的值,一般情况应该是:columnA='{}...

2018-09-09 16:03:42 3094

原创 解压、修改rpm包的内容,再重新打包成rpm

以内核开发包kernel-devel-4.19.91-007.ali4000.alios7.x86_64.rpm为例。

2024-06-25 14:57:57 928 2

原创 systemd在程序被kill -9时的动作

执行 kill -9 abc,然后立即再执行ps -ef | grep abc,发现此时多了一个父进程为1的进程,正在执行abc service中定义的ExecStop命令,而这个命令正是资源回收动作的执行者。推测这是systemd的杰作,所以在redhat6上用service管理的系统上验证,果然在 kill-9之后没有ExecStop命令执行。今天在测试程序的时候发现,使用kill -9杀死程序之后,程序的资源回收动作依旧被执行了。而且我们的service并没有特殊的配置。

2024-06-23 11:37:05 261

原创 Linux收集内存快照来使用crash分析的方法

kernel-debuginfo-3.10.0-1160.el7.x86_64.rpm和kernel-debuginfo-common-x86_64-3.10.0-1160.el7.x86_64.rpm。对虚拟机打快照,然后在vsphere对应的存储页面能找到server_name.vmem和server_name.vmsn这两个文件,可以直接下载,注意文件会比较大。除了个别情况下进程本身存在问题,自己就会crash,然后生成core之外,还可以使用gcore主动生成的进程文件。

2024-03-08 18:22:17 590

原创 Linux驱动适配内核时,对于不同版本内核中有变化函数的适配方式

Linux的驱动适配,我们都需要在对应适配的内核中去编译一次,基于这个原理,我们可以在编译时,通过测试脚本,来确定使用的函数在当前内核中是否存在,以及是怎么样的形式。

2024-03-08 18:05:51 1531

原创 tar压缩分包,解决git上传对文件的大小限制

将abc.tar.gz分成不大于20M的多个包,再提交到github.比如压缩包abc.tar.gz大于github要求的30M,

2024-02-28 16:55:24 722

原创 解决git pull时error: cannot lock ref 问题

git上pull代码时,经常遇到:error: cannot lock ref ‘refs/remotes/origin/abc/efg’: ‘refs/remotes/origin/abc/efg/1.2.3/support_ubuntu12’ exists;cannot create ‘refs/remotes/origin/abc/efg’执行命令:git update-ref -d refs/remotes/origin/abc/efg/1.2.3/support_ubuntu12。

2024-02-26 09:40:32 1679

原创 使用memove拷贝字符串重叠的部分

比如将字符串char* left = abc/def/ghi,从索引为4的位置开始拷贝,拷贝到left中,拷贝长度为9(即使更长),能够正常完成。本来考虑会出问题的点是:拷贝源也是在本来的字符串left上,加上拷贝的长度,可能会访问到超出left长度(12)的部分。使用memmove将字符串的后面的部分向前拷贝,即使整体长度超过原字符串的长度,也不会出现未定义行为。

2023-12-29 14:58:35 588 1

原创 VMware克隆Linux主机后,新主机ifconfig中的主机名和网卡配置中的不一致,ping报错:network connect unreachable

将网卡配置中和网卡缓存配置中的网卡名和mac地址都修改为与ifconfig中的一致,然后使用命令。,此文件名在不同的CentOS系统中数字可能不一致,比如可能为。目录下的网卡配置文件名为ifcfg-eno16777984,且ifcfg-eno16777984中的网卡名。为00:50:56:AC:C5:11。ifconfig命令显示网卡名为。

2022-10-26 17:43:05 1480

原创 手机丢失之后必须做的事情

当发现手机丢失后:借路人手机给自己的手机打电话,如果已经关机,那么应该是被偷了或者拾到的人不想归还;拨打运营商电话,挂失自己的手机号;如果有备用手机,那么在备用手机登录自己的微信和支付宝;如果没有,则立即拨打电话挂失,支付宝:95188;微信:https://110.qq.com/;iPhone设置手机为丢失模式,设置方法:登录https://www.icloud.com/find,注意只是用查找是不要两步验证的(即不需要手机收验证码),并记录手机最后的定位;拨打110报警,在派出所做笔录,并妥

2022-03-03 14:08:42 709

原创 MySQL连表查询并统计

表A UserIdABC表B DeviceIdUserIdaaAbbAccB目的:查询每个用户拥有的设备数量sql = SELECT L.Id, R.Id AS DeviceId COUNT(R.Id) AS DeviceNumber FROM device_user AS L LEFT JOIN device_device AS R ON L.Id = R.UserId WHERE 1 = 1 GROUP BY Id

2021-11-03 17:22:34 4871

原创 Centos yum源问题完全指南

一、repomd.xml文件问题.repo配置文件中的baseurl指定了在yum install时寻找包及其依赖的地址;时常我们在指定yum install 时会报错找不到repomd.xml文件:Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried这个错误的根本原因是baseurl指定的地址下找不到repomd.xml文件,通过vim查看/etc/yum.repos.d/

2021-09-18 23:01:11 8369 1

原创 apache2/httpd,静态/动态转发问题。

希望实现访问https://127.0.0.1:8443, 能够默认找到/var/www/static_web下的index.htm页面,同时https://127.0.0.1:8443/api/v1/account/能够直接转发到/api/v1/account/如果是以下配置:Listen 8443<VirtualHost *:8443>WSGIDaemonProcess admin processes=2 threads=15 display-name=admin python-

2021-09-18 10:34:58 565

原创 后台进程实现定时任务的原理

timer类,后台运行定义一个方法loop,一个列表timer_task,其中存储定时任务类,包含任务命令,上次执行时间,执行时间间隔等属性;loop一直遍历timer_task,判断现在距上次执行时间是否大于执行时间间隔;特别对于每天定时执行的任务,时间间隔应该计算为 每天定时执行的时刻 距 当天0点 的时间间隔;...

2021-09-15 10:34:12 462

原创 OperationalError: (1054, “Unknown column ‘*_id‘ in ‘on clause‘“), 使用db_colnum指定外键字段名

db_constraint=False 参数在Django使用外键,可以不实际在数据中产生约束。例如:class Group(models.Model): id = models.CharField(max_length=50, null=False, primary_key=True)class Device(models.Model): GroupId = models.ForeignKey(to='Group', on_delete=models.CASCADE, db_constrain

2021-09-10 19:13:03 1192 1

原创 Django count和group by顺序问题,解决被自动加入group by主键的问题

django中的数据库查询Model.objects.values('OSPlatform', 'GroupId').annotate( DeviceStatus=F('Status')).annotate(DeviceCount=Count('*'))如果values放在annotate前面,实际上的SQL会按照’OSPlatform’, 'GroupId’这两个字段group by;如果valus放在annotate后面,实际上的SQL只会有默认的grou

2021-09-08 11:04:46 459

原创 Ubuntu(debian) 程序 dep 打包

Ubuntu(debain)上的dep和Centos的rpm打包方式有相同之处,都是shell定义安装,安装之后,卸载之前,卸载之后的操作都需要定义软件包的包名,版本,维护者等等信息但定义的方式略有不同,rpm包有一个spec文件,通过%build, %install, %post等等来定义对应执行操作dep包需要定义一个DEBAIN文件夹,下面必须有文件control来定义包的信息,通过可执行文件(需设置shebang #!/bin/sh): postinst, prerm, postrm

2021-08-31 11:31:25 1357

原创 在kylin v10上编译安装gcc

编译安装需要的GCC版本,原装GCC5.4,安装GCC4.8.5List item下载gcc4.8.5, 进入目录wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gztar -zxf gcc-4.8.5.tar.gzcd gcc-4.8.5/下载依赖./contrib/download_prerequisites配置安装选项./configure --prefix=/usr/local/gcc --disab

2021-08-29 19:07:12 4881 2

原创 Django数据库update的错误操作

一User.objects.filter(Id=id_).first()user.Email = emailuser.UpdateTime = datetime.datetime.now()user.save()二user = User.objects.filter(Id=id_).first()user.update(Email=email, UpdateTime=datetime.datetime.now())注意这种更新方式并不能成功,需要直接在User后面加...

2021-08-25 11:28:15 970 1

原创 虚拟机硬盘扩容(非LVM)

扩容/根目录,/dev/xvda1通过虚拟机配置增加硬盘大小,如果在aws上,直接增加卷大小。lsblk 查看硬盘大小从50G添加到了1000Gfdisk /dev/xvda进入分区管理,输入选线p 打印出分区表输入选项d 删除原来分区,然后输入选项n再新建分区,起始位置为原来的其实位置2048,结束位置为扩容之后最大的位置,图中为直接选择默认再输入选线p查看分区,并输入w保存通过partprobe /dev/xvda 刷新分区,再查看,/dev/xvda1..

2021-08-20 11:19:05 291

原创 Docker搭建Jenkins环境实践

一、准备Docker1. 安装一键脚本curl -sSL https://get.daocloud.io/docker | sh2. 配置代理service docker start启动docker服务service docker status 查看docker状态,找到其中显示的docker服务配置文件,编辑该文件,在[service]选项下面增加:Environment="HTTP_PROXY=http://ip:8080"Environment="HTTPS_PROXY=http://

2021-08-20 10:49:13 253

原创 django.db.utils.ProgrammingError:(1146, “Table * doesn‘t exist“) 原因及其解决办法

原因一:app中migrations文件夹下每次更改产生的记录文件中,有对某张表的删除,或者字段删除操作,但是这些修改是在别人的环境中产生,而在自己的环境是第一次运行,就会在python manage.py migrate的时候先去运行删除操作,这时候就会报错django.db.utils.ProgrammingError: (1146, "Table '表' doesn't exist")原因二:在urls.py文件中有先调用该表。...

2021-08-18 16:37:10 1617

原创 Windows调用远程Windows server中的程序(installshield)进行installshield打包

build机器:client有installshield的机器: serverclient发送net use 命令到server,server 运行net use 将client的C盘(build 运行目录)映射为自己的m盘,client 运行build脚本,在脚本中需要用到installshield的时候,发送包含client运行目录(被映射到了M盘)的命令,此命令中的C:需要被替换为m:,server收到命令,并运行。实际的效果是,server调用自己机器上的installshield,对

2021-08-12 16:15:58 184

原创 M1芯片Mac,Terminal和Pycharm启动virtualenv的Python2.7环境失败

在Terminal中virtualenv -p=python2.7 envname 创建python2.7的env环境,source activate 启动virtualenv环境之后,输入python启动Python,报错:[1] 28264 killed python2.7在Pycharm中Add Python Interpreter, 选择Base interpreter: /usr/bin/python2.7, 报错:ERROR: The executable Venv/manager/bi

2021-07-29 01:25:47 646

原创 JS遍历Array, 元素为邮箱时的bug

arr = ["123@123.com"]for(let i in arr){ console.log(i); console.log(arr[i]);}此代码在浏览器的console中测试:输出为:0123@123.comS多了一个key: S, 和一个value: 打印不出来的字符串。修改为foreach, 使用正常...

2021-07-28 19:28:15 124

原创 Linux访问Windows的共享目录,pysmb(参数remote_name定义)

方案一net start 此命令只在Windows下面可用方案二sudo mount -t cifs -o username=administrator,password=password //remote_share_server_ip/share_dir ./data这条命令必须使用root权限,对于不能使用root权限的应用无法实现。没有sudo会报错:mount: only root can use "--options" option方案三Python包pysmbdef check

2021-07-26 23:26:15 3209

原创 Chrome提示网页证书不安全,但没有高级、忽略选项的解决办法

解决办法:刷新页面,然后在键盘依次打 thisunsafechrome会直接进入需要访问的页面。

2021-07-15 17:17:44 5539

原创 jQuery UI Tabs 的 select升级改动

原来代码$("#tabs").tabs({ select: function(event, ui) { $("#opertype").val(ui.index); //0: Manual 1: Scheduled 2.Source $("#messageBox").hide(); if(ui.index===0){ saveBtn.buttonBuild({name:"button_name"}); cancelBtn.show(); }el

2021-06-24 11:33:54 308

原创 Python3在doc string中设置参数和返回值的类型,Pycharm

def foo(param): """ Get update module info in AsmsConfig.ini. :type param: rest_framework.status :rtype: list of UpdateItemInfo """ result = [] info = UpdateItemInfo() result.append() return 在pycharm中能够显示foo()方法的返回值为list[UpdateItemIn

2021-06-21 19:39:20 400

原创 解决jQuery $(“#“).attr(“checked“)值为undefined的问题

jQuery版本升级, 大于1.6.1之后,$("#element").attr("checked", true) 能够设置#element的attr有checked,但是设置$("#element").attr("checked", false),再调用$("#element").attr("checked") 的返回值为undifined根据官方文档:jQuery 1.6.1 ReleasedAttribute/Property.attr().prop()accesskey✓

2021-06-04 10:48:54 896

转载 makefile中的@+-符号

【make中命令行前面加上减号】-means ignore the exit status of the command that is executed (normally, a non-zero exit status would stop that part of htat build) 通常情况下,Makefile在执行到某一条命令时,如果返回值不正常,就会退出当前make进程,通常结合 rm mkdir命令使用,(空文件或者文件不存在都会返回错误)就是,忽略当前此行命令执行时候所遇到的错误。

2021-06-01 18:05:01 1370

原创 Python2中while循环条件改变,能够立刻被监测

"""Only can run in unix, because of module python-daemon==2.3.0"""import osimport signalimport sysimport timeimport daemondef get_asms_engine_pid(): if os.path.exists('/root/test_while_dir/test_pid'): with open('/root/test_while_dir/t

2021-05-25 17:30:21 283

原创 Ubuntu编译安装python3.7.10,解决‘_ctypes‘和ssl问题, 建立软链接python3.7和pip3.7

问题1:pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available解决:sudo apt install libssl-dev问题2:ModuleNotFoundError: No module named '_ctypes'解决sudo apt-get install libffi-dev安装步骤:./configure --pr

2021-05-19 14:44:16 1978

原创 解决错误Uncaught TypeError: $(...).zIndex is not a function

function.zIndex($(input).zIndex()+1);替换成function.css( "zIndex", $(input).css( "zIndex")+1 );$(event.target).zIndex() 替换成 $(event.target).css("zIndex")

2021-05-11 17:57:01 674

原创 Python中if if else和 if elif else区别

if if else:执行完第一个if还会去判断下一个if是否满足,不满足则会执行else,即当i==’)’, stack pop弹出之后,还会去执行stack.append()stack = []for i in s: if len(stack)==0: stack.append(i) continue if i==')' and stack[-1]=='(': stack.pop() if i=='}' and stack[-1

2021-04-21 13:58:45 2096 1

原创 Django Rest_Framework 添加分页模块

settings.py 文件中的REST_FRAMEWORK = {}配置中,增加'DEFAULT_PAGINATION_CLASS': 'util.custom_pagination.CustomPagination','PAGE_SIZE': 20,View中return 的data只包含数据列表[data], 会自动添加上分页信息,变成:{ "count": 12, "next": "request url", "previous": null, "re

2021-03-25 18:36:48 81

原创 subprocess.Popen获取子程序输出

new_child = subprocess.Popen([self.manage, worker], stderr=subprocess.PIPE)for line in iter(new_child.stderr.readline, ''): logger.debug(line)

2021-03-01 18:39:35 1437

原创 只在git中删除,不删除本地文件

git 不小心提交不需要的文件夹,不删除本地文件,只在git中删除#--cached不会把本地的文件删除git rm -r --cached .vscode git commit -m 'delete .vscode'git push

2021-02-23 16:23:22 1747 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除