InfraPub 为您找到相关结果 71

Python的闭包和装饰器

定一个参数,传入的就是@dobi下面修饰的函数,也就是 qinfeng() 3.dobi() 函数执行,调用 qinfeng(),qinfeng() 打印“dobi” 什么是闭包? 首先还得从基本概念说起,什么是闭包呢?来看下维基上的解释: 在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由的函数。这个被引用的自由将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。 .... 上面提到了两个关键的地方: 自由 和 函数, 这两个关键稍后再说。还是得在赘述下“闭包”的意思,望文知...阅读全文

博文 2014-07-23 17:06:38 debian.cn

Grafana 6.3.3发布 系统指标监控与分析平台

Grafana 6.3.3 发布了,Grafana 是一个功能丰富的指标标准仪表板和图形编辑器,用于分析和监控 Graphite、Elasticsearch、OpenTSDB、Prometheus 和 InfluxDB。 新版本更新主要是 Bug修复,具体如下: Annotations:修复取消时间序列查询时,失败的注释查询 #18532Auth:如果 cookie_samesite 为 none,请不要设置 SameSite cookie 属性 #18462DataLinks:正确地将范围应用于数据链接 #18454DataLinks:在图形上下文菜单中显示数据点的时间戳时,遵守时区 #18461DataLinks:插值时,正确使用数据点时间戳 #18459Explore:修复空...阅读全文

博文 2019-08-17 21:20:29 debian.cn

Bash Shell 中的 PROMPT_COMMAND

今天查看了一个系统初始化的 Shell 脚本,其中有一段命令是配置记录 bash 命令日志的,如下: ``` LOGIN_IP=$(who am i | awk '{print $NF}') export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });echo $(date +"%Y-%m-%d %H:%M:%S") [$(whoami)@$SSH_USER$LOGIN_IP `pwd` ]" $msg" >> /var/log/.history; }' ``` 其中的 PROMPT_COMMAND 是 bash 的环境,这个的中内容是作为一个普通的 bash 命令执行的,而且执行时间是...阅读全文

Gitlab CI 配置文件 .gitlab

types 已废除,将会在10.0中移除。用stages替代。 与stages同义 variables GitLab Runner V0.5.0. 开始引入 GItLab CI 允许在.gitlab-ci.yml文件中添加,并在job环境中起作用。因为这些配置是存储在git仓库中,所以最好是存储项目的非敏感配置,例如: variables: DATABASE_URL:"postgres://postgres@postgres/my_database" 这些可以被后续的命令和脚本使用。服务容器也可以使用YAML中定义的,因此我们可以很好的调控服务容器。也可以定义成job level。 除了用户自定义的外,Runner也可以定义它自己的...阅读全文

博文 2018-12-12 21:01:19 ci.yaml 详解(上)

Debian下安装配置 Hadoop 3.1.3 集群

/lib/jvm/。如果/usr/lib下没有jvm文件夹,则先创建jvm,执行sudo mkdir /usr/lib/jvm。然后创建jdk软链接: sudo ln -sf /usr/lib/jvm/jdk1.8.0_202 /usr/lib/jvm/jdk 2. JDK环境的配置 新建/etc/profile.d/jdk.sh文件,并添加以下内容, # JDK environment settings export JAVA_HOME=/usr/lib/jvm/jdk export JRE_HOME=${JAVA_HOME}/jre export CLASSPATh=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME...阅读全文

博文 2019-11-27 23:04:39 debian.cn

Debian Stretch 安装 Nodejs 最新版本

nodejs 你也可以直接下载官方预编译好的二级制文件来安装,注意更新 $PATH 。Node.js 的二进制文件打包脚本的官方地址在 GitHub 上。你也可以直接从官方网站上下载通用版的预编译文件,额外的工作是你需要自己解决 $PATH 等环境的设置问题。 检查确认 Nodejs 版本 通过执行命令 node -v ,我们可以看到当前Node.js是最新的v8.x版本。 提示:如果我们需要其他版本的Node.js,我们只需要将安装里面下载链接 setup_8.x 替换成其它即可,如setup_7.x...阅读全文

博文 2018-01-17 14:00:39 debian.cn

即将发布的 JDK 10 有 109 项新特性,你喜欢哪些

