IT技术博客大学习 共学习 共进步
首页 / Linux.中国
IT 2018-07-05 13:23:13 / 累计浏览 2,560

UMStor Hadapter:大数据与对象存储的柳暗花明

这篇讲的是大数据存储里一个经典矛盾的解决方案。作者从武侠江湖的比喻切入,指出数据湖架构也分“计算存储融合”(以HDFS为代表)与“计算存储分离”(以S3A+Ceph对象存储为代表)两大派系。前者有数据本地性优势,但NameNode易成瓶颈且弹性差;后者扩展灵活,但所有请求必须经过RGW网关,多了一跳,影响性能且不支持追加上传。 文章的核心亮点在于提出了一条“柳暗花明”的路径。作者团队受NFS-Ganesha启发,利用Ceph提供的librgw函数库,绕过了RGW网关这一中间环节。据此开发的Hadapter插件,能让Hadoop客户端直接通过librados与OSD通信。这相当于在保留对象存储管理优势的同时,借鉴了HDFS直接交互的思路,在IO路径上少了一跳,理论上能获得更好的读写性能,并补齐了社区版S3A在追加上传上的短板。 摘要最后可以简要提及Hadapter的部署便利性(一个jar包)和其作为Hadoop存储插件的定位,让读者对这个方案的具体形态有个直观了解。整篇文章的脉络是从问题拆解到方案融合,对架构选型有切实参考价值。

IT 2018-07-05 13:13:56 / 累计浏览 2,020

如何在 Linux 中使用 find

这篇讲的是如何真正发挥 Linux 中 `find` 命令的威力。作者从最简单的 `find /` 命令会输出海量无用信息这一常见困境出发,手把手地演示了如何通过组合使用各种参数,让这个工具变得精准而高效。 文章从查找指定名称(`-name`)和大小写不敏感(`-iname`)的基础开始,迅速引入了使用 `-o` 进行逻辑或组合,以及用 `-type` 区分文件与目录。这些是让搜索结果从“杂乱”变得“可用”的关键一步。接着,文章展示了更高级的过滤条件:如何通过 `-mtime` 按修改时间(如过去一周)筛选,通过 `-size` 找出占用大量空间的大文件,通过 `-owner` 定位特定用户拥有的文件,甚至通过 `-perm` 查找权限可能设置不当的文件。 作者并没有停留在列举参数上,而是强调 `find` 的真正潜力在于将这些测试条件与布尔逻辑结合,并最终可以通过 `-exec` 或 `-delete` 对找到的文件直接执行操作。整篇文章从一个朴素的需求切入,层层递进地给出了解决方案,完整展现了如何将一个基础命令用成系统管理的利器。

IT 2018-07-05 10:15:29 / 累计浏览 2,120

使用 syslog-ng 可靠地记录物联网事件

面对日益增多的物联网设备,可靠地记录和监控其运行事件,是排查问题与保障安全的基础。这篇文章以开源日志守护程序 syslog-ng 为例,详解了如何构建一个高效、可移植的集中式日志方案。 作者从日志的基础概念讲起,重点剖析了 syslog-ng 的四大核心能力:从多样来源(如系统日志、文件、管道)收集信息;通过解析器、重写等功能处理日志;基于内容进行智能过滤与路由;最终将日志保存至文件或 Elasticsearch、Kafka 等大数据平台。文章特别强调了将非结构化日志转换为键值对格式的价值,这能极大提升后续分析的效率。 更值得关注的是 syslog-ng 在真实物联网场景中的广泛应用。文中提到,其最流行的版本(1.6)竟运行在超过 1 亿台亚马逊 Kindle 设备上,同时也被用于宝马电动汽车、开源路由器和工业测量设备中。对于资源受限或异构的嵌入式环境,syslog-ng 的高性能与多架构支持显得尤为实用。 总结来看,syslog-ng 通过其灵活的架构,将系统日志、应用数据乃至测量信息统一收集和处理,为物联网设备提供了从边缘到中心的可靠日志管道,有效支撑了监控、安全与数据分析的需求。

IT 2018-07-05 00:00:26 / 累计浏览 2,180

假装很忙的三个命令行工具

