网络工具NetCat简介

网络工具NetCat简介 NetCat(简称nc)是一个网络工具,用于在计算机网络之间传输数据。它能够创建TCP/UDP连接、监听端口,并支持文件传输等功能。下面是一些常用的Netcat命令和用法。 安装Netcat 在大多数 Linux 发行版中,你可以使用包管理器来安装 Netcat。例如,在 Ubuntu 上,可以使用以下命令: # 安装Netcat sudo apt-get update sudo apt-get install netcat-openbsd # 或者旧版 netcat-traditional 要查看安装的Netcat版本和路径,可以使用以下命令: # 查看版本和路径 readlink -f $(which nc) 测试连接 TCP连接 # 测试TCP连接 nc -vz 127.0.0.1 5244 UDP连接 # 测试UDP连接 nc -vz -u 127.0.0.1 5244 超时设置 # 设置超时为3秒 nc -vz -w3 127.0.0.1 8000 范围扫描 # 扫描端口范围 nc -vz -w3 127.0.0.1 8000-8100 运行服务 单次服务 # 启动TCP服务 nc -v -l 8080 # 启动UDP服务 nc -uv -l 8080 持续服务 # 启动持续TCP服务 nc -kv -l 8080 文件传输 从服务端接收文件 # 从服务端接收文件 nc -v -l 8080 > img.
Read more →

基于WebHook实现Gitee自动化部署

基于WebHook实现Gitee自动化部署 大纲 1.起因和思路 2.WebHooks服务 3.自动化部署脚本 4.配置和完成 1.起因和思路 前段时间在写一个小的Web项目, 部署到了租的云服务器上, 后续也进行了一些开发和优化, 每次开发完都要进行手动登录服务器部署, 感觉整个过程有点麻烦, 就想实现一个简化的自动化部署流程. 目前自动化部署主要有两种方式 通过项目下的增加CI配置的方式触发, 使用Runner服务执行 (类似GitLab CI的方式, 在项目里增加 .gitlab-ci.yml 文件) 通过WebHook事件请求, 发送到专门的CI/CD服务进行处理 (像Jenkins) 看了Gitee目前支持的方式, 第一种一般需要付费, 或者是用三方服务, 登录私有服务器执行命令; 第二种方式应该更合适我, 不过我不需要太复杂的功能. 目前来说, 简单流程就是: Gitee收到git提交事件, 发送WebHook请求到WebHook服务 WebHook服务进行校验并执行相应的部署命令 需要一个接收WebHook请求的服务, 解析并处理相应的事件, 在GitHub上找了下, 发现了一个合适的项目https://github.com/adnanh/webhook 2.WebHooks服务 该WebHook项目简介: webhook是一个用Go编写的轻量级可配置工具,它允许您在服务器上轻松创建HTTP端点(hook),您可以使用它执行配置的命令。您还可以将HTTP请求中的数据(例如头、负载或查询变量)传递给您的命令。webhook还允许您指定触发钩子必须满足的规则。 项目基本能满足需求, 通过配置文件的方式, 设定触发条件的规则, 以及执行的命令 使用也很简单, 下载Release文件, 解压后执行: /path/to/webhook -hooks hooks.json -verbose 访问地址:
Read more →

Git工作流程

