InfraPub 为您找到相关结果 527

Debian Linux下LNMP环境配置

昨天刚给公司服务器装了LNMP服务器环境,在这里简单记录一下过程备忘。这里我在安装的时候是用的Dotdeb源,仅供参考。 1. 导入Dotdeb源,据说Dotdeb源里的软件版本比较新。 在源中导入Dotdeb前,我们需要先获取GnuPG key并导入: wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | apt-key add - 提示OK,表明导入成功。然后我们开始导入Dotdeb 源,源列表的位置在“/etc/apt/sources.list”,我们通过vi工具或nano工具打开sources.list,添加如下两行: deb http://packages.dotdeb.org wheezy all deb-src...阅读全文

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

成功运作一个开源项目的15个要点

少。 2、透明 这一点很容易理解:我们要使得社区可以观察和了解你正在做的事情:使用易于查找的可公开访问的源代码存储库,使用面公众的问题跟踪软件,在社区可以找到的地方公布发布计划,以及在公共论坛捕获会议记录(例如归档邮件列表)。 3、开放 对于很多开源项目来说,“透明度”和“开放性”意味着同一件事,但其实这两个术语的含义截然不同。开放不仅仅指的是“一目了然”(这与透明本质上是一样的)。对于许多人来说,开源的“开放”意味着开放新思想,或开放参与。参与开源项目的规则对于每个人应该是一样的(“公平的竞争环境”):仅仅接受几个补丁是不够的,你必须对新的思路点子开放。总之,你必须允许别人参与你的项目,放弃对项目的绝对控制。 4、保持“公平的竞争环境” 这并不一定意味着你必须让任何人加入项目,而是要确保...阅读全文

博文 2017-11-08 09:58:28 debian.cn

什么是线程安全,以及并发需要知道的几个概念

的资源一直不释放的话,那么其他阻塞的线程就都不能工作了。 非阻塞则相反,强调的是线程之间并不互相妨碍,所有的线程都会不断尝试前执行。 死锁、饥饿和活锁这三种情况表示的是多线程间的活跃状态,对于线程来说,以上的情况都是 “非友好” 的状态。 1、死锁一般是指两个或者两个以上的线程互相持有对方所需的资源,并且永远在等待对方释放的一种阻塞状态。例如有两个线程A和B同时共享临界区的资源C,当A占用C时,B处于阻塞状态,然而A的释放需要用到B的资源,这样一来,就变成了A一直在等待B,B也一直在等待A,互相之间永远在等待对方释放的状态。 一般来说,死锁的发生是由于程序的设计不合理导致,而且死锁很难解决,最好的方式就是预防。 2、饥饿是指某一个或者多个线程因为种种原因无法获得所需的资源,导致一直无法执行...阅读全文

博文 2018-12-31 20:44:06 debian.cn

如何在 Debian 下配置邮件服务器

户和它们各自的邮箱。创建一个用户是很容易的。 root@mail:~# adduser fourbyte 安装和配置SMTP 服务: postfix 配置文件路径 /etc/postfix/ 执行脚本 /etc/init.d/postfix 日志文件 /var/log/mail.log 端口 TCP/25 SMTP:安装postfix Postfix是广泛使用的SMTP服务器之一,因为它是稳定的、轻量级的、可扩展的、高度可定制的。安装postfix可以使用apt-get的完成。 root@mail:~# apt-get install postfix 在安装过程中,需要指定电子邮件服务器和域名的类型。 由于此邮件服务器就会直接目的地发送电子邮件,我们选择Internet Site。 邮件服...阅读全文

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

三个技巧 大幅减少 Docker 镜像体积

在构建 Docker 容器时,应该尽量想办法获得体积更小的镜像,因为传输和部署体积较小的镜像速度更快。但 RUN 语句总是会创建一个新层,而且在生成镜像之前还需要使用很多中间文件,在这种情况下,该如何获得体积更小的镜像呢? 你可能已经注意到了,大多数 Dockerfiles 都使用了一些奇怪的技巧: FROM ubuntu RUN apt-get update && apt-get install vim 为什么使用&&?而不是使用两个 RUN 语句代替呢?比如: FROM ubuntu RUN apt-get update RUN apt-get install vim 从 Docker 1.10 开始,COPY、ADD 和 RUN 语句会镜像中添加新层。前面的示例创建了两个层而不是一...阅读全文

