小编Ham*_*ner的帖子

有什么有用的东西可以添加到一个人的 .bashrc 中?

有什么是你不能没有的,会让我的生活变得更轻松吗?以下是我使用的一些(“磁盘空间”和“文件夹”特别方便)。

# some more ls aliases
alias ll='ls -alh'
alias la='ls -A'
alias l='ls -CFlh'
alias woo='fortune'
alias lsd="ls -alF | grep /$"

# This is GOLD for finding out what is taking so much space on your drives!
alias diskspace="du -S | sort -n -r |more"

# Command line mplayer movie watching for the win.
alias mp="mplayer -fs"

# Show me the size (sorted) of only the folders in this directory
alias folders="find . -maxdepth 1 -type d -print …
Run Code Online (Sandbox Code Playgroud)

linux bash command-line-interface dotfiles bashrc

141
推荐指数
16
解决办法
14万
查看次数

如何让Apache2重定向到子目录

我在 Debian etch 上运行 apache2,有多个虚拟主机。

我想重定向,以便http://git.example.com转到http://git.example.com/git/

应该很简单,但谷歌并没有完全削减它。我已经尝试了重定向和重写的东西,但它们似乎并没有做我想做的......

.htaccess redirect apache-2.2

73
推荐指数
1
解决办法
16万
查看次数

分期的重点是什么?

我以为我已经解决了这个问题,但在阅读了持续交付(优秀的书)之后,我有点困惑。他们谈论拥有服务器:

  • 发展
  • 各种形式的自动化测试
  • 用户验收测试 (UAT) - 即与客户坐下来向他们演示,并让他们进行探索性测试。内部测试人员也可以使用此设置进行探索性测试。
  • 分期
  • 生产。

我一直认为登台提供 UAT 功能,但他们似乎将登台作为一个单独的级别。那么在该方案中,临时服务器将提供什么功能?

deployment testing release-management

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

如何检查 yum update 上次运行的时间

有没有一种规范的方法来找出yum update系统上次运行的时间?

我们的设置是我们有运行自动更新的暂存服务器,如果它们不会发生故障,我们将大约每月手动更新一次我们的生产服务器(关键更新除外)。(我说手动,理想情况下我想手动触发所有更新,但这是另一个问题)。

但是你会很忙,任务会延误等等。所以我想设置一个 nagios 支票,如果我们离开它太久就会开始打扰我们。

搜索网络并没有让我走得很远。浏览系统,到目前为止我发现的最好的东西是这样的:

grep Updated /var/log/yum.log | tail -1 | cut -d' ' -f 1-2
Run Code Online (Sandbox Code Playgroud)

这给了我类似的东西Mar 12,然后我可以将其转换为日期。关于日期是今年还是去年有一些小问题/var/log/yum.log.1,如果在 logrotate 后立即检查,我还需要检查。但这只是脚本细节。

这当然可以被单个包的更新而不是一般更新“愚弄”。

那么有没有更规范的方式来查看何时yum update运行?

编辑:我现在已经编写了一个 Nagios NRPE 插件,它使用了我在问题中提出的想法。你可以从https://github.com/aptivate/check_yum_last_update获取它

package-management nagios yum update

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

管理大量 CentOS 服务器的软件包更新的良好做法

作为我工作的一部分,我管理几十台 CentOS 5 服务器,使用 puppet 进行主要设置。我们大约有一半的服务器具有用于托管各种 django 站点的标准化设置,而其余的则是应用程序的大杂烩。

我正在逐步整理我们的托管实践,现在我已经开始研究如何在操作系统级别管理安全更新。我担心只是有一个 cron 工作做一个,yum -y update但也不希望必须及时检查每个服务器并检查每个有可用更新的包,因为这需要一段时间。

所以我想知道是否有任何好的捷径或工作实践可以最大限度地减少所涉及的风险最大限度地减少我需要花费的时间。或者换句话说,是否有任何工具或实践可以使大量工作自动化,同时仍能提供控制权。

到目前为止我决定的步骤:

  • 禁用所有第三方存储库并设置我们自己的存储库,以便我可以控制通过那里进行的更新。
  • 我们有用于(大部分)生产服务器的临时服务器,我可以在其中进行测试(但多少测试才足够测试?)

另请注意,我已经查看了yum 安全插件,但它在 CentOS 上不起作用

