博文

从apt-key密钥导出到GPG密钥

首先查看所有apt-key $ sudo apt-key list 在所有列表里,找到pub这一行,最后8个字符,比如ACCC4CF8,就是导出的ID 执行导出 $ apt-key export ACCC4CF8 | sudo gpg --dearmour -o /usr/share/keyrings/pgdg.gpg 编辑源文件,/etc/apt/sources.list.d/pgdg.list 把deb http://apt.postgresql.org/pub/repos/apt jammy-pgdg main修改为deb [arch=amd64 signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt jammy-pgdg main 最近移除旧有的apt-key $ sudo apt-key del ACCC4CF8 来源: https://askubuntu.com/questions/1403556/key-is-stored-in-legacy-trusted-gpg-keyring-after-ubuntu-22-04-update

GORM使用笔记

做为一个增查改删(CRUD)程序员,学习Go语言可以从GORM入手。 增加一条数据:

ubuntu启动ipv6

1、先看系列是否分配了IPV6。没分配先联系下服务商,我这里是已经分配惹。 $ ip addr | grep inet6 inet6 ::1/128 scope host inet6 210a:****:****:****:0:****:****:****/128 scope global dynamic noprefixroute inet6 fa82::****:**:****:2e53/64 scope link 2、修改网卡配置文件 $ vim /etc/netplan/50-cloud-init.yaml network:     version: 2     ethernets:         eth0:             dhcp4: true             match:                 macaddress: **:**:**:**:**:**             addresses:                 - 210a:****:****:****:0:****:****:****/128             set-name: eth0 增加了一行addresses配置,设置的IP地址就是第一步里返回的IP 3、查看IPV6的路由配置 $ route -6 找到Destination这一列,以第一个以/64结尾的ip,就是网关IP,比如:210a:****:****:****::/64 4、设置网关 $ ip -6 route add default dev eth0 via 210a:****:****:**** 测试一波IPV6 $ ping6 www.google.com 能ping通,就说明已经配置好了IPV6

好用的Shell:fish

先来一波安装: Ubuntu系统: $ apt-get update $ apt-get install fish Amazon Linux 2: 先执行 $ rpm -E %{rhel} 查看RHEL版本,如果是版本7,就运行 $ cd /etc/yum.repos.d/ $ wget https://download.opensuse.org/repositories/shells:fish:release:3/CentOS_7/shells:fish:release:3.repo $ yum install fish 可以编辑/etc/passwd文件,设置fish为默认的shell 也可以通过chsh来设置 $ chsh -s /usr/bin/fish 在python3-venv里使用fish $ source ./venv/bin/activate.fish

Ubuntu安装Docker

先删除旧版本 $ sudo apt-get update $ sudo apt-get remove docker docker-engine docker.io containerd runc 添加apt包仓库 $ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-release 添加Dcoker的GPG key $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 添加Docker源,适合bash的shell环境执行 $ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 开始安装 $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin 运行hello-world看看是否安装成功 $ sudo docker run hello-world 当出现「Hello from Docker!」,而又没有报错说明安装成功。 官方文档 https://docs.docker.com/engine/install/ubuntu/ 安装成功之后,配置下日志的大小和ipv6支持。 增加文件:/etc/docker/daemon.json 写入 {     "log-driver": "json-file",

Tornado导出Excel

import io import asyncio import xlsxwriter import tornado.web class MainHandler(tornado.web.RequestHandler):     async def get(self):         self.set_header('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')         self.set_header('content-Disposition', 'attachment; filename=Export.xlsx')         output = io.BytesIO()         workbook = xlsxwriter.Workbook(filename=output, options={'in_memory': True})         worksheet = workbook.add_worksheet(name='test sheet')         worksheet.write(0, 0, 'a')         worksheet.write(0, 1, 'b')         worksheet.write(0, 2, 'c')         worksheet.write(1, 0, 1024)         worksheet.write(1, 1, 'z')         worksheet.write(1, 2, 23)         workbook.close()         self.write(output.getvalue())         await self.flush() def make_app():     return tornado.web.Application([         (r"/", MainHandler

强大的FFMPG

FFMPG转换格式日常用的少,主要是机器配置不行。 分享一波常用命令 使用ffmpeg下载视频: 保存为 MP4 ffmpeg -user_agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36" -i "/index.m3u8" -c copy -bsf:a aac_adtstoasc 20220430.mp4 使用ffmpeg直播摄像头 sudo ffmpeg \ -f video4linux2 -framerate 25 -video_size 1280x720 -i /dev/video0 \ -f alsa -ac 2 -i sysdefault:CARD=WEBCAM \ -c:v libx264 -b:v 1600k -preset ultrafast \ -x264opts keyint=50 -g 25 -pix_fmt yuv420p \ -c:a aac -b:a 128k \ -f flv "rtmp://sendtc3a.douyu.com/live/70302rd7iwAenSvy?wsSecret=&wsTime=622cb01c&wsSeek=off&wm=0&tw=0&roirecognition=0&record=flv&origin=tct"