博文 2018-09-06 10:50:29 debian.cn

一位五年工作经验架构师的感悟

眼光羡慕别人。 于是在工作一年半的时候,选着了裸辞,其实还是很佩服自己,因为多数人都是骑驴找马。多数时候是招聘 3、5、8 年经验的人。但是,当你顾虑越多的时候,越容易失败。 所以,找到你的追求,然后就去追去。 失败不可怕,需要对自己、未来充满信心 当时的我真的很弱,但是我就是想找个地方提升自己的技术,提升自己的价值。 刚好有个朋友是阿里 B2B 的,当时也没有太多关注阿里,也不知道阿里到底有哪些子公司。但是,我的朋友,热心的说:“要不要我帮你内试试?”,我就是抱着试一试的心态,想去尝试下,知道阿里的技术强,但是到不到阿里的要求。 于是开启了我奇葩的入职阿里经历。 第一次面试,阿里 B2B 的岗位,就有很多知识不知道,面试官问了一致性 hash,那个年代的我,哪里知道。不过面试官还是和我聊...阅读全文

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

使用 tmate 分享你的终端会话

不久前,我们写过一篇关于 teleconsole 的介绍,该工具可用于快速分享终端给任何人(任何你信任的人)。今天我们要聊一聊另一款类似的应用,名叫 tmate。 tmate 有什么用?它可以让你在需要帮助时你的朋友们求助。 什么是 tmate? tmate 的意思是 teammates,它是 tmux 的一个分支,并且使用相同的配置信息(例如快捷键配置,配色方案等)。它是一个终端多路复用器,同时具有即时分享终端的能力。它允许在单个屏幕中创建并操控多个终端,同时这些终端还能与其他同事分享。 你可以分离会话,让作业在后台运行,然后在想要查看状态时重新连接会话。tmate 提供了一个即时配对的方案,让你可以与一个或多个队友共享一个终端。 在屏幕的地步有一个状态栏,显示了当前会话的一些诸如...阅读全文

博文 2017-12-06 10:33:33 debian.cn

Linux 27周年:这27件有趣的事实你可能不知道

许多人认为10月5日是 Linux 系统的周年纪念日,因为这是 Linux 在1991年首次对外公布的时间。不过,你可能不知道的是,早在1991年8月25日,当年还是大学生的 Linus Torvalds 就 comp.os.minix 新闻组的人透露了由于“业余爱好”他正在研究操作系统的消息。因此,该时间也被许多爱好者视为 Linux 的真正诞生日期。 为纪念 Linux 27 岁诞辰,OMG Ubuntu 列出了 27 个与 Linux 和 Linus Torvalds 相关的有趣事实。 1、截至 2018 年,Linux 内核已有 20,323,379 行代码。尽管近期有所减少,但庞大的代码量意味着 Linux 仍然是地球上(单个)最大的开源项目。 2、Linux 差点不叫这个名字...阅读全文

Debian 社区陷入尴尬 或群龙无首

也预想了这种情况,在没有项目负责人的情况下,技术委员会主席和项目秘书有权做出各种决定,前提是他们能够达成一致。信中对这种情况表示乐观:“由于 Debian 开发人员来以‘非争论群体’著称,所以达成一致应该不成问题。”但很明显这种不确定因素过高的方案不是一个良策。 联系一下此前 Debian 包维护者 Michael 对社区的不满,他认为 Debian 整个开发评估流程都非常迟缓,比如补丁的评估没有截止日期,有时候他会收到通知说几年前递交的补丁现在合并了;赋予维护者的个人自由度太高,一些维护者可以出于个人喜好拒绝合作等,这些都对 Debian 的发展产生不好的影响。 就像 Michael,许多人都认为社区内部给予开发者的自由度过高,并且带来不好的影响。按照前边对于 Debian 领导人实权的...阅读全文

博文 2019-03-14 11:05:23 debian.cn

Java 12 / JDK 12 正式发布

