小编Ste*_*ski的帖子

替代 Daemontools (djbtools) 来监督 unix 进程?

我使用Daemontools提供了一种简单可靠的方法来监督我服务器上的 Unix 服务。它运作良好,但它需要不同的思维方式(DJB 方式),一些常见的抱怨是:

  • 基于TAI64N的时间戳
  • 不在 /etc/init.d(或 (/usr/local)/etc/rc.d)下存储脚本
  • 并不总是适用于像 apachectl 这样的脚本。有些脚本需要重写。

我记得大约两年前,一些类似的“主管/看门狗”守护进程正在开发中,但有些仍然有点粗糙。

如果你已经从 Daemontools 切换到其他东西,你选择了什么并且它对你来说效果很好?默认情况下,RedHat 或 Ubuntu 是否带有任何进程管理器实用程序?

unix daemontools

26
推荐指数
3
解决办法
2万
查看次数

IPMI 边带如何与主机共享以太网端口?

我们有许多具有 IPMI/BMC 功能的 Supermicro 机器。其中一些机器使用板载 BMC,而其他机器使用附加卡

我们正在考虑使用边带,因为它降低了成本和布线要求。然而,一些边带细节不太合理。

边带需要一根以太网电缆,该电缆插入主板上的以太网端口。此网络端口随后在 IPMI 系统和操作系统之间共享。从我在Supermicro 手册中读到的内容中,“使用与 LAN1 相同的 MAC 地址用于 SIMSO IPMI 卡”。但是,IPMI 必须具有与操作系统不同的 IP 地址。

怎么可能有两个设备(操作系统和 IPMI)可以在同一个物理网络端口上侦听和传输?当数据包到达接口时,系统如何确定此数据包是用于操作系统还是用于 IPMI 系统?

这些数据包是否完全由 CPU 处理,使用 CPU 中断?操作系统可以查看到IPMI接口的数据包吗?

ipmi supermicro

25
推荐指数
2
解决办法
3万
查看次数

可以使用 OpenSSL 调试与 MySQL 服务器的 SSL 连接吗?

我希望我的网络服务器通过 SSL 连接与 MySQL 数据库服务器通话。Web 服务器运行 CentOS5,数据库服务器运行 FreeBSD。证书由中间 CA DigiCert 提供。

MySQL 应该使用 ssl,根据my.cnf

# The MySQL server
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
ssl
ssl-capath = /opt/mysql/pki/CA
ssl-cert = /opt/mysql/pki/server-cert.pem
ssl-key = /opt/mysql/pki/server-key.pem
Run Code Online (Sandbox Code Playgroud)

当我启动 MySQL 时,守护进程启动时没有错误。这表明证书文件都是可读的。

但是当我尝试从网络服务器连接到数据库服务器时,出现错误:

[root@webserver ~]# mysql -h mysql.example.org -u user -p
ERROR 2026 (HY000): SSL connection error
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用 openssl 进一步调试:

[root@webserver ~]# openssl s_client -connect mysql.example.org:3306 0>/dev/null
CONNECTED(00000003)
15706:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:588:
Run Code Online (Sandbox Code Playgroud)

这是测试与 MySQL 数据库服务器的 SSL 连接的有效方法吗?该SSL23_GET_SERVER_HELLO:unknown protocol消息很奇怪,因为这通常是您在用于非 SSL 流量的端口上使用 SSL …

mysql ssl

24
推荐指数
2
解决办法
1万
查看次数

自动检查 CentOS 或 Scientific Linux 上的安全更新?

我们的机器运行基于 RedHat 的发行版,例如 CentOS 或 Scientific Linux。如果安装的软件包存在任何已知漏洞,我们希望系统自动通知我们。FreeBSD 使用ports-mgmt/portaudit端口来做到这一点。

RedHat 提供yum-plugin-security,它可以通过 Bugzilla ID、CVE ID 或建议 ID检查漏洞。此外,Fedora 最近开始支持yum-plugin-security。我相信这是在 Fedora 16 中添加的。

截至 2011 年底, Scientific Linux 6 不支持 yum-plugin-security。它确实附带/etc/cron.daily/yum-autoupdate,它每天更新 RPM。但是,我认为这不仅仅处理安全更新。

CentOS 不支持yum-plugin-security.

我监控 CentOS 和 Scientific Linux 邮件列表的更新,但这很乏味,我想要一些可以自动化的东西。

对于我们这些维护 CentOS 和 SL 系统的人来说,有没有什么工具可以:

  1. 自动(Progamatically,通过 cron)通知我们我当前的 RPM 是否存在已知漏洞。
  2. 或者,自动安装解决安全漏洞所需的最低升级,这可能yum update-minimal --security在命令行上?

我已经考虑使用yum-plugin-changelog打印出每个包的变更日志,然后解析某些字符串的输出。是否有任何工具可以做到这一点?

security redhat centos yum scientific-linux

22
推荐指数
3
解决办法
3万
查看次数

在 bash 脚本中实现试运行

如何在 bash 脚本中实现试运行选项?