这篇文章从一个有趣的观察切入:电影里那些酷炫的黑客屏幕,在现实中往往只是“假装很忙”的道具。作者调侃地介绍了三个开源命令行工具,来满足这种独特的“表演需求”。 第一个是 Genact,它能模拟内核编译、数字货币挖矿或文件下载等场景,让你的终端看起来一直在“努力工作”,甚至还能显示类似《模拟城市》的加载进度条。第二个是 Hollywood,它更简单粗暴,直接在终端里随机分屏,并快速切换显示 htop、目录树等看起来很忙碌的内容。第三个是作者最常用的 Blessed-contrib,它本质是个构建终端仪表盘的 Node.js 库,能轻松生成带图表和地图的数据可视化界面,填充上虚拟数据,科幻感直接拉满。 文章最后也提醒,这类工具更像是极客的玩笑,如果公司文化真的以“忙碌程度”评判员工,那本身就是一个亟待解决的问题。作者还提到了著名网络扫描工具 Nmap 因频繁出现在好莱坞电影中,甚至专门建了个页面来展示这些“出镜”记录。

IT 2018-07-04 23:58:17 / 累计浏览 1,760

每个 Linux 新手都应该知道的 10 个命令

这篇讲的是,看似熟悉的互联网其实运行在 Linux 之上——从 Android 手机到超级计算机,90% 的网络服务器都依赖它。文章从这个事实出发,为那些想从桌面环境踏入命令行世界的用户,梳理了必须掌握的10个基础命令。 作者没有停留在概念层面,而是具体展示了每个命令的用途和细节。例如,`ls` 用来查看文件目录,`cd` 用于目录跳转(并解释了目录名含空格时需用反斜杠),`mv` 负责移动文件。文章还特别整理了一组能大幅提升效率的终端快捷键,比如用 `CTRL+K` 剪切、`ALT+B` 按词回退,并举例说明如何快速修正命令行中的拼写错误。 这些命令构成了与 Linux 系统交互的基础语法。掌握它们,你就能创建 (`mkdir`, `touch`)、查找 (`locate`)、移动 (`mv`) 乃至删除 (`rm`, `rmdir`) 文件与目录,并设置定时任务 (`at`)。作者将它们称为“简单却有用”,正是因为它们是理解更复杂系统操作的第一步。

IT 2018-07-04 23:41:26 / 累计浏览 2,340

10 条加速 Ubuntu Linux 的杀手级技巧

这篇讲的是如何让变慢的Ubuntu系统重新快起来。文章没有空谈理论,而是直接给出了10个实操性强的“杀手级技巧”,针对的是Ubuntu用久了难免出现的卡顿问题。 作者从系统变慢的常见原因切入,然后逐一拆解解决方案。这些技巧覆盖了从开机启动(缩短Grub等待、管理自启动应用)、软件安装(用preload预加载、用apt-fast加速下载),到运行时优化(控制过热、调整LibreOffice内存)等多个层面。比如,通过一个简单的`sleep`命令就能延迟非必需程序的启动,或者通过调整软件源来加速更新,这些都是立竿见影的小改动。 文章特别贴心地指出,这些方法不仅适用于Ubuntu,也适用于Linux Mint等基于Ubuntu的发行版。对于老旧硬件或追求流畅体验的用户,其中关于切换到Xfce或LXDE等轻量级桌面环境的建议,提供了进一步的优化思路。整篇文章就像一份针对系统“新陈代谢”的调理方案,通过一点一滴的设置累积,最终能换回一个更迅捷的工作环境。

IT 2018-07-04 10:43:05 / 累计浏览 2,420

用这样的 Vi 配置来保存和组织你的笔记

这篇讲的是开发者如何用自己最熟悉的工具链——Vim、Git 和 GitLab,来高效地管理个人笔记和知识库。作者从“用编码的工具来写笔记会更简单”这个直觉出发,对比了多种笔记方案(如纸质本、思维导图)后,发现维基(Wiki)模型在链接、搜索和长期保存上优势明显,但单独部署一个维基系统又过于繁琐。 最终,作者选择了核心组合:在本地使用 Vim 插件 Vimwiki 作为笔记编辑器,它能直接在终端创建和链接页面,体验与编写代码无异;同时,将笔记文件夹作为 Git 仓库,与私有 GitLab 的 Wiki 功能同步。这样一来,笔记就变成了可版本控制的普通 Markdown 文件,既能在 Vim 里快速编辑,也能通过 GitLab 在手机或网页端随时查看修改。 文章还分享了实用的配置细节,比如如何在 Vimrc 中设置两个独立的 Wiki 分别存放工作和私人笔记,以及如何用插件实现文件的自动提交与同步。对于日常沉浸于终端和 Git 工作流的开发者来说,这套方案让记录知识的过程与写代码一样无缝、自然。