Mixed GC 如果 G1 Mixed GC 存在超出暂停目标的可能性,则使其可中止。 Promptly Return Unused Committed Memory from G1 G1 及时返回未使用的已分配内存 增强 G1 GC,在空闲时自动将 Java 堆内存返回给操作系统。为了实现操作系统返回最大内存量的目标,G1 将在应用程序不活动期间定期执行或触发并发周期以确定整体 Java 堆使用情况。这将导致它自动将 Java 堆的未使用部分返回给操作系统。而在用户控制下,可以可选地执行完整的 GC,以使返回的内存量最大化。 上述每一个新特性都有详细的说明文档,可以点击相应链接查看。 观望 JDK 13 根据 JDK 13 的迭代计划,预计将于 2019 年 9 月发布 —— Java 现在采...阅读全文

博文 2019-03-20 12:46:27 debian.cn

Systemd 及 Service 文件含义解析

。 * Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。 * Type=notify:与 Type=simple 相同,但约定服务会在就绪后 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。 * Type=dbus:若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。 修改现存单元文件 要更改由软件包提供的单元文件,先创建名为 /etc/systemd/system/<单元名>.d/ 的目录(如/etc/systemd/system...阅读全文

博文 2021-02-17 10:02:50 joseph

AWS EKS 添加IAM用户角色 - SRE运维博客

的联合身份用户。如果使用不属于 aws-auth ConfigMap 的 IAM 用户或角色访问 Amazon EKS 控制台,则无法看到 Kubernetes 工作负载。也不会看到集群的概览详细信息。所以要其他 AWS 用户或角色授予与集群交互的能力,您必须在 Kubernetes 中编辑 aws-auth ConfigMap。 因为部门有不通的角色,所以想基于不通的角色分配不同的权限,下面是记录添加一个对 EKS 只有只读权限的 AIM 用户。 {{< notice info "注意:" >}} 如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您使用的是最新版的 AWS CLI。 {{< /notice >}} 为 IAM 用户或角色配置权限 要查找具有主要...阅读全文

博文 2022-12-19 21:15:27 博客园

如何校验 Debian 软件包的 MD5

你有没有想过为什么安装在你系统上的某个二进制文件或软件包没有按预期的那样来运行,或者说没有按正常的方式来运行,也许它根本就无法启动。 考虑到这是维护系统上未损坏软件包的一个重要因素,因而对照存储在软件包中的信息,验证文件系统上的文件是个重要步骤,为此需要阅读本文。 荐阅读:《学会如何在Linux下生成MD5校验和并使用它来校验文件?》 如何对照MD5校验和校验已安装的Debian软件包? 在Debian/Ubuntu系统上,你可以使用debsums工具来校验已安装软件包的MD5和。如果你想在安装之前知道关于debsums软件包的信息,可以使用APT-CACHE,就像这样: $ apt-cache search debsums 下一步,使用apt命令来安装它,如下所示: $ sudo...阅读全文

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

Linux 基金会董事 Jim Zemlin:全球开源可持续增长将带来更多价值

展。去年我们与华为、中国移动宣布了一个开源项目,后来有中国电信和中国联通的加入;再后来又有国际运营商 AT&T、Orange 和中国一些企业共同联手合作,希望能够建立世界上最大的开源的电信类基础设施。由此可以看到现在中国也有一些高质量的开源项目。” 最后,Jim 寄语 LC3 活动: “我们之所以举办 LC3 大会是希望全世界顶尖的开发者和中国的企业、顶尖开发者共聚一堂,分享最佳实践,我们相信未来中国会有更多的自主的开源的项目。 届时,Linux 创始人 Linus Torvalds 将来到中国,和中国开源的开发者进行交流,希望能够动中国的开源项目不断地发展和扩展。 大会还邀请到开源项目和技术方面的有 OpenStack 项目执行董事、Kubernetes 项目负责人...阅读全文

博文 2021-01-28 17:50:33 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

APISIX Ingress 如何使用 Cert Manager 管理证书

issuer.yaml 请注意,自签名颁发对象不荐使用在生产环境中!更多证书颁发对象的配置请参考这里。 然后为域名 httpbin.org 创建一张证书。 # httpbin-cert.yaml apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: httpbin namespace: ingress-apisix spec: secretName: httpbin duration: 2160h # 90d renewBefore: 360h # 15d subject: organizations: - foo commonName: httpbin.org isCA: false privateKey: algorithm...阅读全文

博文 2023-02-09 07:38:06 中文开源技术交流社区

你应该选择Cinnamon作为Linux桌面环境的十个理由

Cinnamon 桌面 Cinnamon目前的最新版本为3.2。Cinnamon可用于多种发行版,其中包括Debian、Arch、Gentoo、Mint、Fedora以及OpenSUSE等。 使用Cinnamon的理由 1. 集成度。桌面的选择与应用可用性并无关联。事实上,我所用过的任何应用都能够在任意桌面环境中运行良好,Cinnamon自然也不例外。不过,Cinnamon确实能够为各类面KDE与GNOME乃至任何其他桌面编写的应用提供全部必要库,且带来良好的无缝化体验。 2. 外观。Cinnamon拥有清晰、简洁的外观设计,且字体与颜色组合适于阅读。大家可以通过System Settings -> Desktop菜单轻松完成图标显示设置,也能够借此指定桌面图标应该仅显示在主显示器上、副显示器上或者同时...阅读全文

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

nsenter 及 Linux命名空间 简介

, argv[1]); setns clone用于创建新的命令空间,而setns则用来让当前线程(单线程即进程)加入一个命名空间。语法: #define _GNU_SOURCE /* See feature_test_macros(7) */ #include int setns(int fd, int nstype); fd参数是一个指一个命名空间的文件描述符,位于/proc/PID/ns/目录。nstype指定了允许进入的命名空间,一般可设置为0,表示允许进入所有命名空间。 因此,往往该函数的用法为: 调用setns函数:指定该线程的命名空间。调用execvp函数:执行指定路径的程序,创建子进程并替换父进程。 这样,就可以指定命名空间运行新的程序了。代码示例: #define...阅读全文

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