按计划,JDK 10 将于 3 月 20 日正式发布。据前 Oracle 员工 Simon Ritter 的统计,JDK 10 总共包含 109 项新特性。当然,在最终发布前,可能还会发生变化。 新特性中最重要的,是我们之前曾报道过的 12 个 JEP : JEP 286: 局部的类型推断。该特性在社区讨论了很久并做了调查,可查看 JEP 286 调查结果。 JEP 296: 将 JDK 的多个代码仓库合并到一个储存库中。 JEP 304: 垃圾收集器接口。通过引入一个干净的垃圾收集器(GC)接口,改善不同垃圾收集器的源码隔离性。 JEP 307: 向 G1 引入并行 Full GC。 JEP 310: 应用类数据共享。为改善启动和占用空间,在现有的类数据共享(“CDS”)功能上再次拓...阅读全文

博文 2018-03-08 12:56:20 debian.cn

Rust 1.37.0 稳定版发布

Rust 1.37.0 stable 有什么?Rust 1.37.0 的亮点包括通过类型别名引用枚举、内置 cargo vendor、对宏使用未命名的 const、配置文件引导的优化、Cargo 中的 default-run 和枚举上的 #[repr(align(N))] 。 通过类型别名引用枚举 在 Rust 1.37.0,可以通过类型别名引用枚举。例如: type ByteOption = Option; fn increment_or_zero(x: ByteOption) -> u8 { match x { ByteOption::Some(y) => y + 1, ByteOption::None => 0, } } 要实现它,Self 充当类型别名。在 Rust...阅读全文

博文 2019-08-17 21:17:23 debian.cn

Go 1.16 发布,支持 macOS ARM64

/mips64)上支持 MIPS64 体系架构,但尚不支持 cgo - 放弃了对 x87 模式编译(GO386=387)的支持。现在可以使用软浮点模式(GO386=softfloat)来支持非 SSE2 处理器 - linux/riscv64 现在支持 cgo 和 -buildmode=pie - GO111MODULE 环境现在默认为 on。可通过将 GO111MODULE 设置为 auto 切换回旧行为 - go 命令现在支持使用新的 //go:embed 指令来将静态文件和文件树作为最终可执行文件的一部分包含在内 - 新的 runtime/metrics 包引入了一个稳定的接口,用于从 Go 运行时中读取实现定义的指标 - 现在将 GODEBUG 环境设置为 inittrace=1 会导致...阅读全文

博文 2021-02-17 08:58:12 joseph

Java Annotations详解

注释,后面的Entity表示该注释的名称。 注释的元素 一个注释可以包含多个可以被赋值的元素。一个元素就像是一个属性或者参数。下面是一个包含一个元素的注释 @Entity(tableName = "vehicles") 元素紧跟在注释之后,并放置在圆括号中,没有元素的注释,不需要圆括号。注释可以包含多个元素,当只包含一个元素时,可以省略元素名,只提供元素值既可,如下: @InsertNew("yes") 注释的位置 你可以将注释放置到类、接口、方法、方法参数、成员、局部之前。下面是一个将注释放到类之前的例子: @Entity public class Vehicle { } 下面是一个更大的例子,演示了在类、成员、方法、参数以及局部之前添加注释。仅作演示之用,并没有什么特别的...阅读全文

博文 2013-03-02 08:04:55 CSDN博客

Terraform 学习总结 — Terraform 简介

Terraform Terraform 的安装非常简单,直接把官方提供的二进制可执行文件保存到本地就可以了。比如笔者习惯性的把它保存到 /usr/local/bin/ 目录下,当然这个目录会被添加到 PATH 环境中。完成后检查一下版本号: 通过 -h 选项我们可以看到 terraform 支持的所有命令: 在 Azure 上创建一个 Resource Group 要让 Terraform 访问 Azure 订阅中的资源,需要先创建 Azure service principal,Azure service principa 允许你的 Terraform 脚本在 Azure 订阅中配置资源。请参考这里创建 Azure service principal。 配置 Terraform 环境 若要配置...阅读全文

深入学习golang — channel

