6月 12

Linux如何准确获取登录用户名

在文章 登录时显示服务器信息 中,有这样一个需求,/etc/profile.d 中的一个脚本,只在用户登录时执行一次,用户使用 sudo 或者 su 切换到其他用户时不执行。所以需要判断用户是否有变化。文章给出的方案如以下代码。 即判断 who am i 和 who 的结果是否一致,不一致则认为切换过用户,不执行 cat /etc/log … Continue reading

6月 11

使用Zabbix采集服务器基础信息

CMDB 建设中一个比较重要的方面是保证数据的及时更新以及准确性,靠人工肯定是很难做到的,必须通过技术手段用自动化的方式去做。本文记录一种通过 Zabbix inventory 来审计和更新 iTop CMDB 中服务器基础信息的方案。 概述 大致流程如下: 服务器基础信息的采集,通过 Zabbix 的自定义 Key 功能来实现。 服务器 … Continue reading

6月 10

登录时显示服务器信息

/etc/motd 里可以设置登录 Linux 服务器时显示的信息,但是只能显示静态信息,如果需要动态信息,可以通过 /etc/profile.d/ 下的脚本来实现。本文记录一种通过脚本调用 CMDB 接口获取服务器的业务,机房,状态以及联系人信息,在登录时显示的方法。效果如下图。 CMDB接口规格 为简化 Shell 脚本的调用,CMD … Continue reading

6月 09

薅微信读书的羊毛

直奔主题,通过 edu.cn 邮箱,可以领取 30 天付费无限卡。领取路径在 我->账户->赠全国高效师生无限卡。如果学校不在毕业后收回 edu.cn 邮箱,那么毕业后也可以领。 领完之后,作为付费用户,翻一翻可以直接翻 6 次,有机会获取赠币,无限卡或者赠书。另外,7 月 10 号之前买书还可以享受付费用户鼓励金计划。 最近 … Continue reading

6月 08

苏州印象

第一次到苏州,是 1 月份,在察院场地铁站附近住了 4 天。宾馆的窗外,是江南风格的瓦房,远处是高楼。 察院场旁边不远处就是拙政园和平江路,但是第一天去了工业园区逛街,在金鸡湖东边出了地铁,整洁宽敞的街道,现代化的高楼大厦,和姑苏的老房子形成鲜明对比。走到月光码头,人很少,加上天空阴沉沉的,给人冷清的感觉。 随后去了附近几个商场,可能是工 … Continue reading

6月 07

【图形描述语言】draft

本系列介绍 文本转图片 工具,图形描述语言将图片描述为代码或者文本,有利于版本管理,很适合嵌入 LaTeX 或 Markdown 文档。用于网站时,还可以减轻图片存储压力,因为图片可以根据代码在使用时生成。本文是该系列第九篇,介绍 draft。 概述 A commandline tool that generate H … Continue reading

6月 06

Kubernetes节点维护脚本

Kubernetes Node 节点上,可能有一些基于 docker 命令的维护需求,可以通过脚本调用 docker inspect 等获取到更易读的信息。 列出所有业务容器 docker ps 列出的容器名称很长,不容易看出是哪个业务。通过 docker inspect,将获取到的容器输出为以下格式: 查看业务容器日志 查看容器TCP状 … Continue reading

6月 05

程序员词典

很多年前去美团面试,内容基本忘完,但有一个情节至今仍然历历在目,我把 Ruby 念成了 /ˈrʌːbi/,面试官接过话来,发音是 /ˈruːbi/,顿觉脸上发热,太丢人了。 如今,我已经不会念错 Ruby 了,但是 IT 行业还有很多容易读错的单词,也有很多新造的轮子可能会用到生造词,因此,我决定做一个项目,搜集这样的单词,标注音标,并提 … Continue reading

6月 04

DokuWiki容器化实践

DokuWiki 使用 Docker 做容器化,主要解决以下问题。 插件和模板的安装 插件和模板的默认配置和配置文件的传递 持久化存储 插件模板安装 使用容器之后就不能在使用插件管理器来安装插件了,否则容器重启后插件将丢失。需要将插件代码打包到镜像里。基本思路是使用多段构建,在 builder 过程中下载并解压插件和模板代码,然后复制到运 … Continue reading