IT 2018-07-04 10:05:16 / 累计浏览 2,720

密码学及公钥基础设施入门

这篇文章从互联网安全成为标配(如Chrome对HTTP标记“不安全”)但多数人仅止于工具使用的现状切入,旨在为读者厘清密码学与公钥基础设施(PKI)背后的核心概念。它并非一篇操作指南,而是着重讲解构成安全通信的三大支柱:**保密性**(防窥探)、**完整性**(防篡改)与**身份认证**(防伪装),并通过Alice与Eve的经典故事生动阐释了每个特性为何不可或缺。 文章系统梳理了加密体系的脉络。它对比了**对称加密**(如AES、ChaCha20,同一密钥加解密,速度高效)与**非对称加密**(如RSA,公私钥配对,计算开销大但便于密钥分发)的原理、优劣及典型应用场景,例如后者常用于在TLS中安全交换对称密钥。文中还强调了**随机性(信息熵)** 对于生成安全密钥的基础性作用,甚至提到了利用熔岩灯墙收集随机性的趣闻。最后,文章引出了实现完整性与身份认证的关键工具——**密码散列函数**,并解释了其单向性、抗碰撞性等核心要求。 作者的目的是帮助开发者超越“货物崇拜”式的盲目使用,真正理解Let's Encrypt等现代安全方案赖以运作的数学与逻辑根基,从而建立更扎实的安全认知。

IT 2018-07-03 14:24:46 / 累计浏览 1,500

如何在 Linux 中的特定时间运行命令

这篇讲的是,在Linux系统里如何为一条命令设定执行时限,时间一到就自动让它“收工”。文章的出发点很实际:作者用 `rsync` 传输大文件时,既不想干等20分钟,又不想手动中断进程。他发现系统里其实有现成的工具能轻松实现“定时关闭”。 文章核心介绍了两种解决方案。最常用的是 `timeout` 命令,它属于GNU coreutils包,几乎开箱即用。用法很简单,例如 `timeout 10s tail -f /var/log/pacman.log` 就能让 `tail` 命令只运行10秒。它还支持分钟(m)、小时(h)、天(d)等单位,并且可以通过 `-k` 参数设定一个超时的“宽限期”。 另一种是 `timelimit` 程序,功能比 `timeout` 更丰富,可以分别设置警告信号、终止信号及其时间点,为进程提供更优雅的退出过程。它需要在Debian或Arch等发行版中额外安装。 这两个工具对于那些可能长时间运行、甚至可能冻结系统的命令来说非常实用,能有效防止资源被无限占用。文章通过一个日常运维场景,清晰地展示了两种工具的用法和差异。

IT 2018-07-03 14:22:53 / 累计浏览 1,200

Linux 文件系统详解

这篇讲的是Linux文件系统,作者从1996年的亲身经历切入:当时他学会了安装软件,却对/etc、/usr这些“神秘目录”的含义一头雾水。文章的目的就是帮助新手快速搞清楚这套结构。 不同于纯理论讲解,作者推荐了一个非常具体的起点:在终端安装并运行`tree`命令,尤其是`tree -L 1 /`,能立刻直观展示从根目录开始的、清晰的一级目录树。接着,文章对/bin(用户基本工具)、/boot(启动文件,警告别乱动)、/etc(系统配置)、/home(用户个人文件)等核心目录逐一拆解,解释了它们的用途和命名由来。 文中还穿插了不少实用细节,比如现代发行版中/bin和/usr/bin的趋同关系,/tmp是少数无需root权限即可操作的目录,以及/srv等特定服务数据的存放位置。作者的口吻带着老技术人的风趣,比如调侃自己对新工具“不以为然”,但整体非常务实,旨在帮读者快速建立对Linux文件系统的结构化认知,避免当初自己踩过的坑。