goroutine的创建数量: func Serve(queue chan *Request) { for req := range queue { sem <- 1 go func() { process(req) // Buggy; see explanation below. <-sem }() } } 上面的代码看似简单清晰,但在go中,却有一个问题。Go语言中的循环每次迭代中是重用的,更直接的说就是req在所有的子goroutine中是共享的,从的作用域角度来说,req对于所有的goroutine,是全局的。 这个问题属于语言实现的范畴,在C语言中,你不应该将一个局部传递给另外一个线程去处理。有很多解决方法,这里有一个讨论。从个人角度来说,我更倾向下面这种方式: func...阅读全文

博文 2021-01-25 12:39:17 博客园

不可变基础设施 (immutable infrastructure) - 云原生定义解析

Your Code: Immutable Infrastructure and Disposable Components”, Chad Fowler, 2013“Phoenix Server”, Martin Fowler, 2012不可变基础设施里的“不可变”非常类似于程序设计中的“不可变”概念。程序设计中不可变(Immutable Variable)就是在完成赋值后就不能发生更改,只能创建新的来整体替换旧的。由于具有这样的特性这种可以在并发环境下安全的使用。对于基础设施的不可变性,最基本的就是指运行服务的服务器在完成部署后,就不在进行更改。在过去依赖传统的高可靠性基础设施的时代,服务的可靠性依赖于高可靠性的服务器。然而,这些基础设施具有很高的拥有成本,并且初始化,配置的成本也非常高...阅读全文

如何在docker pull时,配置使用代理服务?

-registry.somecorporation.com" ``` 重新加载配置,并验证是否生效: ``` $ sudo systemctl daemon-reload $ sudo systemctl show --property Environment docker Environment=HTTP_PROXY=http://proxy.example.com:80/ Environment=HTTPS_PROXY=http://proxy.example.com:80/ ``` 最后重启一下docker, `sudo systemctl restart docker`...阅读全文

Rust 1.39.0 发布,async/.await 稳定了

Rust 1.39.0 已经发布。此版本的亮点包括 async/.await,对 match 守卫 by-move 绑定的共享引用,以及函数参数的属性。 async/.await 稳定 此版本 async/.await 特性已经稳定,这意味着现在可以定义 async 函数和块,并进行 .await 操作。 async 函数通过 async fn 引入,被调用时会返回一个 Future,该 Future 是一个会挂起的计算,可以使用 .await 运行并完成计算。而除了 async fn,async{…} 和 async move{…} 块也可以用来定义“异步文字”,它们的行为像闭包。 match 守卫引用 by-move 绑定 在 Rust 中进行模式匹配时,一个,也就是“绑定”,可以...阅读全文

博文 2019-11-11 09:44:43 debian.cn

单核心 IOPS 突破 1000 万,Linux 5.16 有望大幅提升 I/O 性能

,可以视为是每秒的读写次数。与其他性能测试一様,IOPS 仅代表理想环境下的性能指标,不保证实际应用下也能达到同等情况。IOPS 的数值会随系统组态而有很大的不同,依测试者在测试时的控制而异,控制包括读取及写入的比例、线程数量以及资料区块的大小等。​从 Jens Axboe 在社交媒体上分享的截图可以看到,他用最新的 Linux 内核补丁在一个物理 CPU 核心上实现了 1000 万 IOPS。此次测试的设备仍然与他此前实现 890 万 IOPS 时所使用的设备保持一致 —— 采用了一个 AMD Ryzen 9 5950X CPU 和英特尔 P5800X Gen2 傲腾 SSD。为了实现这些的性能提升,Jens Axboe 主要是在内核的 block / NVMe / IO_uring...阅读全文

博文 2021-10-27 10:32:50 joseph

Java 10 正式发布:包含 109 项新特性

期待已久的 Java 10 已正式发布!你可以通过这里下载 Java 10 正式版。为了更快地迭代,以及跟进社区反馈,Java 的版本发布周期变更为每六个月一次,并且承诺不会跳票。新的发布周期也会严格遵循时间点,将在每年的 3 月份和 9 月份发布。 Java 10 是采用新发布周期的第一个版本,提供了 109 项新特性,其中最备受关注的莫过于局部的类型推断。 相关链接: JDK 10 安装指南 JDK 10 发布说明 Readme Java 10 的 12 项关键新特性: JEP 286: 局部的类型推断。该特性在社区讨论了很久并做了调查,可查看 JEP 286 调查结果 JEP 296: 将 JDK 的多个代码仓库合并到一个储存库中 JEP 304: 垃圾收集器接口。通过引入一...阅读全文

博文 2018-03-21 08:35:10 debian.cn

Go 1.16 即将发布,这些变更你需要知道

-bindata/go-bindata 这类第三方开源库来实现。 而从 Go1.16 起,通过 go:embed 就可以快速实现这个功能: import _ "embed" //go:embed hello.txt var s string print(s) 通过对 s 声明 go:embed 指令,使其在编译时读取当前目录下的 hello.txt 文件。 最终 s 就会输出 hello.txt 文件中的字符串内容。 新增 io/fs 的支持 新增了标准库 io/fs,正式将文件系统相关的基础接口抽象到了该标准库中。 以前的话大多是在 os 标准库中,这一步抽离更进一步的抽象了文件树的接口。在后续的版本中,大家可以优先考虑使用 io/fs 标准库。 调整切片扩容策略 Go1.16 以前的...阅读全文

博文 2021-02-17 08:52:12 CSDN博客

WebAssembly:无需容器的 Docker (下)

php/php-7.4.32/ && tree build-output/php/php-7.4.32/bin/ ... ( a few minutes and hundreds of build log lines)几分钟和数百行构建日志 build-output/php/php-7.4.32/bin/ ├── php-cgi-wasmedge └── php-wasmedge PHP 是用 autoconf 和 make 构建的。 所以如果你看一眼脚本 scripts/wl-build.sh ,你会注意到我们设置了所有相关,如 CC、LD、 CXX 等,以使用来自 WASI_SDK 的编译器。export WASI_SYSROOT="${WASI_SDK_ROOT}/share/wasi...阅读全文

博文 2023-01-03 06:39:46 spider

国产 Java 开源博客 Solo 2.5.0 发布,支持数据导出

Solo 是一款 一个命令 就能搭建好的 Java 开源博客系统,如果你想开个独立博客,请一定不要错过!2.5.0 版本主要支持了 Markdown/JSON 格式数据导出,并改进了 Markdown 渲染。 另外,我们 新的博客产品 Pipe(golang 开发)已经开源 ,欢迎大家来围观! 安装 下载 安装包 解压后执行 java -cp WEB-INF/lib/*;WEB-INF/classes org.b3log.solo.Starter 从 2.4.0 升级只需将已有的配置拷贝覆盖即可,启动后会自动升级。 文档 用户指南 :安装、配置、备份以及常见问题 开发指南 :开发环境、项目结构、框架说明 皮肤开发 :开发步骤、模版 插件开发 :插件机制、处理流程 项目...阅读全文

博文 2017-12-21 09:48:36 debian.cn

Debian 9 Stretch 安装配置 Caddy Server

} header_upstream X-Forwarded-Proto {scheme} } gzip header / -Server header / Strict-Transport-Security "max-age=31536000;" tls user@example.com { protocols tls1.0 tls1.2 dns cloudflare } } 如果要使用 DNS 的方式认证域名的话,需要设置环境,修改 /etc/systemd/system/caddy.service ,加入环境,我使用的是 CloudFlare 的 DNS,所以我需要添加 CLOUDFLARE_EMAIL 和 CLOUDFLARE_API_KEY ,其他 DNS 看这里。 [Service...阅读全文

博文 2017-12-24 10:18:33 debian.cn

Golang 之禅: 如何写优质代码

。 明确处理错误 健壮的程序其实是由处理故障案例的片段组成的,并且需要在故障出现之前处理好。冗余的if err != nil { return err }比出了故障再一个个去处理更有价值。panic 和 recover 也一样。 尽早 return,不要深陷 每次缩进时都会在程序员的堆栈中添加另一个先决条件,这会占用他们短期内存中的 7±2 个片段。避免需要深层缩进的控制流。与其深入嵌套,不如使用守卫子句将成功路径保持在左侧。 并发权留给调用者 让调用者选择是否要异步运行你的库或函数,不要强制他们使用异步。 在启动 goroutine 之前,要知道它什么时候会停止 goroutines 拥有资源、锁、与内存等,释放这些资源的可靠方法是停止 goroutine。 避免包级别的状态 要完成明确和...阅读全文

博文 2020-02-25 20:48:33 debian.cn

深入了解Docker背后的namespace技术

的demo之一,同时它会产生一个shell会话,这样你就可以在你的namespace中“闲逛”。你可以自己的方式探索与检查这些不同的namespace。因此让我们复制这个文件,并开始使用network namespace。 > cp skeleton.c network.c 在这个文件里有一个很特殊的,叫做clone_flags,大部分的变化将在此处发生。namespace主要由clone标志控制。network namespace的clone标记是CLONE_NEWNET。我们需要把int clone_flags = SIGCHLD;这一行改为 int clone_flags = CLONE_NEWNET | SIGCHLD;。这样调用clone就为我们创建一个新的network...阅读全文

博文 2015-05-17 10:03:00 debian.cn

深入理解Golang之context

?其实可以想象一颗树,树的每个节点可能携带一组键值对,如果当前节点上无法找到key所对应的值,就会向上去父节点里找,直到根节点,具体后面会说到。再来看看context包中的其他关键内容。emptyCtxemptyCtx是一个int类型的,但实现了context的接口。emptyCtx没有超时时间,不能取消,也不能存储任何额外信息,所以emptyCtx用来作为context树的根节点。// An emptyCtx is never canceled, has no values, and has no deadline. It is not // struct{}, since vars of this type must have distinct addresses. type...阅读全文

博文 2021-01-27 09:05:27 知乎

Bootstrap 4首个维护版发布 新增多项功能

.flex-fill,.flex-grow- * 和 .flex-shrink- * 实用程序 为表格添加了新的 .table-borderless 变体 增加了新的 .text-monospace 工具 添加了新的 .text-body(默认主体颜色),.text-black-50(50%不透明度黑色)和.text-white-50(50%不透明度白色)实用程序 添加了新的 .shadow- * 工具,用于快速添加阴影框 增加了在下拉菜单中禁用 Popper 定位的功能 更新我们的 Theming 文档以确认您不能在媒体查询中使用 CSS 修复了为卡片错误地渲染 CSS 列的问题 已弃用 .text-hide,在编译期间您会看到一条警告 修复了 Firefox 和 IE 浏览器中的...阅读全文

博文 2018-04-10 13:04:36 debian.cn

Gitlab 12.2 发布:改进团队协作

跨越多个项目,代码更改之间具有相互依赖关系,其中合并更改的顺序很重要。GitLab 现在支持 跨项目合并请求依赖 ,使定义这些依赖关系成为可能,并防止因更改按错误的顺序合并而导致的错误。减少错误意味着能够减少修改,并更快地部署更改。 Gitlab 12.2 还有其他改进,包括 合并请求中的安全审批 、 Core 中包含的范围内的环境 、按域限制组成员 、 功能标志百分比推出策略和功能标志用户 ID 推出策略 等内容。 详情见发布说明:https://about.gitlab.com/2019/08/22/gitlab-12-2-released/...阅读全文

博文 2019-08-23 15:59:42 debian.cn

GitLab的Python依赖扫描Docker镜像将换用Debian

)构建官方 Docker 镜像的变体时 需要采取的具体措施包括: 如果定期在 gemnasium-python:2 上构建自己的 Docker 镜像,并依赖于DS_ANALYZER_IMAGES 之类的 CI ,则下次尝试构建镜像时,会中断gemnasium-python:2,虽然它不会在运行时中断。可以在gemnasium-python:2.6.0基础上构建镜像解决此问题。如果在 Docker 中禁用 Docker,并且已经设置了gemnasium-python-dependency_scanning工作定义的before_script,将会在执行任务时,在运行时中断。除非重载作业定义明确使用一个在切换到 Debian 前构建的gemnasium-python镜像,如gemnasium...阅读全文

博文 2020-02-15 11:54:28 debian.cn

nginx 1.18.0 稳定版发布

nginx 1.18.0 已发布,这是继 1.16 系列之后的最新稳定版本。 1.18.0 加入了 1.17.x mainline 分支中的新功能和 bug 修复,包括 limit_req 和 limit_conn 中的 dry run 模式,limit_rate, limit_rate_after 和 grpc_pass 指令中对的支持,以及支持 auth_delay 指令等。 auth_delay 指令位于 ngx_http_core_module 模块中,用法如下: 语法:auth_delay time; 默认值:auth_delay 0s; 上下文:http, server, location 通过 401 响应状态码来延迟处理未经授权的请求,以防止因密码、子请求结果或 JWT...阅读全文

博文 2020-04-23 09:18:27 debian.cn

Mac OS下如何安装卸载 Homebrew

: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 在安装 Homebrew 时,如果遇到墙的问题,可通过设置环境 ALL_PROXY,通过指定通用的代理服务,绕过限制。 卸载 Homebrew 卸载Homebrew同样只需要执行一条命令即可,注意最后一个单词从 install 换为 uninstall 即可, /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" Homebrew 的日常使用 安装指定软...阅读全文

博文 2020-04-04 21:48:16 debian.cn

Python Web 框架 Flask 1.0 正式发布

Flask 是一个微型的 Python 开发的 Web 框架,最初构建于 2010 年,至今已发展 8 年。Flask 1.0 近日已正式发布。 Flask 示例代码: from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run() 1.0 版更新亮点: 不再支持 Python 2.6 和 3.3 。 CLI 更加灵活。 如果安装了 python-dotenv,flask CLI 将从 .flaskenv 和 .env 文件加载环境,而不必在每个新终端中导出它们。 开发服务器默认情况下...阅读全文

博文 2018-04-27 23:21:17 debian.cn

Go1.16 新特性:一文快速上手 Go embed

" //go:embed hello.txt var s string func main() { print(s) } 我们首先在对应的目录下创建了 hello.txt 文件,并且写入文本内容 “吃煎鱼”。 在代码中编写了最为核心的 //go:embed hello.txt 注解。注解的格式很简单,就是 go:embed 指令声明,外加读取的内容的地址,可支持相对和绝对路径。 输出结果: 吃煎鱼 读取到静态文件中的内容后自动赋值给了 s,并且在主函数中成功输出。 而针对其他的基础类型,Go embed 也是支持的: //go:embed hello.txt var s string //go:embed hello.txt var b []byte //go:embed hello.txt var f...阅读全文

博文 2021-02-17 08:44:12 CSDN

兼容 tmux 的文件上传/下载工具 trzsz ( trz / tsz ) 使用指南 支持进度条和目录传输

用 Python3 安装sudo python3 -m pip install --upgrade trzsz 用 Python2 安装sudo python2 -m pip install --upgrade trzsz 用 Homebrew 安装brew update brew install trzsz 用 Node.js 安装sudo npm install -g trzsz 或者安装用 Go 写的 trzsz参考 https://github.com/trzsz/trzsz-go 没有 sudo 权限也可以安装,只要将安装路径 ( 可能是 ~/.local/bin ) 添加到 PATH 环境中即可。支持的终端iTerm2 – 参考 Trzsz-iTerm2 安装文档。tabby...阅读全文

王垠:如何掌握所有的程序语言

吗?你不能。你得看看它里面装的是什么型号的处理器,有多少个核,主频多少,有多少 L1 cache,L2 cache……,有多少内存和硬盘,显示器分辨率有多大,显卡是什么 GPU,网卡速度,等等各种“配置”。有时候你还得看各个组件之间的兼容性。 这些配置对应到程序语言里面,就是所谓“语言特性”。举一些语言特性的例子: 定义 算术运算 for 循环语句,while 循环语句 函数定义,函数调用 递归 静态类型系统 类型推导 lambda 函数 面向对象 垃圾回收 指针算术 goto 语句 这些语言特性,就像你在选择一台电脑的时候,看它里面是什么配置。选电脑的时候,没有人会说 Dell 一定是最好的,他们只会说这个型号里面装的是 Intel 的 i7 处理器,这个比 i5 的好,DDR3 的内...阅读全文

博文 2017-07-10 10:13:17 debian.cn

Debian升级内核开启TCP_BBR 实现网络单边加速

改系统: echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
 echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf 保存并执行 sysctl -p 生效。执行, sysctl net.ipv4.tcp_available_congestion_control 如果结果是这样 root@debian:~# sysctl net.ipv4.tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = bbr cubic reno 就开启了。 然后执行下面的命令,看到有...阅读全文

博文 2021-01-28 17:50:17 debian.cn

在 Debian Stretch 上设置自动升级

更新的自动执行 Apticron 我们已经在第一步安装,在此略过。更新 apticron.conf 的配置文件。打开 /etc/apticron/apticron.conf将电子邮件设置为您的电子邮件地址,这样您就可以收到更改列表。 EMAIL="My_user_name@debian.cn" DIFF_ONLY="1" LISTCHANGES_PROFILE="apticron" SYSTEM="debian.cn" NOTIFY_HOLDS="0" NOTIFY_NO_UPDATES="0" 打开 /etc/apt/listchanges.conf 以便配置APT来保存对数据库的更改: [apt] frontend=pager email_address=My_user_name...阅读全文

博文 2018-09-10 11:47:35 debian.cn

Debian及衍生版自动安装系统更新

"; // "libc6-i686"; }; Unattended-Upgrade::MailOnlyOnError "true"; Unattended-Upgrade::Automatic-Reboot "false"; 注意在最后一行,如果希望服务器在必要时重新启动,你可以将自动重新引导设置为 true。 接下来,我们可以安装 “apticron” 来管理 APT 更新的自动执行。 # apt -y install apticron 用编辑器打开 /etc/apticron/apticron.conf ,将电子邮件设置为你自己的邮件地址,这样您就可以收到更改列表。 EMAIL="**me@debian.cn**" DIFF_ONLY="1" LISTCHANGES_PROFILE="apticron...阅读全文

博文 2019-06-04 12:23:56 debian.cn

K8S中Pod的四个阶段及状态分析

Kubernetes 中, pod 从创建到成功运行会分别处于不同的阶段,每个阶段又分为不同的状态,本文将简单介绍这个环节。 在 K8S 源码中,使用了 PodPhase 这个定义这几个阶段信息,如下图所示: 运行中(PodRunning):该 Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建。至少有一个容器正在运行,或者正处于启动或重启状态。等待中(PodPending): 创建 Pod 的请求已被 Kubernetes 系统接受,但有一个或者多个容器镜像尚未创建。可能的原因有,写数据到etcd,调度,pull镜像,启动容器这四个阶段中的任何一个阶段,pending 伴随的事件通常会有:ADDED, Modified这两个事件的产生。等待时间包括调度 Pod 的时间和下...阅读全文

博文 2020-07-15 13:11:45 debian.cn

Debian 8 使用 Apache 部署 Ruby on Rails

-dev 2.使用gem模块的gem包管理器,安装fastthread gem: sudo gem install fastthread 3.安装Ruby On Rails: sudo gem install rails 4.(可选)为您的应用程序安装其他依赖项,例如 MySQL 支持: sudo apt-get install mysql-server libmysqlclient-dev mysql-client mysql-common sudo gem install mysql 5.将rails添加到$PATH环境。 请确保用正在运行的Ruby版本替换VERSION: ls /var/lib/gems PATH="/usr/local/sbin:/usr/local/bin:/usr...阅读全文

博文 2021-01-28 17:50:33 debian.cn

服务器文件上传下载利器 trzsz + iTerm2 配置指南

/trzsz-iterm2 请自行替换成真实的 trzsz-iterm2 绝对路径。打开 iTerm2 -> Preferences... / Settings... -> Profiles -> ( 在左边选中一个 Profile ) -> Advanced -> Triggers -> Edit -> [+],如下配置:打开 iTerm2 -> Preferences... / Settings... -> General -> Magic,选中 Enable Python API。​iTerm2 Enabel Python API设置 ITERM2_COOKIE 环境可以使启动速度更快。打开 iTerm2 -> Preferences... / Settings... -> Advanced...阅读全文

Kiwi TCMS 6.11发布 开源测试用例管理系统

隆时,始终保留测试用例的原始默认测试器、重构为基于类的视图、修复了版本值在 b/c 验证中失败的问题、修复了在 UI 中显示错误版本值的问题。将 Clone TestCase 页面转换为 Patternflix,极大地简化了 UI 和更新行为:允许克隆成多个测试计划、删除“Filter another plan”选项,将改为“Add TP to TC”、克隆的 TC 将显示在 TestPlan 的底部、始终保持原来的默认测试器 API RPC 方法 Bug.Report() 的第一个参数已从 test_case_run_id 重命名为 Execution_id。这可能会破坏现有的 API 脚本,这些脚本试图通过名称而不是位置传递此参数 Settings 允许 ENV ...阅读全文

博文 2019-08-03 17:18:49 debian.cn

Kubernetes 使用 PodPreset 注入信息到 Pods_哎_小羊的博客

Pod注入了 env 环境 PODPRESET_MESSAGE=This is podpreset message. 到匹配的 Pod 中注入了 volumes 卷挂载目录到匹配的 Pod 中的 /opt/logs 目录 创建一下该 PodPreset 资源。 $ kubectl create ns wanyang3 namespace/wanyang3 created $ kubectl apply -f podpreset-busybox-hwy.yaml podpreset.settings.k8s.io/busybox-hwy created $ kubectl get podpreset -n wanyang3 NAME CREATED AT busybox-hwy 2019-07...阅读全文

博文 2021-01-27 18:47:00 CSDN博客

SVN切换分支用法汇总

new_URL 该命令的作用是将版本库中的old_URL目录重命名为new_URL。这个操作如果已经提交到版本库就意味着旧目录不存在了,新目录被创建,并且历史记录中会出现重命名的信息。三、SVN切换分支操作步骤下面为大家介绍一下,如何使用SVN进行切换分支的操作。这里以Windows环境下的操作为例,其他系统只需要将命令替换为对应系统的命令即可。1. SVN环境配置在使用SVN前,需要先进行环境配置。具体步骤如下:Step 1:下载SVN客户端。下载地址:https://tortoisesvn.net/downloads.html,选择对应的系统版本即可。Step 2:安装SVN客户端。双击下载后的安装程序,根据指示进行安装。Step 3:配置环境。进入系统中,将SVN安装路径添加到Path...阅读全文

博文 2023-06-09 14:22:35 infras

Kubernetes常用命令大全(持续更新)

分析错误)对控制器和服务,node同样有效 kubectl describe pods xxxxpodsname --namespace=xxxnamespace 其他控制器类似吧,就是kubectl get 控制器 控制器具体名称 查看pod日志 kubectl logs $POD_NAME 查看pod kubectl exec my-nginx-5j8ok -- printenv | grep SERVICE kubectl get cs #### 集群健康情况 kubectl cluster-info #### 集群核心组件运行情况 kubectl get namespaces #### 表空间名 kubectl version #### 版本 kubectl api...阅读全文

博文 2020-03-13 12:35:13 debian.cn

Apollo 分布式配置中心详解

于配置中心,那么在这里有必要先简单介绍一下什么是配置。配置有以下几个属性。 配置是独立于程序的只读 配置首先是独立于程序的,同一份程序在不同的配置下会有不同的行为。其次,配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置。 常见的配置有:DB Connection Str、Thread Pool Size、Buffer Size、Request Timeout、Feature Switch、Server Urls 等。 配置伴随应用的整个生命周期 配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置调整行为。 配置可以有多种加载方式 配置也有很多种加载方式,常见的有程序内部 hard code,配置文件,环境,启动参数,基于数...阅读全文

博文 2020-04-12 12:16:26 debian.cn

Gitlab CI 配置文件 .gitlab

GitLab 8.6 和 Runner v1.1.0 引入。 name允许定义创建的artifacts存档的名称。这样一来,我们可以为每个存档提供一个唯一的名称,当需要从GitLab中下载是才不会混乱。artifacts:name可以使用任何的预定义(predefined variables)。它的默认名称为artifacts,当下载是就变成了artifacts.zip。 配置示例 通过使用当前job的名字作为存档名称: job: artifacts: name: "$CI_JOB_NAME" 使用当前分支名称或者是tag作为存到名称,只存档没有被Git跟踪的文件: job: artifacts: name: "$CI_COMMIT_REF_NAME" untracked: true 使用当前...阅读全文

博文 2018-12-12 21:09:02 ci.yaml 详解(下)

Kubernetes源码探疑:Pod IP泄露排查及解决方法

1440次申请VPC IP和释放VPC IP操作。 然而,经过数天的测试统计,发现通过该CronJob,集群每天申请IP次数高达2500以上, 而释放的的IP次数也达到了1800。申请和释放次数都超过了1440,而且申请次数超过了释放次数,意味着,部分分配给Pod的VPC IP被无效占用而消失了。 CNI:待删除的IP去哪儿了? 仔细分析CNI插件的运行日志,很快发现,CNI在执行拆除SandBox网络动作(CNI_COMMAND=DEL)中,存在不少无法找到Pod IP的情况。由于UK8S 自研的CNI查找Pod IP依赖正确的Pod网络名称空间路径(格式:/proc/10001/net/ns),而kubelet传给CNI的NETNS环境参数为空字符串,因此,CNI无法获取待释放的VPC...阅读全文

Web前端知识体系精简

Web前端技术由html、css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系进行简单的梳理,对应的每个知识点点到为止,不作详细介绍。目的是帮助大家审查自己的知识结构是否完善,如有遗漏或不正确的地方,希望共勉。 JAVASCRIPT 篇 0、基础语法 Javascript基础语法包括:定义、数据类型、循环、选择、内置对象等。 数据类型有string,number,boolean,null,undefined,object等。其中,string,number和boolean是基础类型,null...阅读全文

博文 2021-01-28 17:50:33 debian.cn

GitHub 发布10月21日系统故障分析报告

GitHub 刚刚通过官方博客发布了 21 日“挂掉”的事件分析。GitHub 指出此次事件发生的原因是在 10 月 21 日 22:52 UTC 进行日常维护——更换发生故障的 100G 光学设备时导致美国东海岸网络中心与美国东海岸数据中心之间的连接断开。 更具体地,GitHub 分析,虽然两地的连接在 43 秒内恢复,但这次短暂的中断引发了一系列事件,这才导致了长达 24 小时 11 分钟的服务降级。 为了大规模提高性能,GitHub 的应用程序将直接写入每个群集的相关主数据库,但在绝大多数情况下将读取请求委派给副本服务器的子集。GitHub 使用 Orchestrator 来管理 MySQL 集群拓扑并处理自动故障转移,Orchestrator 在此过程中考虑了许多,并在...阅读全文

PHP 7.4 有哪些新特性

(User $user) => $user->id, $users) 需要注意几点: 短闭包可以直接访问闭包函数外面的,所以不需要再写 use 关键词以fn关键词开始$this 可以像普通的闭包一样使用短闭包只有一行代码,仅仅做返回声明使用,不允许使用return 关键词 还可以使用更严格类型的方式 $ids = array_map(fn(User $user): int => $user->id, $user); 预加载 PHP预加载可以极大的提高性能 优点:在PHP 7.4以前,如果你使用了框架来开发,每次请求文件就必须加载和重新编译。预加载在框架启动时在内存中加载文件,而且在后续请求中永久有效。 缺点:性能的提升会在其他方面花费很大的代价,每次预加载的文件发生改变时,框架需要重新启动。 属...阅读全文

博文 2019-11-29 20:45:16 debian.cn