自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用python wasmtime调用rust生成的wasm库

本文介绍了使用python wasmtime来访问rust库的便捷方法,步骤极其简练,可以在生产环境中使用。

2023-01-02 00:13:22 1310

原创 gitlab容器prometheus和sidekiq日志增长过快的一种解决方案

最近发现一台服务器docker容器所占磁盘空间巨大,排查发现是git容器日志增长过快,约每天增长数十G。查看日志内容,发现其中prometheus和sidekiq极多,这些都是我们目前没有用到的组件。gitlab管理界面上将其关闭时出错,于是通过修改配置文件解决。

2022-12-14 20:12:15 1332

原创 使用腾讯企业邮箱发送邮件的Python脚本,支持发送给多人

【代码】使用腾讯企业邮箱发送邮件的Python脚本,支持发送给多人。使用方式极其简洁。示例用法详见代码底部。

2022-12-12 21:28:09 1005

原创 使用Python生成四种字符组合的复杂随机密码

使用Python的random和string库生成大写字母、小写字母、数字、特殊字符(14个)这四种字符组合的复杂度较高的随机密码。精选特殊字符,兼容性好。:P

2022-12-08 22:41:07 1105

原创 CentOS8上部署NFS服务端和客户端

配置NFS共享存储,多客户端可写

2022-12-01 22:33:17 1202

原创 容器化技术最佳实践2--制作自己的Docker镜像

【代码】容器化技术最佳实践2--制作自己的Docker镜像。

2022-12-01 22:10:21 567

原创 容器化技术最佳实践1--容器化技术简介与Docker入门

容器化技术是大势所趋,使用rootless(非特权用户)来运行容器是非常好的实践方式。

2022-12-01 15:12:57 658

原创 使用mosquitto处理MQTT消息(支持离线消息)

Linux上使用mosquitto发布和订阅MQTT消息,支持离线消息、消息过期机制。

2022-09-01 15:49:58 1096 1

原创 MacOS Apple M1上安装tensorflow2使用其原生GPU

安装Mambaforge首选推荐安装Mambaforge, 也可以安装miniforge3。项目链接:https://github.com/conda-forge/miniforge/创建conda虚拟环境conda create -n tf270 -c apple tensorflow-depsconda activate tf270pip install tensorflow-macos tensorflow-metal测试安装是否成功import tensorflow as tfpr

2021-12-15 16:42:30 3169 2

原创 pyaduio使用指定设备录制或播放音频

获取设备列表import pyaudiop = pyaudio.PyAudio()#print(p)device_index = 0for i in range(p.get_device_count()): device_info = p.get_device_info_by_index(i) if device_info.get('name', '').find('i2s') != -1: print(device_info) device_in

2021-12-13 18:18:35 5311 8

原创 在Ubuntu 20上安装bazel

Ubuntu 20官方仓库没有bazel这个编译工具,可以通过如下方式安装:设置bazel的镜像源sudo apt install curl gnupgcurl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpgsudo mv bazel.gpg /etc/apt/trusted.gpg.d/echo “deb [arch=amd64] https://storage.googleapis.c

2021-12-12 19:36:20 5346 2

原创 在树莓派raspberry 3B上安装tensorflow python运行时环境tflite-runtime

tflite-runtime python库网址https://google-coral.github.io/py-repo/tflite-runtime/下载安装tflite-runtimewget https://github.com/google-coral/pycoral/releases/download/v2.0.0/tflite_runtime-2.5.0.post1-cp39-cp39-linux_armv7l.whl#sha256=44ade5fa9d429ff7fcd439b596

2021-12-12 17:47:28 2035

原创 批量拷贝公钥到新上架机器的方式

批量拷贝公钥到新上架机器的方式新服务器上架后,需要配置公钥、修改密码,可用ansible-playbook批量修改:# 安装依赖包# sudo apt install sshpass# 拷贝root公钥到远程主机root用户,远程机器上的huzhenwei用户需要在sudo组里sudo -H ansible-playbook /etc/ansible/playbooks/user-root.yml -u huzhenwei -k --become-user=root --become-metho

2021-10-15 17:41:33 265

原创 使用ansible修改远程主机用户密码

使用ansible修改远程主机用户密码创建新的密码在自己的电脑上运行:openssl passwd -6 "新的密码"将打印出来的字符串贴到playbook中- hosts: "{{ group }}" tasks: - name: "Manage group huzhenwei" group: name: huzhenwei state: present - name: "Manage user huzhenwei" u