IT 2018-06-28 12:04:43 / 累计浏览 1,680

Linux 中一种友好的 find 替代工具

这篇讲的是一个叫 `fd` 的 Linux 文件搜索工具,它是传统 `find` 命令的现代化替代。作者从日常使用 `find` 的痛点出发——语法复杂、输出单一——介绍了这个基于 Rust 编写的工具如何用更简洁的语法和智能设计来覆盖 80% 的搜索场景。 文章具体展示了 `fd` 几个关键的提升:默认就支持彩色输出和智能大小写匹配,搜索语法直观很多(比如直接 `fd services` 就能递归搜索)。它通过 `-t` 参数区分文件和目录,用 `-H` 包含隐藏文件,还能轻松指定搜索路径或进行全局搜索。这些对比让 `find` 用户能迅速感受到差异。 文章核心是“对比与上手”,通过大量命令行示例,清晰呈现了 `fd` 如何在保持足够功能的前提下,极大简化了文件查找工作。对于经常在终端操作的开发者,这是一个能直接提升效率的工具。

IT 2018-06-26 12:38:17 / 累计浏览 2,120

我正在运行的 Linux 是什么版本?

“我正在运行的 Linux 是什么版本?”——这个问题看似简单,却常常指向两个不同的答案:你究竟想知道内核的版本,还是整个操作系统的发行版?对于需要排查驱动问题或确定软件包管理方式的用户来说,这两者都至关重要。 这篇文章没有空谈概念,而是直接给出了实操路径。要找出内核版本,作者推荐了最简洁的命令 `uname -srm`,一行输出即可包含内核名称、版本号和硬件架构。对于发行版信息,检查 `/etc/os-release` 文件是最通用的方法。文章以 Fedora 为例,展示了该文件不仅包含名称与版本号(如 "Fedora 28"),还透露了更丰富的上下文,比如变体(Workstation Edition)。 更巧妙的一点是,作者指出了 `os-release` 文件中 `ID_LIKE` 字段的实际价值。比如 CentOS 的这个字段明确写着它像 RHEL,这为用户在寻找解决方案时提供了关键线索——你可以放心地参考 RHEL 的文档来处理 CentOS 上的问题。这对于在庞大 Linux 生态中导航的用户来说,是一个非常实用的技巧。

IT 2018-06-26 12:31:48 / 累计浏览 1,700

在 Linux 上复制和重命名文件

这篇讲的是 Linux 命令行里文件操作的进阶玩法。它跳出了大家最熟悉的 cp 和 mv,介绍了几个能显著提升效率的工具。 作者从基础的 cp/mv 命令切入,指出它们在处理批量文件时的局限性。接着展示了更高效的替代方案:用 tar 命令快速创建整个目录或符合模式的文件归档;用 for 循环脚本批量为文件添加备份后缀;以及利用 Shell 的花括号扩展,用一条 cp 命令完成长文件名的备份。 文章的核心亮点在重命名部分,详细演示了 rename 命令的威力。它通过灵活的 Perl 正则表达式,可以一次性完成批量操作,例如将所有大写字母转为小写、统一移除或添加文件扩展名,甚至替换文件名中的特定字符串。通过对比 mv 的单个操作与 rename 的批量处理,突显了后者在特定场景下的不可替代性。 总的来说,这篇文章不是泛泛而谈,而是通过具体、可立即上手的命令示例,展示了几种被低估的文件管理技巧。掌握这些方法,能让你在日常维护中处理大量文件时事半功倍。

IT 2018-06-26 12:28:00 / 累计浏览 1,360

如何在命令行中整理数据