那么,您如何管理大量运行异构应用程序阵列的 CentOS 服务器的更新?

centos update automatic-updates

13
推荐指数
1
解决办法
5182
查看次数

跨地域不同服务器的 MySQL 复制

我的组织一直在研究如何在地理上分布我们的服务器,同时保持备份非常最新,并在理想情况下分散负载。

我首先想到的是 MySQL 上的 Rails。写入速率不太高(文章/评论每分钟不到 1 条,尽管有些有大媒体附件)。

所以,

  • MySQL 复制在广域网中运行良好吗?
  • 连接(或从服务器)断开是否意味着需要手动干预(一旦两台服务器可以再次相互通信)或者恢复是自动的?
  • 如果主人消失了,从奴隶变成主人需要什么?是否有标准脚本/工具来帮助管理?
  • 任何其他问题等?

mysql mysql-replication ruby-on-rails

11
推荐指数
1
解决办法
2227
查看次数

“yum clean”挂起 - 接下来要尝试什么?

我运行了许多 CentOS 服务器。我最近偶尔会这样做,yum update但这在少数服务器上失败了。在大多数情况下,我已经能够通过以下方式前进:

# yum clean all
# rm -f /var/lib/rpm/__db*
# rpm --rebuilddb
# yum update
Run Code Online (Sandbox Code Playgroud)

但是在一台服务器上,yum clean命令挂起。我试过运行:

# yum -v --noplugins clean all
Run Code Online (Sandbox Code Playgroud)

但我根本没有输出。百胜只是挂起,如果我让它在那里坐几个小时,不使用任何 CPU,只是停止。正在做

# strace -f yum -v --noplugins clean all
Run Code Online (Sandbox Code Playgroud)

产生相当多的输出,但随后停止:

...
stat64("/var/lib/rpm/__db.003", {st_mode=S_IFREG|0644, st_size=450560, ...}) = 0
open("/var/lib/rpm/__db.003", O_RDWR|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
mmap2(NULL, 450560, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0xb6b34000
close(4)                                = 0
stat64("/var/lib/rpm/Packages", {st_mode=S_IFREG|0644, st_size=14938112, ...}) = 0
open("/var/lib/rpm/Packages", O_RDONLY|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, …
Run Code Online (Sandbox Code Playgroud)

linux yum strace

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

OpenVPN + iptables / NAT 路由

我正在尝试设置一个 OpenVPN VPN,它将通过 OpenVPN 服务器将一些(但不是全部)流量从客户端传输到互联网。

我的 OpenVPN 服务器在 eth0 上有一个公共 IP,并且正在使用 tap0 创建本地网络 192.168.2.x。我有一个从本地 IP 192.168.1.101 连接并获取 VPN IP 192.168.2.3 的客户端。

在服务器上,我运行:

iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

在客户端,默认设置仍然是通过 192.168.1.1 进行路由。为了将它指向 HTTP 的 192.168.2.1,我跑了

ip rule add fwmark 0x50 table 200
ip route add table 200 default via 192.168.2.1
iptables -t mangle -A OUTPUT -j MARK -p tcp --dport 80 --set-mark …
Run Code Online (Sandbox Code Playgroud)

linux iptables openvpn

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

哪些 SNMP 变量可以诊断/表征 wifi 拥塞?

我正在准备教室 wifi 系统的负载测试。学生们在课程开始时都打开他们的笔记本电脑,这会启动网络浏览器,然后他们开始上课——这涉及下载基于 Flash 的课程(从学校内的服务器),通常下载半到 2 MB。

在某些情况下,加载时间会延长至 5 或 10 分钟。所以我想监控系统的所有部分,自信地说出瓶颈在哪里,以及有多少客户端可以合理地使用单个 wifi 接入点。所以我们计划对多达 50 个客户端运行测试,看看会发生什么(我知道大多数人推荐每个接入点 20-25 个客户端,但客户端想要测试这个 - 我想要获得好的数据来显示客户端不管怎样)。

我已经知道如何监控服务器。wifi接入点支持SNMP,并且似乎提供了相当多的变量,但我不想费力费力。

所以问题是,哪些与 wifi 相关的变量是要监控的关键变量,以表征系统何时过载、客户端正在等待、发生冲突等?

我很高兴被告知应该有什么的通用名称并自己搜索文件,但是如果您想/需要查看详细信息,那么我们正在使用的接入点是Ubiquity Nanostation 2。Ubiquity 产品的 MIB 文件从其 SNMP 页面底部链接。虽然我还发现它们似乎至少支持Mikrotik MIB 的一部分。

wifi snmp oid mib

5
推荐指数
1
解决办法
3854
查看次数

为什么签名的 deb 包在复制到我的私人 deb 存储库时说它们没有经过身份验证?

快速版

我已经建立了一个私有 deb 存储库并将一些签名的 deb 包复制到其中。我已经在本地安装了签名密钥。但是,当我尝试从 repo 安装时,我收到此警告:

WARNING: The following packages cannot be authenticated!
Run Code Online (Sandbox Code Playgroud)

手动安装时,我可以按,y但我想使用 puppet 自动安装这些包,但失败了。

所以有什么问题?我是否需要使用我控制的密钥退出软件包?有没有更好的方法来确保我安装了特定版本的 puppet?

更多细节

我从puppet debian 存储库中获得了软件包- http://apt.puppetlabs.com/我只是从(对于 lucid)这个目录中复制了软件包

然后使用脚本更新存储库,该脚本为每个存储库运行这些命令:

cd /var/www/html/apt/ubuntu/lucid
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
dpkg-scansources sources /dev/null | gzip -9c > sources/Sources.gz
Run Code Online (Sandbox Code Playgroud)

我已经在客户端上安装了签名密钥。

$ sudo apt-key list
/etc/apt/trusted.gpg
--------------------
...
pub   4096R/4BD6EC30 2010-07-10 [expires: 2016-07-08]
uid                  Puppet Labs Release Key (Puppet Labs Release Key) <info@puppetlabs.com>
...
Run Code Online (Sandbox Code Playgroud)

这样做的理由是我希望所有的 puppet 客户端都是相同的版本。因此,所有机器都应该使用以下 pin …

puppet repository deb apt

5
推荐指数
1
解决办法
1071
查看次数

名称冲突时如何使本地 /etc/group 优先于 LDAP?

我们有一个有效的 LDAP 设置。但是,由于本地文件和 LDAP 中都存在一些用户名和组名,我们最近遇到了一个问题。具体来说,apache 用户和组都存在于:

  • /etc/passwd/etc/group
  • LDAP 作为用户和组

在最近的 yum 更新(CentOS 5)之后,进程的组 ID 似乎已从/etc/groupLDAP 中的值更改为值(而用户 ID 仍然是 中的 ID /etc/passwd)。由于 httpd 需要的一些文件由用户 root 拥有,组 apache (from /etc/group) 但不是全局可读的,这导致了问题。

请注意,我们已经nss_initgroups_ignoreusers apache,.../etc/ldap.conf和中都有/etc/openldap/ldap.conf。此外,在/etc/nsswitch.conf我们有

passwd:     files ldap
group:     files ldap
shadow:     files ldap
Run Code Online (Sandbox Code Playgroud)

和其余的正常点点滴滴。

因此,如果 LDAP 和本地文件中都存在名称,是否有办法确保本地文件中的 ID 优先于 LDAP 中的 ID?

openldap ldap centos

4
推荐指数
1
解决办法
2308
查看次数

使用 Postfix 的邮件服务器

我目前已经在 Amazon EC2 服务器上设置了我的 Web 应用程序。众所周知,从 EC2 发送电子邮件存在问题。作为一种廉价且持久的解决方案,而不是使用“authsmtp”,是否可以租用服务器并将其用作邮件服务器?我目前正在寻找便宜的主机,它可以让我获得 root 访问权限,以便可以将其配置并用作中继主机。我目前使用 Postfix 作为 MTA。有没有人以前实现过这一点?我很好奇这个解决方案的可行性。我想常见的要求是: 1:未列入黑名单的专用 IP。2:打开中继(仅对我的服务器开放)标题配置的任何提示,以防止邮件进入垃圾邮件文件夹。这就像完全克隆 authsmtp 供个人使用。对其他邮件服务器软件而不是 Postfix 有什么建议吗?另一个问题是此服务器的反向 DNS。如果服务器用作中继主机,是否应该存在 PTR 条目?

email postfix amazon-ec2

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