2021-10-15 17:30:59 741

原创 centos上安装trac任务管理系统

目录1. 引言... 41.1 文档用途... 41.2 阅读对象... 41.3 名词术语... 41.4 参考资料... 42. 系统介绍... 52.1 系统概述... 52.2 运行硬件环境... 52.2.1 应用服务器... 5

2021-10-15 17:26:14 258

原创 服务器安全管理规范

服务器安全管理规范文章目录服务器安全管理规范Linux服务器安全管理规范系统安装堡垒机账号登录安全策略sudo策略审计策略应用策略防误操作策略Linux服务器安全管理规范系统安装同类型同配置服务器数量超过20台时,应制作自动安装镜像来进行无人值守安装,避免人工安装导致的不一致物理机操作系统使用最小化安装模式如需图形界面,应安装在虚拟机上磁盘分区采用主流模式(如CentOS7采用LVM卷管理系统、xfs文件系统)磁盘条带化采取:软RIAD或硬RAID,LVM文件系统选择主流:xfs,ex

2021-10-15 17:06:07 2795

原创 git服务器Gitea安装及维护方式

Gitea安装及维护方式文章目录Gitea安装及维护方式gitea介绍docker-compose方式安装设置编辑docker-compose.yml文件安装及启动服务查看状态初始化设置启动停止方式gitea介绍Gitea 是一个自己托管的Git服务程序。他和GitHub, Bitbucket or Gitlab等比较类似。详见:https://docs.gitea.io/zh-cn/docker-compose方式安装设置编辑docker-compose.yml文件创建docker-compo

2021-09-29 13:29:24 617

原创 postgresql忘记密码了,重置postgres用户密码的方式(docker下)

# 进入docker容器sudo docker exec -it my_postgres bash# 运行psql命令psql# 或psql -U postgres -d postgres -h 127.0.0.1 -p 5432# 修改ALTER USER postgres WITH PASSWORD 'NewPassword';\q

2021-09-13 18:14:22 1959

原创 便捷设置swap交换分区的方式

便捷设置swap交换分区的方式创建和使用交换分区# 本示例创建了一个128G的交换分区,创建前先df -h看下是否有足够空间sudo fallocate -l 128G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfile将分区写入到/etc/fstab使用sudo vim /etc/fstab编辑/etc/fstab,在文件末尾加入如下行:# sudo vim /etc/fstab/sw

2021-08-05 10:24:13 159

原创 设置MySQL表的只读授权和取消授权

设置MySQL表的只读授权和取消授权授权所有表的只读权限GRANT SELECT ON spug.* to grafana@'%' IDENTIFIED BY '******';FLUSH PRIVILEGES;授权制定表的只读权限GRANT SELECT ON spug.blocks to grafana@'%' IDENTIFIED BY '******';GRANT SELECT ON spug.miner_lucky_val to grafana@'%';撤销对表的授权revok

2021-06-25 10:35:25 2579

原创 检测域名是否有IPv6的解析的方法

使用dig命令dig aaaa ipv6.google.com.hk或者dig @8.8.8.8 aaaa ipv6.google.com.hk使用ipv6-test.com网站http://ipv6-test.com/validate.php?url=http://www.microsoft.com将上面的www.microsoft.com改成想要检测的域名即可

2021-06-17 17:15:21 7539 1

原创 部署auditd对关键服务器上的操作进行审计

部署auditd对关键服务器上的操作进行审计文章目录部署auditd对关键服务器上的操作进行审计安装auditd包编写针对aaa、bbb程序文件的执行、写入的auditd rules(审计规则)拷贝auditd rules到远程主机设置auditd服务开机自启动重启auditd服务相应ansible playbook及运行方式安装auditd包apt install auditd编写针对aaa、bbb程序文件的执行、写入的auditd rules(审计规则)编辑xxx.rules文件内容如下:-

2021-06-04 16:06:16 318

原创 堡垒机配置SSH使用libpam-google-authenticator双重验证

堡垒机配置SSH使用libpam-google-authenticator双重验证手机上安装authenticator (微软出的)在安卓或苹果app store里下载authenticator (微软出的,谷歌的有些市场下载不了),要用它生成的动态验证码来登录服务器,避免自己的公钥或密码被别人知道了带来的安全隐患安装libpam-google-authenticatorapt install libpam-google-authenticator -y配置ssh# 编辑sshd的PAM文件,