数据审计中常遇到格式错误、乱码、控制字符等棘手问题,而许多人却执着于寻找昂贵的专用工具或编写复杂脚本。这篇文章作者结合自身兼职数据审计的经验,提出了一个返璞归真的解决方案:直接使用命令行工具链。 作者处理过十万至百万行、包含多达两百个字段的导出表格,发现混乱无处不在。他指出,人们往往陷入“数据悲伤”的五个阶段,最终才承认需要帮助,并误以为必须依赖特定软件。实际上,Bash shell本身就是一个强大的工具箱。grep、cut、awk这些经典的文本处理器,在应对脏数据时既可靠又高效。 文章用一个具体例子展示了威力:如何用一行组合命令(tail、cut、awk),在短短4秒内从超过112万条记录中精准找出某个字段的最长数据项,并封装成可重复使用的函数。作者强调,这种方法的安全优势尤为突出——所有操作都在数据库外部进行,使用的是导出后的纯文本副本,因此完全不影响原始数据库的结构与安全。 对于受过Unix训练的读者,这或许是一次怀旧;但对于更多人,它是一个实用提醒:在追求复杂方案前,不妨先“保持冷静,打开一个终端”。

IT 2017-12-24 20:00:05 / 累计浏览 2,060

60 TB 数据:Facebook 是如何大规模使用 Apache Spark 的

这篇讲的是Facebook如何将一个关键的大数据流水线,从古老的Hive迁移到现代的Apache Spark上。背景是,他们用于实时实体排名的特征准备流程,原本基于Hive,由数百个小作业组成,耗时长达三天,且极其难以监控和维护。为了追求更快的速度和更好的可管理性,他们选择将整个流水线整合成一个单独的Spark作业,直接处理高达60TB的压缩数据。 迁移过程并非一帆风顺。作者坦言,第一次甚至第十次尝试都未成功,因为要可靠地运行一个处理如此大规模shuffle数据的作业,挑战巨大。团队对Spark的可靠性进行了大量修补,例如提升节点频繁重启时的容错能力,修复了从PipedRDD获取失败到执行器内存溢出等一系列问题。这使得作业得以稳定运行。 在性能优化上,他们的努力同样深入。通过自定义的火焰图等分析工具定位瓶颈后,他们对Spark底层进行了关键修改:修复排序器的内存泄漏带来了30%的速度提升;优化Snappy压缩调用节省了10% CPU;减少不必要的重排文件打开操作最高提升了50%的性能。最终,这个迁移项目不仅让Facebook自身受益,所有改进也被回馈给了开源Apache Spark社区。

IT 2017-12-24 19:51:34 / 累计浏览 2,920

使用 Ubuntu Cleaner 为 Ubuntu/LinuxMint 释放空间

这篇文章讲的是如何用 Ubuntu Cleaner 快速释放 Ubuntu 及其衍生发行版(如 LinuxMint)的磁盘空间。对于 Linux 用户来说,系统长期使用后容易堆积缓存、旧内核和残留包,而手动清理过程繁琐又容易出错。 作者推荐了 Ubuntu Cleaner 这个工具,它其实源自经典的 Ubuntu Tweak 中的 Janitor 模块,后来由开发者独立维护并重新发布,算是让许多用户怀念的功能得以延续。这款工具能一键清理浏览器缓存、缩略图、APT 缓存、过期内核和无用包等“垃圾”,覆盖了大部分常见的空间占用源。 安装过程很简单,通过官方 PPA 源就能轻松搞定。使用起来也很直观:启动后勾选需要清理的项目,点击清理按钮即可。整个操作避免了手动执行复杂命令的风险,把原本耗时费力的系统维护变成了一次点击就能完成的事。 对于那些苦于系统空间不足,又不想折腾命令行的用户来说,这篇教程提供了一个高效、安全的解决方案。它让清理系统垃圾这件麻烦事变得轻松许多,尤其适合想要快速恢复磁盘空间的日常使用场景。

IT 2017-12-24 19:46:45 / 累计浏览 2,140

六大标志性的开源形象概览

这篇文章认为,强大的品牌形象对于开源项目至关重要,它能帮助项目与商业软件竞争,并让人记住和信任。作者从六个标志性的开源吉祥物/Logo出发,讲述了它们背后的故事和品牌塑造的思考。 比如Linux那只憨态可掬的企鹅Tux,灵感竟来自Linus Torvalds被企鹅咬了一口后的喜爱;Firefox Logo中的“火狐”实则是中国的小熊猫,其命名和形象经历过多次变更与专业设计;而GIMP那只名为Wilber的奇幻生物,其物种设定甚至引发了社区长达数十年的热烈讨论。 PostgreSQL的大象Slonik象征着“让人印象深刻”,VLC的橙色交通锥筒则充满了校园趣闻与法兰西风情,甚至会在圣诞节悄悄戴上红帽子。这些案例共同说明,一个设计得当的Logo或吉祥物,能将项目的理念与个性凝聚成符号,成为开源社区宝贵的视觉资产。 文末,作者也热情邀请读者分享自己心中最爱或最令人印象深刻的开源品牌。

