InfraPub 为您找到相关结果 726

十个增加 Linux Shell 脚本趣味的小工具

很多误以为shell脚本只能在命令行下使用。其实shell也可以调用一些GUI组件,例如菜单,警告框,进度条等等。你可以控制最终的输出,光标位置还有各种输出效果。下面我将介绍一些工具,帮助你创建强大的,互动的,用户友好的 Unix/Linux shell脚本。我在FreeBSD和Linux下测试过这些工具,不过其他UNIX系列的操作系统应该都支持的。 1. notify-send 命令 这个命令可以让你通过通知进程发送一个桌面通知给用户。这可以用来向用户发送提示,或者显示一些信息而不用打断用户工作。你需要安装如下软件包: $ sudo apt-get install libnotify-bin 下面这个例子展示了如何从命令行向桌面发送一个简单的消息: notify-send...阅读全文

博文 2018-04-09 09:38:50 debian.cn

Debian 10使用 Wine 安装配置微信、QQ与TIM

/Program Files (x86)/Tencent/TIM/Bin/TIM.exe,同样右击选择wine打开即可。 题外话,2019年腾讯官方10月24日发布了Linux版QQ(含deb, rpm, pkg.tar.xz, sh版),而到2020年4月1日发布了新版。2020.4.1版修复了一些bug至少能够正常用了,能够输入文字、收发文件。因此wine安装QQ不太必要了,笔者也没有作过多测试研究。微信虽然有网页版,但很多反映web微信登录不了,并且还没有Linux版微信发布,因此wine微信似乎有用些。...阅读全文

在树莓派上搭建 Raspbian 系统下的 Kubernetes 集群

我们将介绍,如何在三个树莓派上,创建出一套 Kubernetes 集群并正常使用。在这种场景下,主节点的内存和 CPU 资源较有限,执行 Kubernetes 任务时性能会有折扣,想做升级也不容易。 在开始之前,我们先介绍 K3s 这个项目。K3s 被誉为是最轻量级的 Kubernetes 发行版,它针对低配的 x86 和 ARM 处器优化,可以让 Kubernetes 在树莓派上运行得更好。 基于 Raspbian 的 kubernetes 集群 本文我们将介绍如何使用 K3s 在树莓派上创建 Kubernetes 集群。系统我们用的是树莓派最流行的 Raspbian。 准备工作 在开始创建 Kubernetes 集群之前,我们需要准备, 至少一个树莓派,包括 SD 卡和电源网线,普通...阅读全文

博文 2020-04-12 16:30:23 debian.cn

nsenter 及 Linux命名空间 简介

,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 56:7b:98:07:30:bc brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.134.93/27 brd 192.168.134.95 scope global eth0 valid_lft forever preferred_lft forever 通过内网 IP 地址,我们得知已成功进入容器内部。 原 namespace namespace 是 Linux 中一些进程的属性的作用域,使用命名空间,可以隔离不同的进程。 Linux在不断的添加命名空间,目前有: mount:挂载命名空间,使...阅读全文

博文 2020-12-15 11:22:44 debian.cn

kubelet 中垃圾回收机制的设计与实现

k.StartGarbageCollection 启动了 GarbageCollect。k8s.io/kubernetes/cmd/kubelet/app/server.go:1089func createAndInitKubelet(......) { k, err = kubelet.NewMainKubelet( ...... ) if err != nil { return nil, err } k.BirthCry() k.StartGarbageCollection() return k, nil }k.StartGarbageCollection在 kubelet 中镜像的生命周期和容器的生命周期是通过 imageManager 和 containerGC 的。在 StartGarbageCollection 方法中会...阅读全文

博文 2021-02-05 17:48:22 知乎

树莓派64位系统Debian 9先行测评:性能最高提升30倍