2021-06-04 09:57:31 910

原创 Docker安装MySQL的方式

Docker安装MySQL的方式服务端安装启动sudo apt install docker.iosudo docker pull mysql# 创建卷sudo docker volume create mysql8_data# 启动容器sudo docker run --name mysql8 --mount source=mysql8_data,target=/var/lib/mysql -p 33060:3306 -e MYSQL_ROOT_PASSWORD=********* -d

2021-05-19 16:40:17 108

原创 服务器上使用lldp查看连接的交换机信息

服务器上使用lldp查看连接的交换机信息LLDP协议链路层发现协议(Link Layer Discovery Protocol,LLDP)是一种数据链路层协议。网络设备可以通过在本地网络中发送LLDPDU(Link Layer Discovery Protocol Data Unit)来通告其他设备自身的状态。是一种能够使网络中的设备互相发现并通告状态、交互信息的协议。交换机上启用lldp通常交换机上默认都启用了lldp,此处略服务器上启用lldp# 安装lldpadapt install

2021-05-19 14:08:45 4297

原创 ansible-playbook从入门到提高(一)

文章目录ansible的setup模块ansible-playbook样例ansible的setup模块setup模块用于收集远程主机的一些基本信息,这个很有用,以后会有很多task要根据主机的信息(如CPU厂商、)来进行相应操作。# 可以运行ansible命令查看主机的信息ansible localhost -m setupansible-playbook样例...

2021-04-13 14:51:43 368

原创 ubuntu 18.04将apt安装的ansible替换成pip3安装的ansible

文章目录变更原因操作步骤备份ansible配置文件安装配置pip3pip3安装ansible卸载apt安装的ansible及其依赖检查新的ansible是否可用变更原因ubuntu上apt安装的ansible版本太低,一些新特性不支持,而且它还依赖于python2,导致安装了一些不必要的东西。使用pip3安装ansible是一个更好的方案。操作步骤备份ansible配置文件# 打包ansible配置文件目录tar -zcf /etc/ansible ansible-bak-0408.tar.gz

2021-04-08 11:13:36 580

原创 使用pip3 config配置国内源时提示pip3 ERROR: unknown command “config“的解决办法

问题现象使用pip3 config set 国内源,提示如下错误:pip3 ERROR: unknown command "config"解决方法#升级pip到最新版本sudo -H pip3 install -U pip#重新运行pip3 configsudo pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple# 可以用pip3 config list查看一下相应配置项有没有原因分析pi

2021-04-08 09:56:39 15719 2

原创 使用python获取ansible inventory定义的host和group的方法

直接上代码:#!/usr/bin/python3# coding:utf-8from ansible.parsing.dataloader import DataLoaderfrom ansible.inventory.manager import InventoryManagerimport subprocessloader = DataLoader()inventory = InventoryManager(loader=loader, sources="/etc/ansible/ho

2021-04-04 10:42:06 869 1

原创 gateone(webssh工具)安装及维护

gateone是一个HTML5实现的ssh客户端工具, 适用于浏览器工作场景, 以及需要对用户输入的ssh命令作日志记录的场景.Install by dockersudo docker pull liftoff/gateoneRun in daemonsudo docker run -d -p 50443:8000 -h gateone01 --name gateone liftoff/gateone gateone获取容器信息sudo docker ps -a进入到容器中sudo dock

2021-03-30 09:23:32 1080

原创 docker安装及常用命令

Install use aptsudo apt install docker.ioSetup autostartsudo systemctl enable dockerStart servicesudo systemctl start dockerSearch imagesudo docker search ubuntuPull imagesudo docker pull ubuntuShow imagessudo docker imagesStart a container fro

2021-03-30 09:12:56 112

原创 使用python multiprocessing实现的多线程net ping工具

写了一使用python multiprocessing实现的net ping工具, 可以ping多个网段的地址, 1024个IP大概需1分钟.#!/usr/bin/python3# coding: utf-8import ipaddressimport csvfrom multiprocessing import Pool, Managerimport ossubnets = [ "10.1.2.0/24", "192.168.1.0/24",]manager = M

2021-03-24 16:40:08 231

原创 安装并使用selenium webdriver进行web自动化操作的一个例子