Kubernetes v1.21 新特性预览

IPv4 和 IPv6 两个地址。注意,如果使用了 CNI 插件和云服务商扩展(Cloud Provider),CNI 插件和云服务商扩展也需要支持 IPv4/IPv6 双栈。CSIVolumeHealth Alpha 和 CSIStorageCapacity Beta从 v1.21 开始,Kubernetes 支持 CSI 存储插件的 Volume 健康检查(Alpha 版),CSI 插件需要实现外部健康监控控制器。当 Volume 或者 Node 出现异常时,该控制器会 Volume 所属的 PVC 以及使用该 PVC 的 Pod 发送一个异常事件。CSIStorageCapacity 用于跟踪 CSI 存储容量并确保 Pod 调度到足够存储容量的节点上。该特性从 v1.21 开始进入...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

最全 MongoDB 基础教程

教程', description: 'shu ju ku', by: 'ruochen', tags: ['mongodb', 'database', 'NoSQL'] }) db.ruochen.find() 方法2 document=({title: 'mongodb', description: 'shu ju ku', by: 'ruochen', tags: ['mongodb', 'database', 'NoSQL'] }) db.ruochen.insert(document) db.ruochen.find() db.collection.insertOne() # 指定集合中插入一条文档数据 db.collection.insertMany() # 指定集合中插入多条...阅读全文

博文 2021-02-22 07:45:45 OSChina

如何使用 journalctl 清理 journal 日志

下面的逻辑来覆盖默认设置: 主配置文件最先被读取, 优先级也最低。 所有 *.conf.d/ 中的配置文件 都会覆盖主配置文件中的设置。 所有 *.conf.d/ 中的配置文件(无论位于哪个目录中), 统一按照文件名的字典顺序处理。 当多个配置文件都设置了同一个选项的时候: (1)如果该选项仅接受一个单一值,那么仅以文件名最靠后(字典顺序)的那一个为准; (2)如果该选项可接受一个值列表,那么将会按照文件名的字典顺序将所有值列表拼接起来。 为了便于排序, 建议给所有 *.conf.d/ 中的配置文件 都加上两位十进制数字的文件名前缀。 如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件, 那么最佳做法是在 /etc/ 目录中 创建一个指 /dev/null 的同名符号链接...阅读全文

博文 2021-02-05 15:43:28 博客园

译:零信任对 Kubernetes 意味着什么

