小编vor*_*aq7的帖子

我可以使用 Puppet 运行 shell 内置命令吗?

我想要~/.bashrc将是source每当改变其内容。我用这样的东西创建了一个 bashrc 类:

file { "/root/.bashrc":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 0644,
    source  => "puppet:///bashrc/root/.bashrc"
}

exec { "root_bashrc":
    command     => "source /root/.bashrc",
    subscribe   => File["/root/.bashrc"],
}
Run Code Online (Sandbox Code Playgroud)

但如您所知,它source是一个 shell 内置命令,因此在运行代理时出现以下错误:

# puppet agent --no-daemonize --verbose
notice: Starting Puppet client version 2.7.1
info: Caching catalog for svr051-4170
info: Applying configuration version '1311563901'
err: /Stage[main]/Bashrc/Exec[root_bashrc]/returns: change from notrun to 0 failed: Could not find command 'source'
notice: Finished catalog run …
Run Code Online (Sandbox Code Playgroud)

shell puppet command execution

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

什么以及为什么我的交换空间在 linux 下使用

在我的 linux 系统上,我从顶部获取这些统计信息:

Tasks: 155 total,   1 running, 153 sleeping,   0 stopped,   1 zombie
Cpu(s):  1.5%us,  0.3%sy,  0.0%ni, 97.4%id,  0.7%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8177180k total,  2025504k used,  6151676k free,    44176k buffers
Swap:  7999996k total,   495300k used,  7504696k free,   637612k cached
Run Code Online (Sandbox Code Playgroud)

它显示我的系统正在使用 495Mb 的交换。为什么会这样?6Gigs 的 ram 是免费的。如果我完全禁用交换,系统也可以工作。

任何解释数字真正显示的内容或谁在交换?

linux swap

5
推荐指数
3
解决办法
7543
查看次数

Pfsense mbuf 已满,该怎么办?

我今天注意到 MBUF 使用量已达到极限。显然我在 pfsense 下运行的网站也遇到了一些麻烦,我想知道仅这样做是否安全

sysctl kern.ipc.nmbclusters=65536

我不想重新启动服务器,通过 pfsense shell 重新启动服务器是否安全(或有用)?

2.0-RELEASE (amd64) 于 2011 年 9 月 13 日星期二 17:05:32 EDT 构建

State table size    35573/550000
MBUF Usage    25600/25600
CPU usage 2%
Memory usage 17% (2GB)
Swap 0%
CPU: Intel(R) Xeon(R) CPU E5450 @ 3.00GHz
Run Code Online (Sandbox Code Playgroud)

freebsd pfsense

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

iptables:只允许端口上的连接到“安全”主机

我有一台 centos 机器,并且希望只允许到某些远程机器的端口 587 的出站连接,并丢弃试图连接到所有其他主机的数据包。

如果他们要访问 gmail 的 SMTP 服务器(后面的所有 IP smtp.gmail.com),我只想允许访问端口 587 。有没有办法实现这个?

iptables

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

用户在不调整文件系统大小的情况下减少了 LVM 逻辑卷

我昨天收到一封电子邮件,说我们的一个用户试图为心跳/集群包腾出空间,该包需要自己的分区作为投票磁盘。为此,他尝试减小根分区的逻辑卷的大小,然后为此创建一个新的逻辑卷。但是,他忘记先调整文件系统的大小(或在命令中包含 -r 开关)。他还忘记通过从救援 CD 运行此过程来卸载根分区。系统现在拒绝引导到操作系统,并出现以下错误:

超级块或分区表可能已损坏!意外的不一致;手动运行 fsck。

系统将用户放入单用户模式。

是否有可能拯救文件系统,或者它是否被软管?它运行的ext3。

ext3 lvm

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

寻找备份/重新创建解决方案

我有 2 台运行不受支持的旧版 Linux 的关键服务器,目前没有针对它们的灾难计划。
我想为他们建立一个备份系统,并能够制定一个傻瓜式的灾难计划。

服务器不能停机,因此冻结它们以获取快照或复制是不可能的。我看了看厨师和傀儡,不知道这些值不值得一试。我想听听建议。

linux backup puppet chef

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

nginx 不会在文档根目录的子目录中提供 error_page

这是我的 nginx 配置的一个片段:

server {
    error_page 500 /errors/500.html;
}
Run Code Online (Sandbox Code Playgroud)

当我在我的应用程序中导致 500 时,Chrome 只显示其默认的 500 页面(Firefox 和 Safari 显示空白页面)而不是我的自定义错误页面。

我知道该文件存在,因为我可以访问http://server/errors/500.html并看到该页面。我还可以将文件移动到文档根目录并将配置更改为:

server {
    error_page 500 /500.html;
}
Run Code Online (Sandbox Code Playgroud)

并且 nginx 正确地提供页面,所以它似乎不是服务器上配置错误的其他东西。

我也试过:

server {
    error_page 500 $document_root/errors/500.html;
}
Run Code Online (Sandbox Code Playgroud)

和:

server {
    error_page 500 http://$http_host/errors/500.html;
}
Run Code Online (Sandbox Code Playgroud)

和:

server {
   error_page 500 /500.html;
   location = /500.html {
       root /path/to/errors/;
   }
}
Run Code Online (Sandbox Code Playgroud)

没有运气。

这是预期的行为吗?错误页面是否必须存在于文档根目录中,或者我是否遗漏了一些明显的内容?


更新 1:这也失败了:

server {
    error_page 500 /foo.html;
}
Run Code Online (Sandbox Code Playgroud)

何时foo.html确实存在于文档根目录中。似乎其他东西正在覆盖我的配置,但此块是唯一/etc/nginx/*引用该error_page指令的地方。

还有其他地方可以设置nginx配置吗?

nginx custom-errors

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

你如何发音 IIS?

我总是把它拼写成“Eye Eye Ess”,但我的老板总是称它为“Two Ess”,就像 II 是罗马数字一样。我知道它代表 Internet Information,所以它不是真正的数字,但另一方面,说“两个 Ess”要容易得多。

iis

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

在没有 libvirt/virsh 的情况下关闭 kvm-guest

我们在 ubuntu 10.4 上使用 kvm 作为虚拟化解决方案(我们已经编写了整个网络、子网划分、vms 的启动.....

有没有办法在不使用 libvirt/virsh 的情况下关闭 kvm-guest?基于 bash 或 python 的解决方案会很棒。

virtualization ubuntu kvm-virtualization

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

合并两个或多个压缩文件

我有 2 个需要合并为一个的 gz 文件——也就是说,我想将两个 .gz 文件合并为一个,这样当我提取合并的文件时,我会得到一个包含原始输入文件串联的文件。

time join <(zcat r_TR2_2012-05-28-08-10-00.gz) <(zcat r_TR1_2012-05-28-08-10-00.gz)
Run Code Online (Sandbox Code Playgroud)

上面的语句没有按预期工作。我正在使用 3 个命令来完成所需的工作。

gunzip r_TR2_2012-05-28-08-10-00.gz 
gunzip r_TR1_2012-05-28-08-10-00.gz 
tar -zcvf combined.tar.gz r_TR1_2012-05-28-08-10-00 r_TR2_2012-05-28-08-10-00 
Run Code Online (Sandbox Code Playgroud)

然后在提取文件时将文件连接在一起以生成我想要的输出。

有没有办法在 1 条语句中做到这一点?

tar gzip

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