重启 audit 服务, 恢复 audit.log 信息更新

audit 是一个很重要的日志服务, 它可以帮助我们查看各种异常情况. 比如有人尝试登录然后失败了什么, 你可以在此处看到它更多的介绍. 更有用的是, 我们可以通过分析 /var/log/audit/audit.log 日志, 查看被防火墙错误屏蔽的操作, 然后贴个 patch 让系统可以正常工作.

最近突然发现 audit.log 好一些日子不正常更新了, 查看停止时间, 貌似是某次某同志错误设置了系统权限的那会儿. 服务可能既被砍掉了权限, 又被停止了运行. 监测权限的日志被停止了权限, 简直囧囧的.

(more…)

利用 Cargo 发布 Rust 依赖库介绍

Rust 是 Apache 基金会开的一个新坑, 简单说就是一个函数式编程的现代语言. 速度期望是和 c++ 差不多.

一个语言的实用与否, 不仅仅需要考虑语言本身(当然, 一个写起来爽的语言比一个语法糟糕的语言可能要好一千倍, 但这并不是唯一判断条件), 一些好的工具链, 社区环境等都可以让语言本身更加充满希望--或者失望.

rust 使用的是 Cargo 作为编译环境. 这是你安装好 rust 后的默认选项.

很多时候, 许多代码可以被复用, 一个好的工程组织会给人带来许多方便. 目前看来, Cargo 就是一个非常不错的工具(当然, 有些时候还是有些让人不尽如人意的)

Cargo 之于 rust, 大致相当于 cmake + make 之于 c. 我们可以在工程根目录下准备一个 Cargo.toml 文件, 里面可以写上我们想要的配置信息. 然后利用 Cargo 工具可以自动下载依赖, 编译. 此外, 我们还可以利用它发布我们的依赖等等. 总之, 这是一个包办了许多事情的一个集成工具.

本文的主旨是介绍一下库的写法, 依赖的发布和使用. (more…)

GitLab的安装和升级, 一把辛酸泪

警告:

  • gitlab 提供了一键安装包, 这种从 source 编译的方法并不有趣, 每次升级和改配置都极其麻烦, 它只会浪费你现在以及预期的未来的生命, 要是打算用它做生产环境, 那绝对是你的不智
  • 在 gitlab 早期, 并没有那么好的条件, 因为历史原因才被迫这么做的. 本文作为历史存档, 仅作为参考, 主要目的是记录一段过去的血泪教训.

更新了下 gitlab. 留个 log. 安装可以按照说明文档 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md, 若是6.x升级到7.14, 可以使用这个文档: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/6.x-or-7.x-to-7.14.md , 若7.14升级到8.0, 则可以使用这个文档: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/7.14-to-8.0.md. 一步一步走下去, 介绍得非常好. 本文也毫无意愿去吧内容翻译一下. 只是介绍下错误的处理. (more…)

Some Time, Sometime 和 Sometimes

Some Time, Sometime 和 Sometimes 在语法上都是存在的, 不过在意义上各有不同.

Some Time 是形容词性, 它被用来表述"一定数量的时间", 经常暗示"很有一段时间".

He has been studying Aramaic for some time.

意味着这哥们研究亚拉姆语已经很有一段时间了。 (more…)

Gitlab服务端redis配置错误的一个解决

在gitlab配置完毕后,我们push一个repo,效果可能如下:

$ git push origin master:dev
enjoy code, enjoy life.
Total 0 (delta 0), reused 0 (delta 0)
remote: GitLab: An unexpected error occurred (redis-cli returned 1).
To git@xxx:root/my_project.git
 * [new branch]      master -> dev

这儿它提示得已经足够清楚,redis有问题.不过也再也找不到其它提示了. (more…)