“sidecar”概念,其中平台容器(译者注:此处指 sidecar 代理容器)可以在部署时以后期绑定操作功能的形式,与应用程序容器动态注入到一起,。服务网格使用这种 sidecar 方法在运行时将代理添加到应用程序 pod 中,并连接这些代理以处理所有传入和传出流量。这允许服务网格以与应用程序代码解耦的方式交付功能。应用程序和平台之间的关注点分离是服务网格主张的核心价值:当然,这些功能可以直接在应用程序中实现,但是通过解耦,我们允许安全团队和开发人员相互独立地迭代,同时仍然努力实现安全但功能齐全的应用程序的共同目标。由于服务网格处理进出应用程序之间的默认网络,因此它可以很好地处理零信任问题:工作负载身份可以从 Kubernetes 中的 pod 身份而不是其 IP 地址中获取。可以通过在双 TLS 中...阅读全文

Java Annotations详解

对舍弃的原因加以说明。 @Override @Override被用在方法前,用来说明覆盖了父类中的方法。假如一个方法被@Override修饰,但实际上它并没有覆盖任何方法,则编译器会提示一个错误。 @Override并不是必须的,即覆盖父类方法时,也可以不在子类方法前面添加@Override。但是还是荐使用@Override,因为这样做是有好处的,至少可以较少一些不必要的错误。如覆盖方法的方法名不对,并没有实现覆盖;或者有人修改了父类中的方法名,导致的子类中的覆盖失效,如果有@Override,编译器就会自动提示错误,从而避免了错误。 @SuppressWarnings 使用@SuppressWarnings能够是编译器对指定的方法放弃提示警告。如方法中引用了已经被舍弃...阅读全文

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

Kubernetes 部署 Nacos 1.4 集群 · 小豆丁

性: 服务发现: 支持 DNS 与 RPC 服务发现,也提供原生 SDK 、OpenAPI 等多种服务注册方式和 DNS、HTTP 与 API 等多种服务发现方式。 服务健康监测: Nacos 提供对服务的实时的健康检查,阻止不健康的主机或服务实例发送请求。 动态配置服务: Nacos 提供配置统一管理功能,能够帮助我们将配置以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。 动态 DNS 服务: Nacos 支持动态 DNS 服务权重路由,能够让我们很容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单 DNS 解析服务。 服务及其元数据管理: Nacos 支持从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静...阅读全文

博文 2021-02-24 10:10:29 www.mydlq.club

Debian 10.8 发布:包括多项安全更新和错误修复

Debian 项目团队宣布其稳定发行版 Debian 10 (代号 "buster")的第八次更新。本次更新主要是对安全问题进行了修正,同时也对一些严重的问题进行了调整。安全公告已经单独发布,并在可用的地方进行了参考。 需要注意的是,这个点发行版(point release)并不构成 Debian 10 的新版本,只是更新了其中的一些软件包。没有必要扔掉旧的 "buster "介质。安装后,可以使用最新的Debian镜像将软件包升级到当前版本。 那些经常从 security.debian.org 安装更新的人不会需要更新很多软件包,大多数这样的更新都包含在点发布中。新的安装镜像很快就会在常规位置提供。 将现有的安装升级到这个版本可以通过将软件包管理系统指Debian的许多HTTP镜像之一...阅读全文

博文 2021-02-07 10:57:22 joseph

Docker 核心原理

/77a2b28678d5406b8184e213a725bac51e4bb0132cb2c2c7928c9805bbeb57e3/merged", "UpperDir": "/var/lib/docker/overlay2/77a2b28678d5406b8184e213a725bac51e4bb0132cb2c2c7928c9805bbeb57e3/diff", "WorkDir": "/var/lib/docker/overlay2/77a2b28678d5406b8184e213a725bac51e4bb0132cb2c2c7928c9805bbeb57e3/work" }, "Name": "overlay2" }, ... 我们可以看到 lowerdir 包含了多层,每个镜像层目录中包含了一个文件 link,文件内容则是当前层对应的短标识符;lower 文件指了其所有的父层,其文件内容则是父层id的短标...阅读全文

博文 2021-02-25 09:14:23 lxkaka

从 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 驱蚊器喵的插座