CI_CD
未读Gitlab runner 简介 GitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与GitLab CI结合使用,GitLab CI是GitLab随附的用于协调作业的开源持续集成服务。 要求 GitLab Runner是用Go编写的,可以作为一个二进制文件运行,不需要特定于语言的要求。它旨在在GNU / Linux,macOS和Windows操作系统上运行。只要您可以在其他操作系统上编译Go二进制文件,其他操作系统就可能会运行。 如果要使用Docker,请安装最新版本。GitLab Runner需要最少的Docker v1.13.0。 GitLab Runner版本应与GitLab版本同步。尽管较旧的Runner仍可以使用较新的GitLab版本,反之亦然,但在某些情况下,如果版本存在差异,则功能可能不可用或无法正常工作。在次要版本更新之间可以保证向后兼容性,但是请注意,GitLab的次要版本更新会引入新功能,这些新功能将要求Runner在同一次要版本上使用。 特点 允许运行: 同时执行多个作业。 对多个服务器(甚至每个项目)使用多个令牌。 ...
CI_CD
未读为什么要做CI/CD? 背景-传统的应用开发发布模式 开发团队 在开发环境中完成软件开发,单元测试,测试通过,提交到代码版本管理库。 运维团队 把应用部署到测试环境,供QA团队测试,测试通过后部署生产环境。 QA 团队 进行测试,测试通过后通知部署人员发布到生产环境。 问题 错误发现不及时 很多错误在项目的早期可能就存在,到最后集成的时候才发现问题。 人工低级错误发生 产品和服务交付中的关键活动全都需要手动操作。 团队工作效率低 需要等待他人的工作完成后才能进行自己的工作。 开发运维对立 开发人员想要快速更新,运维人员追求稳定,各自的针对的方向不同。 经过上述问题我们需要作出改变,如何改变? 持续集成与持续交付 软件开发的连续方法基于自动执行脚本,以最大程度地减少在开发应用程序时引入错误的机会。从开发新代码到部署新代码,他们几乎不需要人工干预,甚至根本不需要干预。 它涉及到在每次小的迭代中就不断地构建,测试和部署代码更改,从而减少了基于错误或失败的先前版本开发新代码的机会。 此方法有三种主要方法,每种方法都将根据最适合您的策略的方式进行应用。 持续集成 (CI) 持续合并开发人员 ...
如有商用自负法律责任! 支持格式 理论支持所有格式,但仅适配了 mflac 和 mgg 格式。 使用方法 开启 QQ 音乐,下载音乐到默认文件夹(C:/Users/你自己的用户名/Music/VipSongsDownload)。 编辑保存hook_qq_music.js、hook_qq_music.py到随意位置 启动 hook_qq_music.py 脚本,自动从C:/Users/你自己的用户名/Music/VipSongsDownload读取音乐文件,解密后保存到output文件夹。 hook_qq_music.js 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980const TARGET_DLL = "QQMusicCommon.dll";var EncAndDesMediaFileConstructo ...
引言 正如标题所言:在 Linux 中系统出现了问题,你会使用哪些工具排查呢? 简介 性能分析 top: 实时显示系统的 CPU、内存使用情况,以及各个进程的资源消耗。 htop: top 命令的增强版,界面更友好,支持鼠标操作,可以更加方便地查看和管理进程。 mpstat: 显示各个 CPU 核心的使用情况,分析多核系统中的 CPU 负载。 sar: 系统活动报告工具,可以监控 CPU、内存、I/O 等系统资源的使用情况。它可以在长时间内进行系统性能的数据采集。 vmstat: 查看 CPU、内存、交换分区的性能,能够检测 CPU 的等待时间和系统瓶颈。 内存性能分析 free: 显示系统当前的内存和交换分区使用情况。 vmstat: 显示内存、进程、I/O 系统的性能状态。可以帮助分析内存的使用情况。 smem: 详细列出每个进程的内存消耗情况。 top / htop: 可以查看每个进程的内存使用情况。 slabtop: 显示内核 slab 缓存的使用情况,有助于了解内存中缓存数据块的分布。 磁盘性能分析 iostat: 显示磁盘 I/O 的性能统计信息,尤其是在分析磁盘 ...
Linux
未读在进行网络故障排查时,使用合适的工具可以极大地提高效率。本文将介绍三个常用的网络诊断工具:iPerf、nslookup 和 traceroute,并说明它们的使用方法。 iPerf 的使用 iPerf 是一个用于测量TCP和UDP带宽性能的工具。它可以在客户端-服务器模式下运行,测试两端之间的最大带宽。 安装 iPerf 在大多数Linux发行版中,可以通过包管理器安装: 123sudo apt-get install iperf3 # 对于Debian/Ubuntu系统sudo yum install iperf3 # 对于CentOS/RHEL系统sudo dnf install iperf3 # CentOS 9 或 Fedora 基本用法 服务器端:首先,在一台机器上启动iPerf作为服务器。 1iperf3 -s 客户端:然后,在另一台机器上以客户端模式运行iPerf,并指定服务器的IP地址。 1iperf3 -c <服务器IP> 选项 -u:使用UDP而不是默认的TCP。 -b:设置带宽限制(例如,- ...
幽灵进程的困扰 你是否遇到过这样的场景?一个精心编写的Shell脚本明明已经执行完毕或被强制终止后,但通过ps aux查看时,却发现脚本中的后台任务仍在默默运行,甚至时不时向终端输出信息?这种"幽灵进程"不仅会占用系统资源,还可能导致数据不一致或任务重复执行。本文将深入剖析这一问题的根源,并提供多种可靠解决方案。 问题现象:后台任务的"不死之身" 经典示例 123456789101112#!/bin/bashecho "主进程PID: $$"# 后台无限循环while true; do sleep 5 echo "心跳检测: $(date)"done &# 主任务执行sleep 30echo "主流程执行完毕" 执行后观察进程树: 1234$ ps auxf | grep -A2 "test.sh"user 12345 0.0 0.1 113000 3000 pts/0 S+ 14:00 0:00 \_ bash test ...
Golang
未读Golang
未读Go 条件语句 语句 描述 if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成。 if…else 语句 if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 if 嵌套语句 你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。 switch 语句 switch 语句用于基于不同条件执行不同动作。 select 语句 select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。 if语句 语法 123if 条件 { 成立后,此代码块执行} 12345if 条件 { 成立后,此代码块执行}else{ 不成立,此代码块执行} 示例: 1234567891011121314151617181920212223242526272829303132333435363738394041424 ...
Golang
未读Go 语言结构 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 接下来让我们来看下简单的代码,该代码输出了"Hello World!": 实例 12345678package mainimport "fmt"func main() { /* 这是我的第一个简单的程序 */ fmt.Println("Hello, World!")} 让我们来看下以上程序的各个部分: 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。 下一行import "fmt"告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。 下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行 ...
Golang
未读Go 和 C语言、C++、Python、Java 等一样都是编程语言。学习任何一门编程语言本质上都分3步走: 第一步:安装 解释器 或 编译器。 第二步:学相关编程语言语法,然后写代码。 第三步:用已安装解释器 或 编译器 去运行自己写的代码,这样代码就会去完成我们编写的功能了。 Go是编译型语言,所以我们一般称Go安装是编译器。 Go是开源且跨平台的一门编程语言,所以他支持window、linux、mac操作系统,同时也意味着我们可以在各种系统中安装Go的编译器。 Mac系统 下载Go编译器 https://golang.google.cn/ 点击安装 默认的安装目录:/usr/local/go/ 编译器启动文件:/usr/local/go/bin/go 配置环境PATH 1export PATH=/usr/local/go/bin:$PATH 其他配置 创建一个任意目录 此目录以后放你写的所有go代码。 12345678/Users/jerry/GolangProjects/- bin,通过go install编译时候,生成的可执行文件。- pkg,通过go install编 ...