我有一个在虚拟框中创建的 CentOS 6.7 最小发行版。作为事后的想法,我在 virtualbox 中添加了一个辅助网络接口,所以我有一个 NAT 接口和一个仅主机本地网络。当我登录到我的虚拟机并运行时:
ip link show
Run Code Online (Sandbox Code Playgroud)
将 eth0 显示为 UP,将 eth1 显示为 DOWN。当我尝试:
ifup eth1
Run Code Online (Sandbox Code Playgroud)
我没有找到 eth1 的配置。当我查看 /etc/sysconfig/network-scripts 时,我看到一个 icfg-eth0 文件,但没有 icfg-eth1 文件。
我有几个问题:
我正在寻找一种方法,让 monit 仅在特定进程出现故障时发出警报。例如:
check process apache
with pidfile /var/run/httpd.pid
group www
start program = "/usr/sbin/apachectl start"
stop program = "/usr/sbin/apachectl stop"
alert operations@example.com with reminder 5
Run Code Online (Sandbox Code Playgroud)
使用该配置,apache 将随着进程消失而重新启动。而不是发生这种情况,我想保持低调,直到有人可以手动干预。
对于那些好奇为什么的人:
我们的生产环境使用 monit 来控制应用程序。我们的非生产环境没有。这导致了一个问题,因为我们的开发人员更改了特定应用程序的启动方法。在它进入生产环境之前,它一直通过我们的非生产环境,monit 最终导致应用程序关闭,因为它没有在预生产中被捕获。
我想在非生产环境中设置 monit,这样我们就可以捕捉到这样的故障,但由于它不是关键任务,我们不需要自动重启服务。
我有一个 SFTP 服务器,客户端不断上传大文件。我想定期将所有完整(完全上传)的文件复制到另一台机器上进行处理。我不想复制正在积极写入的文件。有没有办法做到这一点?我目前正在使用 rsync,但我愿意切换到其他东西。
我正在为我操作的一些 Cassandra 集群创建一些脚本。其中一些脚本需要属于集群一部分的节点列表。
nodetool status
将打印节点列表及其当前状态,但它打印出的信息比我需要的要多。例如:
$ nodetool status mykeyspace
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 10.11.12.13 47.66 KB 1 33.3% aaa1b7c1-6049-4a08-ad3e-3697a0e30e10 rack1
UN 10.11.12.14 47.67 KB 1 33.3% 1848c369-4306-4874-afdf-5c1e95b8732e rack1
UN 10.11.12.15 47.67 KB 1 33.3% 49578bf1-728f-438d-b1c1-d8dd644b6f7f rack1
Run Code Online (Sandbox Code Playgroud)
节点列表应该只是 IP(不需要主机名),我想要像下面这样的干净输出:
10.11.12.13
10.11.12.14
10.11.12.15
Run Code Online (Sandbox Code Playgroud)
最好/最简单的方法是什么?
我将在下面提供我当前的方法来执行此操作,但如果有更好的方法,我很乐意看到它。即使它不使用nodetool
命令。