我仍然看到人们sync; sync; sync; sleep 30; halt
在谈论关闭或重新启动 Linux 时建议使用咒语。
我从 Linux 开始就一直在运行,虽然这是 BSD 4.2/4.3 和 SunOS 4 天的推荐程序,但我不记得至少在过去的十年里我必须这样做,在此期间我可能经历了 Linux 的关闭/重启可能数千次。
我怀疑这是一个时代错误,因为内核无法卸载和同步根文件系统和其他关键文件系统,即使在单用户模式下(例如 /tmp),因此有必要明确告诉它刷新尽可能多的数据到磁盘。
这些天,还没有在内核源代码中找到相关代码(通过http://lxr.linux.no和 google挖掘),我怀疑内核足够聪明,甚至可以干净地卸载根文件系统,文件系统也足够聪明在正常shutdown
/ reboot
/期间卸载自身之前有效地执行同步(2)poweorff
。
在"sync; sync; sync"
其中的文件系统不会卸载干净(如物理磁盘故障)或系统处于这样的状态,只有直接强迫重新启动(8)将它弄出来的冷冻(如负载过只在极端的情况下有必要高以让它安排关闭命令)。
sync
在卸载可移动设备之前,我也从未执行过该程序,也从未遇到过问题。
另一个例子 - Xen 允许 DomUshutdown
从 Dom0发送命令,这被认为是“干净的关闭”,无需任何人先登录并输入魔法sync; sync; sync
。
我是对的还是我幸运地关闭了数千次系统?
我已经在 CentOS 5 上的特定时间设置了几个“at”作业。今天早上我没有在队列中看到这些命令(“atq”),正如预期的那样,但我也没有看到可以我检查负责执行它们的守护进程是否按时执行或有任何问题。不幸的是,我没有从脚本本身记录足够的信息。有任何想法吗?
我们使用石墨来跟踪磁盘使用历史。当可用空间低于一定数量的块时,我们的警报系统会查看来自石墨的数据以提醒我们。
我想获得更智能的警报 - 我真正想要的是关心的是“在我必须对可用空间做一些事情之前我还有多长时间?”,例如,如果趋势表明在 7 天内我将用完磁盘空间然后引发警告,如果不到 2 天,则引发错误。
Graphite 的标准仪表板界面对于衍生品和 Holt Winters 置信度带非常智能,但到目前为止我还没有找到将其转换为可操作指标的方法。我也可以用其他方式处理数字(只需从石墨中提取原始数字并运行脚本来执行此操作)。
一个复杂的问题是图形不平滑 - 文件被添加和删除,但随着时间的推移,总体趋势是磁盘空间使用量增加,因此可能需要查看局部最小值(如果查看“磁盘空闲”指标) ) 并在低谷之间绘制趋势。
有没有人做过这个?
我目前使用没有密码短语的服务器 SSL 证书,以允许 Apache 无人值守启动。
有客户要求我们更安全地保护 SSL 证书。我还不确定他们的目标是什么,但现在我猜他们不想要磁盘上不受保护的 SSL 证书。我想我无法避免在 Apache 的内存中清楚地知道它,但让我们假设这是可以接受的。
我想出了一个精心设计的系统,将密码短语保存在内部服务器(即不在前线 Web 服务器上)的进程内存中,并使用 Apache SSLPassPhraseDialog ( http ://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslpassphrasedialog)。内部服务器必须在启动时输入密码短语,我们将有多个这样的服务器负载平衡以实现高可用性。
我的问题是:
我们正在 16TB RAID 阵列上创建一个大型备份 ext3 分区,mke2fs 需要 2.5 小时才能完成。
我们可以使用任何已知的技巧来缩短这个时间吗?
目的是在灾难发生时缩短让我们重新站起来的时间,我们必须重新创建该文件系统。我看到了诸如 lazy_bg 和 uninit_groups 之类的选项,但它们似乎适用于 ext4 文件系统,这与我们无关。
我正在寻找一种方法来查看我们在一个位置的所有 AWS 帐户限制(例如,每个区域的最大存储桶数、最大 ELB 数等)。
我在http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html找到了该页面,但这仅列出了默认限制。在根据我们的要求提高了其中一些限制之后,它不会告诉我我们的限制。
aws ec2 describe-account-attributes
例如,我还发现了 ,但这仅给出了与 EC2 相关的限制。
我们正在努力解决一个常见问题,即试图为我们的开发人员提供一个 Oracle 11g 实例进行测试。我们的标准构建代理基于 Ubuntu 12.04,但 Oracle 仅支持基于 RedHat 的操作系统。
网上流传着一些关于在 Ubuntu 上安装 Oracle 的技巧,但它们似乎非常脆弱,而且是一个命中注定的问题。
我们希望避免为了支持 Oracle 而不得不在 RedHat(/CentOS) 之上支持整个构建服务器 Puppet 配置,所以我开始怀疑我们是否可以使用 Docker 来提供 Oracle 所需的类似 RedHat 的环境我们的标准 Ubuntu 系统的顶部。这个想法是 Oracle 将在自己的容器中运行,但构建代理的其余部分仍将在标准 Ubuntu 上运行,能够通过 TCP 与 Oracle 通信。
我知道 LXC 是什么以及它们与 KVM/VirtualBox 等成熟虚拟化之间的区别,但我想知道它是否仍然可能。
谢谢。
我想在每次启动服务之前执行一个脚本。
我知道我可以ExecStartPre
在服务定义文件内部使用,但我想知道是否可以在不编辑来自服务包的文件的情况下实现。
该脚本是一个简单的命令,完成后退出,它创建主服务使用的文件(它从安全存储中获取 TLS 证书和密钥)。
centos ×3
linux ×2
apache-2.2 ×1
certificate ×1
cron ×1
ext3 ×1
filesystems ×1
graphite ×1
lxc ×1
mkfs ×1
monitoring ×1
oracle ×1
passphrase ×1
redhat ×1
security ×1
ssl ×1
syslog ×1
systemd ×1
ubuntu ×1