我想要~/.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) 在我的 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 是免费的。如果我完全禁用交换,系统也可以工作。
任何解释数字真正显示的内容或谁在交换?
我今天注意到 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) 我有一台 centos 机器,并且希望只允许到某些远程机器的端口 587 的出站连接,并丢弃试图连接到所有其他主机的数据包。
如果他们要访问 gmail 的 SMTP 服务器(后面的所有 IP smtp.gmail.com),我只想允许访问端口 587 。有没有办法实现这个?
我昨天收到一封电子邮件,说我们的一个用户试图为心跳/集群包腾出空间,该包需要自己的分区作为投票磁盘。为此,他尝试减小根分区的逻辑卷的大小,然后为此创建一个新的逻辑卷。但是,他忘记先调整文件系统的大小(或在命令中包含 -r 开关)。他还忘记通过从救援 CD 运行此过程来卸载根分区。系统现在拒绝引导到操作系统,并出现以下错误:
超级块或分区表可能已损坏!意外的不一致;手动运行 fsck。
系统将用户放入单用户模式。
是否有可能拯救文件系统,或者它是否被软管?它运行的ext3。
我有 2 台运行不受支持的旧版 Linux 的关键服务器,目前没有针对它们的灾难计划。
我想为他们建立一个备份系统,并能够制定一个傻瓜式的灾难计划。
服务器不能停机,因此冻结它们以获取快照或复制是不可能的。我看了看厨师和傀儡,不知道这些值不值得一试。我想听听建议。
这是我的 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配置吗?
我总是把它拼写成“Eye Eye Ess”,但我的老板总是称它为“Two Ess”,就像 II 是罗马数字一样。我知道它代表 Internet Information,所以它不是真正的数字,但另一方面,说“两个 Ess”要容易得多。
我们在 ubuntu 10.4 上使用 kvm 作为虚拟化解决方案(我们已经编写了整个网络、子网划分、vms 的启动.....
有没有办法在不使用 libvirt/virsh 的情况下关闭 kvm-guest?基于 bash 或 python 的解决方案会很棒。
我有 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 条语句中做到这一点?