采用64位处器的树莓派3B,虽然具有64位硬件,但是系统还没有跟上节奏。官方尚未正式发布64位Raspbian,近期有团队移植了Debian 9 arm64到树莓派3B,将“装死”一年多的树莓派3B的性能完全释放出来,测试跑下来发现CPU性能最高比32位系统高30倍! 本文将介绍如何进行对比跑分测试。 硬件测试环境: RaspberryPi 3 Model B 16GB Class 10 TF卡 5v2.5A电源 以太网网线及能连外网路由设备 软件测试环境: GEEEKPI-64bit-beta(内核移植版,操作系统是基于Debian 9的arm64位源码,Debian 9目前还没发布,目前属于beta版,RaspberryPi 官方也没有发布64bit操作系统的计划,但是我们迫切需要...阅读全文

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

Go 1.9 的新特性介绍

档: monotonic time 位处操作 新增加了math/bits包, 提供了很多位运算的函数。 Test Helper函数 新加`(T).Helper和(B).Helper m`, 用来标记调用的函数是一个测试辅助函数,当输出文件名和行数的时候,这个函数回呗忽略。 标准库的微小改动 标准库也有一些小的功能的加入和提升, 比如image、net、runtime、sync等。 并行编译 支持并行地编译函数,并且在Go 1.9中势默认设置。如果不想并行编译,设置GO19CONCURRENTCOMPILATION为0。 ./... 会忽略vendor下的包 这一条很有用,以后你在Makefile中可以直接使用./...,而不是曲折地将vendor文件夹排除。 如果你想使用vendor下的包...阅读全文

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

Debian 10 Buster 国内常用镜像源

随着 Debian Buster 10.3 的发布,Debian Buster 日趋稳定。如果在生产上使用了 Debian 9 的系统,现在是可以安全的,灰度升级到 Debian Buster 做前期验证了。这里我们整一下国内较知名的镜像站点,共大家在生产环境中使用。 如何更新系统安装源 一般我们修改 /etc/apt/sources.list 文件,将 Debian 的默认源地址改成新的地址即可,比如将 http://deb.debian.org 改成 https://mirrors.163.com,可使用以下这条命令: sed -i 's#http://deb.debian.org#https://mirrors.163.com#g' /etc/apt/sources.list 注意...阅读全文

博文 2020-02-22 21:35:25 debian.cn

Raspbian 国内软件源列表

花了些时间整了目前最新的树莓派中国大陆地区的软件源,记下来,希望对大家有帮助。 中国科学技术大学 Raspbian http://mirrors.ustc.edu.cn/raspbian/raspbian/ 阿里云 Raspbian http://mirrors.aliyun.com/raspbian/raspbian/ 清华大学 Raspbian http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ 华中科技大学 Raspbian http://mirrors.hustunique.com/raspbian/raspbian/ Arch Linux ARM http://mirrors.hustunique.com...阅读全文

Linux 上如何禁用 USB 存储设备

个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块, $ sudo modprobe usb-storage 这个问题使得这个方法不是那么想,但是对于非特权用户来说,这个方法效果很好。 在更改完成后重新启动系统,以使更改生效。请尝试用这些方法来禁用 USB 存储,如果您遇到任何问题或有什么疑问,请告知我们。...阅读全文

博文 2017-12-18 22:52:58 debian.cn

DNS SRV:使用DNS服务器做服务发现

级的记录,按照权重选择,记录的权重越高,被选择的可能性越高。 选择的时候,将所有记录的权重值累加,得到一个选择区间[0,sum],每个记录在[0,sum]中占据一段连续的、长度为自身权重值区间。然后生成一个[0,sum]中的随机数,随机数落在的区间所属的记录就是被选择的记录。 注意事项 在使用DNS SRV的时候,要注意DNS Client是否按照预期的方式处收到的SRV记录。当前DNS SRV只能够负责提供服务地址列表,对这个列表如何解读,完全取决于Client的实现。rfc-1035中规定,通过UDP协议传输DNS响应时,UDP报文的负载不能超过512字节,在添加 SRV 记录的时候,要特别注意。通过TCP传输时没有512字节的限制。当一个服务地址有多个相同优先级的SRV记录的时候...阅读全文

博文 2019-03-05 09:35:34 debian.cn

Debian 8 (Jessie)下面如何安装卸载docker

Debian是使用非常广泛的系统,本篇文章第一部分讲述如何在Debian 8 (Jessie) 下面安装 Docker 环境,第二部分介绍了如何彻底的清 Debian 8 上的 Docker 环境。 Debian 8 使用了3.16的内核,已经满足了docker运行的要求。但是因为安全方面的原因,docker.io 包并没有放在debian的stable源里面,而是放在了backports 源里面。为什么从jessie源里面移除docker.io包,简而言之,是因为go语言包版本的问题。 Debian backports的介绍和使用可以参考本篇文章,或者官方站点的介绍。 安装Docker包之前,先设置安装源。 这里我们使用了Docker官方提供的Debian安装源。配置方法如下。新建一个...阅读全文

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

Kubernetes调度算法浅析

在真正的生产环境中,如何合的分配服务器资源、提高利用率、让整个集群运行的更加稳定使得 k8s-scheduler 这个角色在集群中的地位愈发重要。 kube-scheduler的预选(过滤)和精选(打分) api-server会将创建pod的请求发送给kube-scheduler,并且将pod信息记录在etcd数据库中。之后kube-scheduler会根据预选(过滤)规则,首先过滤掉一部分node节点中的pod,没有被过滤掉的pod可以看做是可以被调度的pod,之后再通过更加严格的规则给剩下的pod打分,这一步也叫作优选。打分最高的pod可以看做被优先分配到pod任务。 调度流程简介 创建pod的命令被api-server的api接口接收到。api-server将pod信息存储在...阅读全文

博文 2020-12-20 11:01:10 debian.cn

NVDIMM-P非易失内存标准公布:断电不丢数据、兼容DDR4

。 - 大容量:支持扩展的内存寻址功能。 - 支持即插即用:在电脑开机时可以直接插入标准的双列内存插槽,并立刻与同一总线上的DDR内存交互操作。 NVDIMM-P的主要特征: - 与现有DDR通道完全兼容,包括物接口、电气性能、协议、时钟。 - 保证为下一代CPU插槽增加的针脚尽可能少。 - 协议支持数据读取时的不确定延迟。 - 确保数据在非易失内存中的事务性操作。 - 从NAND到DRAM多种延迟模式的支持(在模块级别)。 - 内存本身具备高可靠性、链路错误保护功能。 事实上,NVDIMM是一个系列标准,除了这里说的NVDIMM-P,还有NVDIMM-F、NVDIMM-N、NVDIMM-H。 NVDIMM-F本质上就是DDR接口的SSD固态盘,只使用NAND闪存,优点是延迟低(纳秒级别)、带宽高...阅读全文

Golang Context 探究

server 来解释, Go 服务每次都是启动一个新的 goroutine 来处每一个请求,在这个请求的操作往往会启动新 goroutine 访问数据库或其他服务,如果此时客户端断开了连接,后续的消耗资源的操作就完全没必要了。所以我们需要一个在 goroutine 之间同步取消信号,截止时间的机制或者特定请求数据。而 Context 被设计出来就是帮我们实现这个目标。 1 2 3 |-----------| |-----------| |-----------| | goroutine |-------> | goroutine |-------> | goroutine | |-----------| |-----------| |-----------| 默认 Context context 包...阅读全文

博文 2021-02-25 09:27:27 lxkaka

linux下查看系统socket读写缓冲区_eyucham的专栏

/proc/sys/net/core/rmem_max 131071 131071:tcp 或 udp 接收缓冲区最大可设置值的一半。 也就是说调用 setsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 时rcv_size 如果超过 131071,那么 getsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 去到的值就等于 131071 * 2 = 262142 [root@ www.linuxidc.com]# cat /proc/sys/net/core/wmem_max 131071 131071:tcp 或 udp 发送缓冲区最大可设置值得一半。 跟上面同一个道 3...阅读全文

博文 2021-01-26 16:21:35 CSDN博客

AWS省钱攻略:预留实例怎么玩

实例的合并,必须在相同的时间过期,换句话说,也就是该批实例必须是同期采购的相同期限的RI。 可转换RI(CRI) CRI在灵活匹配与合并拆分的基础上增加了更多维度可转换属性:实例类型、操作系统、租期、付款选项,当然价格可能可能上浮10个点左右。可以说CRI提供了最高的灵活可变性,几乎可满足所有的更变需求。唯一的限制: 新可转换预留实例的总价值(预付价格 + 每小时价格 * 剩余小时数)必须大于等于当前总价值! 换句话说客户只能在现有基础上加价,这种也是有道,AWS 总不能因为您换了小规格实例给你退钱吧。 AWS RI使用的一些建议 如果没有容量预留的需求不要选择可用区RI,否则将失去灵活匹配优势针对业务计算需求增加需要调整实例类型机型(非license ) ,无需调整已购买的RI,只需要考...阅读全文

博文 2019-08-18 18:26:19 debian.cn

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

embed.FS func main() { print(s) print(string(b)) data, _ := f.ReadFile("hello.txt") print(string(data)) } 输出结果: 吃煎鱼 吃煎鱼 吃煎鱼 我们同时在一个代码文件中进行了多个 embed 的注解声明。 并且针对 string、slice、byte、fs 等多种类型进行了打包,也不需要过多的处,非常便利。 拓展用法 除去基本用法完,embed 本身在指令上也支持多种变形: //go:embed hello1.txt hello2.txt var f embed.FS func main() { data1, _ := f.ReadFile("hello1.txt") fmt.Println...阅读全文

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

Golang 应用集成 Prometheus 统计数据支持

Prometheus 客户端公开了在暴露服务指标时能够运用的四种指标类型。查看 Prometheus 的文档 以获得关于各种指标类型的深入信息。 Counter(计数器 一种累加的 metric,典型的应用如:请求的个数,结束的任务数,出现的错误数等。随着客户端不断请求,数值越来越大。例如api_http_requests_total{method="POST", handler="/messages"} Gauge(计量器) 一种常规的 metric,典型的应用如:温度,运行的 goroutines 的个数。返回的数值会上下波动。 例如 go_goroutines{instance="172.17.0.2", job="Prometheus"} Histogram(分布图) 可以解为柱状图,典型的应用如...阅读全文

博文 2022-11-24 10:33:09 CSDN博客

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

择合适的缓冲区大小,但不会超过此上限。-t 超时时间trz -t 30 或 tsz -t 30 xxx 等,设置超时秒数 ( 默认 20 秒 )。在超时时间内,如果无法传完一个缓冲区大小的数据则会报错并退出。设置为 0 或负数,则永不超时。异常处方法如果 tmux 不是运行在远程服务器上,而是运行在本地电脑上,或者运行在中间的跳板机上。方案1:使用 tmux -CC 与 iTerm2 集成,请参考 iTerm2 与 tmux -CC 集成。方案2:在本地电脑上安装 trzsz-go,设置 alias ssh="trzsz ssh" 可以方便使用。如果出现了错误,且 trzsz 挂住不能动了:按组合键 control + c 可以停止服务器上的 trz 或 tsz 进程。对于 iTerm2...阅读全文

Python的闭包和装饰器

意,可以形象的把它解为一个封闭的包裹,这个包裹就是一个函数,当然还有函数内部对应的逻辑,包裹里面的东西就是自由变量,自由变量可以在随着包裹到处游荡。当然还得有个前提,这个包裹是被创建出来的。 在通过Python的语言介绍一下,一个闭包就是你调用了一个函数A,这个函数A返回了一个函数B给你。这个返回的函数B就叫做闭包。你在调用函数A的时候传递的参数就是自由变量。 举个例子: def func(name): def inner_func(age): print 'name:', name, 'age:', age return inner_func bb = func('the5fire') bb(26) # >>> name: the5fire age: 26 这里面调用func的时候就产生...阅读全文

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

Golang常见的十大算法精简版

} /*** * go特有变量交换 */ func SwapGo(list []int, i, j int) { list[i],list[j]=list[j],list[i] } /*** * go变量高阶交换(不推荐,一般不好解) */ func SwapGoAdvanced(list []int, i, j int) { list[i]=list[i]+list[j] list[j]=list[i]-list[j] list[i]=list[i]-list[j] } 运行排序方法 使用终端执行go get github.com/e9ab98e991ab/go-algorithm执行touch main.go执行vim main.go拷贝下方代码块代码到main.go文件中wq保存后直接执行go run...阅读全文

博文 2019-09-05 09:31:10 debian.cn

Docker 快速入门之 Dockerfile

, LABEL, EXPOSE, ENV, ADD, COPY, ENTRYPOINT, VOLUME, USER, WORKDIR, ARG, ONBUILD, SHELL等指令,这里只选择常用的几个进行讲解,可结合上面的示例进行解。其它的请自行查阅官方文档。 3.1 FROM FROM 指令用于指定要操作的基础镜像,因为在我们构建我们自己的镜像的时候需要一个基础镜像。 语法: FROM [AS ] FROM [:] [AS ] 其中 [AS ] 为指定一个名称,在一个 Dockerfile 中多次使用 FROM 时如有需要,可用 COPY --from= 语法进行复制。 3.2 RUN RUN 指令...阅读全文

博文 2017-12-16 13:50:31 debian.cn

Monit:开源服务器监控工具

Monit是一个跨平台的用来监控Unix/linux系统(比如Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,而且非常轻量级(只有500KB大小),并且不依赖任何第三方程序、插件或者库。 Monit可以监控服务器进程状态、HTTP/TCP状态码、服务器资源变化、文件系统变动等等,根据这些变化,可以设定邮件报警、重启进程或服务。易于安装、轻量级的实现以及强大的功能,让Monit成为一个想的后备监控工具。 官网:https://mmonit.com/monit文档:https://mmonit.com/monit/documentation/monit.html最新版本:https://mmonit.com/monit/dist/monit-5.20.0...阅读全文

博文 2023-04-12 15:21:43 阿里云开发者社区

从 Debian 安装 Proxmox VE,并配置网络和双硬盘

即断网吗? 放心,网卡配置需要重启才能生效,所以你只需要确保重启前正确配置了网卡。 新建一个 vmbr0. Create - Linux Bridge 桥接网卡 将 IP 地址配置到桥接网卡上,桥接网卡指向 物网卡 如果有 IPv6 地址也可以加上。 IPv6 也不是完全没卵用,我们可以用 cf 中转,搞点网站什么的还是可以,就不用再配置一套内网了。 Cloudflare support IPv6 addresses to your origin server, and will accept both IPv4 and IPv6 from clients. via: https://serverfault.com/questions/874387/ipv6-only-server...阅读全文

博文 2021-03-01 20:20:31 驱蚊器喵的插座