文章目录配置pip3使用国内安装源使用pip3安装selenium下载并安装对应浏览器的webdriver示例代码selenium文档selenium是网页自动化测试的常用工具, 本文简述了它的安装和使用示例配置pip3使用国内安装源# 可以用pip3 config list查看一下相应配置项有没有# 配置清华的源之后嗷嗷快, 人生苦短啊!pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple使用pip

2021-03-01 23:35:56 245 1

原创 使用script录制Linux和MacOS终端窗口操作

在Linux和MacOS系统中, script命令可以录制终端窗口的操作, 包含vim等交互程序的操作, 还可以保存时序信息, 就像录制了一个视频, Linux下它录制的结果文件是文本格式的, 比较直观. 它无法录制音频(可以通过arecord ... && script这样的命令来录制音频和窗口 或者直接用ffmpeg录制音频和窗口)注意: Linux和MacOS系统的script命令用法是不同的, 产出的文件是不兼容的, 用法分别如下:Linux下终端窗口录制和回放命令# 录制终端

2021-03-01 21:58:25 237

原创 nginx启动报错: getpwnam(“nginx“) failed in /etc/nginx/nginx.conf的解决办法

nginx启动报错: getpwnam(“nginx”) failed in /etc/nginx/nginx.conf:通常是因为nginx.conf配置文件中user nginx;这句配置的用户不存在或者无相应权限的原因.比如我将配置文件从centos上拷贝到ubuntu上, 就遇到了这个问题, 因为ubuntu默认的是user www-data;.运行如下命令新建nginx用户并将它加入到www-data组里即可:sudo useradd nginx -G www-data...

2021-02-16 13:08:42 8784

原创 golang cgo将[]byte形式的缓冲区传递给C函数void*参数的办法

golang通过cgo调用C函数时, 常常会遇到从一个无类型buffer(缓冲区)读取数据进行处理的C函数.如果用golang 的bufB := make([]byte, BUFFER_SIZE)创建一个缓冲区, 那么可用unsafe.Pointer(&bufB[0])的方式转换后传递给C函数.示例代码如下:bufByte := make([]byte, BUFFER_SIZE)buffer := unsafe.Pointer(&bufB[0])C.Func(buffer)实例

2021-02-16 12:37:46 2945 1

原创 一个用于讯飞离线命令词识别的BNF语法文件

一个用于讯飞离线命令词识别的BNF语法文件在讯飞提供的样例上进行了扩充, 加入了控制家电的功能, 实测可用.讯飞BNF的语法格式可参考:http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=7595#BNF+IAT 1.0 UTF-8;!grammar call;!slot <want>;!slot <dialpre>;!slot <dialsuf>;!slot <contact>;!slo

2021-01-23 18:35:19 1700 7

原创 go mod模式下引用本地包/模块(module)的方法

文章目录样例目录结构建立本地module的方式调用本地module的方式注意事项go mod 的模式, 可以管理包/模块的依赖关系, 从go1.16开始,会自动开启.这个跟GOPATH的模式区别很大, 在引用本地包/模块(module)的时候,我们可以采用本文描述的办法.样例目录结构go└─src ├── audio-websocket │ ├── go.mod │ ├── go.sum │ ├── README.md │ └── main.go

2021-01-23 16:52:55 15481 6

原创 cgo: C的struct转换为go unsafe.Pointer的办法

cgo: C的struct转换为go unsafe.Pointer的办法如果go build时报错:cannot use _cgo5 (type _Ctype_struct__xx) as type unsafe.Pointer in argument.例如C函数中函数声明是int SetUserData(void * userData), 其中userData为一个struct,可用这个办法将C的struct转换为go unsafe.Pointer:var a C.UserDataudata

2021-01-23 14:48:42 1472

原创 使用nmcli命令配置WiFi连接(无线网卡配置)

使用nmcli命令配置WiFi连接目前各大Linux发行版通常都用NetworkManager来管理网络,对应的命令行工具是nmcli,可以很便捷地对网络进行配置。以Ubuntu 20.04为例,使用nmcli新建一个WiFi连接的命令如下:新建wifi connect配置命令:sudo nmcli dev wifi connect huzhenwei password ******** wep-key-type key ifname wlp1s0命令说明:sudo nmcli dev wi

2020-05-25 19:12:19 21087 4

空空如也

空空如也

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

TA关注的人

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