IT 2017-10-15 10:03:55 / 累计浏览 2,640

如何快速实现一个基于 Nginx 网站的监控场景

这篇文章讲述了小明在一家电商创业公司,如何从零开始构建基于Nginx的服务监控体系,并最终转向一站式云产品的实践历程。 故事的起点是老板提出的明确需求:要能实时统计服务调用次数与返回码、实现阈值报警,并支持灵活的历史查询,同时要求系统具备良好的扩展性和成本控制。小明在对比了传统OLAP、搜索引擎和实时计算方案后,选择了自研实时计算架构,并详细设计了包含数据通道、计算引擎、存储和展示门户的完整链路。 然而,理想丰满,现实骨感。在长达两个月的开发过程中,小明遭遇了一系列典型痛点:多组件集成排查困难、Nginx日志清洗繁琐、为防数据重复计算而设计的存储幂等性问题、延迟数据如何合并、以及如何高效遍历所有服务进行报警检查等。这些挑战导致项目进度严重滞后。 转机来自一次与师兄的交流。小明了解到阿里云ARMS这款产品,它采用“实时计算+列式存储”架构,将日志采集、实时聚合、报警和可视化报表集成于一体。对于小明最核心的Nginx监控场景,ARMS提供了开箱即用的模板,只需在日志格式中加入如`$request_time`等字段即可快速接入。它不仅能直接提供监控大盘和报警功能,还开放了API,便于业务系统直接对接数据,从而将小明从繁琐的底层开发中解放出来。

IT 2017-10-15 09:55:48 / 累计浏览 2,060

OpenBSD 将在每次重启后都使用和之前不同的内核

OpenBSD 近期在测试快照中引入了一个有趣的内核安全特性:每次系统重启或升级后,都会生成一个内部结构完全不同的新内核。这个名为 KARL(内核地址随机化链接)的功能,通过随机重组内核内部目标文件的链接顺序,使得每个用户的内核二进制文件都是独特的。 与我们常听到的 ASLR(地址空间布局随机化)不同,KARL 并不改变内核加载到内存的地址,而是在构建阶段就改变了内核自身的内部结构。这样一来,即使攻击者掌握了某个内核的漏洞,也无法轻易利用已知的函数偏移信息去攻击另一台机器上的 OpenBSD 系统,因为它们的内核“指纹”截然不同。 文章指出,这是一个目前 OpenBSD 独有的功能。Linux 和 Windows 虽然广泛采用了 KASLR(将相同的内核加载到随机内存地址),但并未实现 KARL 这种在二进制层面的随机化。多位安全专家在文中评价这一设计思路新颖且具有价值,认为它可能为其他操作系统平台的内核防护带来新的启发。

IT 2017-10-15 09:36:42 / 累计浏览 3,440

如何将树莓派变成电子书服务器

这篇文章讲的是如何用一台树莓派3和开源软件Calibre,在本地网络中搭建一个私有的电子书服务器,特别适合网络条件不佳的环境共享阅读资源。 作者的起点很实际:学校或图书馆需要共享电子书,但可靠带宽并非总能获得。他选择的方案是利用Calibre 3.0(支持浏览器在线阅读)的强大功能,将其部署在低功耗的树莓派上。整个过程并不复杂,核心是在Raspbian系统上安装Calibre,然后配置其内置的内容服务器。 文中展示了从下载系统镜像、通过终端命令安装Calibre,到搜索并添加免费电子书(如从古腾堡计划下载马克·吐温的作品)的具体步骤。关键操作包括启动服务器、用`ifconfig`获取树莓派的IP地址,最后通过同一局域网内任何设备的浏览器访问`IP:8080`端口即可连接。 作者最终在iPhone、Linux和Mac电脑上都测试成功,验证了这个方案的可行性。它把一台廉价的微型电脑变成了一个随时可用的数字图书馆枢纽,对于教育和小团队知识共享场景是个不错的思路。