我可以考虑将每个命令都包含在 if 中并回显该命令,而不是在脚本以试运行方式运行时运行它。

另一种方法是定义一个函数,然后通过该函数传递每个命令调用。

就像是:

function _run () {
    if [[ "$DRY_RUN" ]]; then
        echo $@
    else
        $@
    fi
}

`_run mv /tmp/file /tmp/file2`

`DRY_RUN=true _run mv /tmp/file /tmp/file2`
Run Code Online (Sandbox Code Playgroud)

这是错误的,有更好的方法吗?

bash

20
推荐指数
2
解决办法
2万
查看次数

您如何在大型环境中管理和部署 FreeBSD 的端口?

我很好奇人们如何在他们的环境中部署 FreeBSD 的端口。我假设大多数使用 FreeBSD 的人确实在使用 Ports(并且经常使用 portupgrade 来升级二进制文件)。但是,我对您如何进行此设置感兴趣,因为我对最近版本的工作方式不满意。我现在运行的是 FreeBSD 9.0 并且遇到了问题。

我已经设置如下:

  • /usr/ports 从一个节点通过 NFS 共享(每晚使用“portsnap fetch update”)。
  • 每个节点以读写方式挂载 /usr/ports
  • 我在所有节点上的 /etc/make.conf 中设置了“WRKDIRPREFIX=/usr/tmp”
  • 我已将 Portsnap 配置为使用本地索引,方法是将以下内容添加到 /usr/local/etc/pkgtools.conf:

ENV['LOCALINDICES'] ||= '/var/db'

ENV['PORTS_INDEX'] ||= ENV['LOCALINDICES'] + '/INDEX.local'

我可以成功运行portupgrade -p package以构建包,然后portupgrade -P package在其他节点上安装二进制文件。

然而,有时我会收到以下问题: /var/db/INDEX.local:23265:dbm_store failed

我想不出我可以对系统做任何其他优化,因为索引现在驻留在本地,唯一真正导出的是端口树,并且没有从节点写入任何内容。

freebsd

19
推荐指数
2
解决办法
7088
查看次数

如何通过终端实时查看日志?

这是一个基本问题 - 在电影“社交网络”中,有几个场景是年轻的 Facebook 员工正在实时观看 PHP/Apache 服务器登录他们的 TERMINAL。

我熟悉如何在 RUBY/RoR 环境中执行此操作 - 但是使用标准 LAMP Apache/PHP 环境,如何实时主动监控服务器的操作?我猜在终端中有一种简单的方法可以做到这一点。

php terminal logging lamp apache-2.2

17
推荐指数
4
解决办法
5万
查看次数

/etc/hosts 是否应该包含像“127.0.0.1 localhost myhost.example.org myhost”这样的条目?

在查看各种 Linux 和 FreeBSD 系统时,我注意到在某些系统上/etc/hosts包含主机公共主机名的条目,但在其他系统上没有。

这里的最佳做法是什么?我的 /etc/hosts 文件是否应该包含主机 FQDN(例如 myhost.example.org)和短主机名(例如 myhost)的条目?FQDN 的记录应该指向本地主机还是应该指向盒子的外部 IP?

例如,许多 RHEL/EL 机器上的默认配置不会将公共主机名放入/etc/hosts

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #
Run Code Online (Sandbox Code Playgroud)

另一个变体是主机的短主机名和 FQDN 也指向 127.0.0.1。有人告诉我,这是一种较旧的做法,现在不受欢迎,但很多管理员仍然这样做。

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 myhost myhost.example.org
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #    
Run Code Online (Sandbox Code Playgroud)

第三种变体是主机的 FQDN 和短主机名被赋予主机的外部 IP 地址。这第三个变体对我来说似乎是最佳的,因为它减少了对 DNS 服务器的查找。

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
74.125.239.xxx …
Run Code Online (Sandbox Code Playgroud)

linux linux-networking

17
推荐指数
1
解决办法
2万
查看次数

使用 LDAP 进行 MySQL 身份验证?

我们为我们的用户运行了几十个不同的 MySQL 服务器。这些使用 MySQL 的免费/开源版本,而不是商业版本。在这些服务器上管理帐户密码很痛苦。

是否有任何插件可以让我们使用 LDAP 来帮助管理 MySQL 权限?至少,我们希望从 LDAP 服务器获取一些用户名和密码。

我们使用的是 MySQL 5.1 和 5.5。如果需要实现此功能,我们可能愿意升级到 MySQL 5.6。

我们希望任何工具都基于 CLI,不需要 GUI 或 Web 界面。

mysql ldap authentication

15
推荐指数
4
解决办法
3万
查看次数

系统上是否有所有用户的全局 .bash_profile?

所以我偶然发现了svn color并认为它是我们所有开发人员都会喜欢的有用的东西。read me for this 说将一些代码放入您的~/.bash_profile. 是否有一些全局.bash_profile我可以添加这个?也许另一种方式?

bash svn

15
推荐指数
2
解决办法
4万
查看次数