Git工作流程 大纲 1.Git工作流程是什么 2.为什么需要Git工作流程 3.有那些广泛的Git工作流程 4.如何使用Git工作流程 1.Git工作流程是什么 Git工作流程是有关如何使用Git以一致且富有成效的方式完成工作的秘诀或建议。 Gitflow 工作流定义了一个围绕项目发布的严格分支模型。 Gitflow 工作流没有用超出功能分支工作流的概念和命令,而是为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互。 2.为什么需要Git工作流程 Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称”快照”)的指针,因此非常快捷易用。 Git 作为一个源码管理系统,不可避免涉及到多人协作。如果你不加注意,很可能会留下一个枝节蔓生、四处开放的版本库,到处都是分支,完全看不出主干发展的脉络。 协作必须有一个规范的工作流程,让大家有效地合作,使得项目井井有条地发展下去。”工作流程”在英语里,叫做”workflow”或者”flow”,原意是水流,比喻项目像水流那样,顺畅、自然地向前流动,不会发生冲击、对撞、甚至漩涡。 清晰可控,使多人项目协作开发更加规范。 3.有那些广泛的Git工作流程 软件业界常用的软件分支流程有多种,但本质上可以分为两类: 主干开发模式(Trunk Based Development) 特性分支开发模式(Feature Branch Development) 3.1-主干开发模式 主干开发,是指开发人员直接向主干(习惯上主干分支通常为:trunk 或 master)提交/推送代码。通常,开发团队的成员1天至少1次地将代码提交到主干分支。在到达发布条件时,从主干拉出发布分支(通常为 release),用于发布。若发现缺陷,直接在主干上修复,并根据需要 cherry pick 到对应版本的发布分支。 流程: 优点: 分支模型简单高效,开发人员易于掌握不容易出现错误操作 避免了分支合并、冲突解决的困扰 随时拥有可发布的版本 有利于持续集成和持续交付 缺点: 基础架构要求高:合入到主干的代码若质量不过关将直接阻塞整个团队的开发工作,因此需要高效的持续集成平台进行把关; 自动化测试要求高:需有完备单元测试代码,确保在代码合入主干前能在获得快速和可靠的质量反馈; 最好有代码评审:若代码质量要求高,需要配套代码评审(CR)机制,在代码提交到主干时,触发CR,通过 Peer Review 后才能正式合入; 最好有特性开关:主干开发频发合入主干的情况下,特性拆分得很小,可能是半成品特性,需要配套特性开关(Feature Toggle),只有当特性整体开发完才通过灰度发布等手段逐步打开; 适用环境: 对迭代速度要求高,希望需求快速交付上线 基础架构强,持续集成工具高效; 团队成员习惯TDD(测试驱动开发),代码自动化测试覆盖率高(至少增量代码的自动化测试覆盖率高); 3.2-特性分支开发模式 也称为“功能驱动式开发”(Feature-driven development,简称FDD),它指的是,需求是开发的起点,先有需求再有功能分支(feature branch)或者补丁分支(hotfix branch)。完成开发后,该分支就合并到主分支,然后被删除。 一般流程就是创建一个或多个特定的需求/缺陷/任务创建代码分支(branch),在其上完成相应的开发(一般经过增量测试)后,把它合并(merge)到主干/集成分支。 通常这种分支生命期会持续一段时间,从几天到几周不等,极少数情况甚至以月算。 流程:
Read more →

音视频系列-音频基础

声音简介 定义:声音(wiki) 是振动产生的声波,通过介质(气体、固体、液体)传播并能被人或动物听觉器官所感知的波动现象。 本质:声音是一种机械波。 声音三要素 音调:声音的频率(音频),儿童 > 女生 > 男生 音量:振动的幅度(振幅),也称为音高 音色(wiki):声音的波形,本质是谐波(wiki),也称为音品,与材质有很大关系 图示: 心理声学 心理声学(wiki) 是研究人对声音感知的学科,即研究人对声音(包括言语和音乐)的生理和心理反应的科学。 听觉/发声范围 音频量化 量化过程 基本概念 采样大小:一个采样用多少bit存放。常用16bit 采样率:采样频率 8k、16k、32k、44.1k、48k 声道数:单声道、双声道、多声道 码率计算 码率 = 采样率 × 采样大小 × 声道数 如: 采样率为44.1kHz,采样大小为16bit,双声道PCM编码的WAV文件 码率 = 44.1k × 16 × 2 = 1411.2kb/s = 176.4KB/s 音频压缩 音频压缩(wiki) 属于数据压缩的一种,用以减少音频流媒体的传输带宽需求与音频档案的存储大小。 压缩方法 无损压缩 保留原始文件的所有信息,在播放上与原始文件没有任何差别。 利用 信息冗余 进行数据压缩,是一个可逆的过程。 有损压缩 对原始文件的一些信息做一些近似处理,以得到更小的文件。 将人类心理学、听觉系统的识别都纳入压缩结果的考量,是一个不可逆的过程。
Read more →

FFmpeg常用命令

简介 FFmpeg 是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。 “FFmpeg”这个单词中的“FF”指的是“Fast Forward(快速前进)”。 https://zh.wikipedia.org/wiki/FFmpeg MPEG正式审核程序是Moving Picture Experts Group的简称。这个名字本来的含义是指一个研究视频和音频编码标准的“动态图像专家组”组织,成立于1988年,致力开发视频、音频的压缩编码技术。现在我们所说的MPEG泛指由该小组制定的一系列视频编码标准正式审核程序。 https://zh.wikipedia.org/wiki/MPEG https://ffmpeg.org/ 安装 sudo apt install ffmpeg # ubuntu brew install ffmpeg # mac 命令语法 ffmpeg [全局选项] {[输入文件选项] -i 输入_url_地址} ... {[输出文件选项] 输出_url_地址} ... 处理流程 查看信息 ffmpeg -i out.mp4 查看支持的yuv格式 ffmpeg -pix_fmts Pixel formats: I.... = Supported Input format for conversion .O... = Supported Output format for conversion ..H.. = Hardware accelerated format ...P. = Paletted format .
Read more →