想象一个场景,我从我的本地机器登录到一个服务器(我们称之为“Wallace”),然后我从那里ssh进入另一个服务器(我们称之为“Gromit”):
laptop ---ssh---> Wallace ---ssh---> Gromit
Run Code Online (Sandbox Code Playgroud)
然后从 Wallace 到 Gromit 的 ssh 会话挂了,我想杀死它。如果我输入~.杀死 ssh,它会终止从我的笔记本电脑到 Wallace 的 ssh 会话,因为~ssh 会话被该 ssh 会话拦截,并且.被视为终止会话的命令。如何向 Wallace 和 Gromit 之间的 ssh 会话发送命令?我如何杀死我的“内部”ssh?
我想在 zsh 上设置命令完成以在键入后显示主机名
ssh [TAB]
Run Code Online (Sandbox Code Playgroud)
从我的 .ssh/config 文件中取出名称(最好是从 known_hosts 和 /etc/hosts 以及任何其他有意义的地方)并呈现一个列表。
它目前做了一些这样的事情,但是
所以我想在输入 ssh [TAB] 后在(最好是单个)列表中包含已知的用户名和已知的主机名
(我在 Google 之前来到这里是因为 1)它会导致答案被存储在这里,并且 2)它可能更有效。如果没有其他人回答,我会寻找答案。)
我计划在不久的将来构建一个 FreeNAS 盒子,但如果 Linux 上的 ZFS 最终被证明是可靠的,我可能想切换,只是为了拥有一个更熟悉的操作系统。
所以我想知道我是否可以相信 ZFS 的不同实现是兼容的。换句话说,如果我只是将引导盘从 FreeNAS 换到 Linux 或 OpenIndiana,我能相信我的数据不会发生任何坏事吗?
这似乎是一个愚蠢的问题——显然它应该是兼容的——但我猜 ZFS 不常用于在计算机之间移动驱动器的情况,所以我希望有人能提供比只是“它应该是”。
我正在考虑从 screen 切换到 tmux,但我已经投入了大量时间开发了一个广泛的 .screenrc,而且我不想在将它移植到 tmux 几个小时后发现 tmux 不能做一些重要的事情对我来说。
我查看了两者的几个在线比较,但没有一个深入或回答许多(对我来说是什么)重要问题,可以归结为两个问题:
(客户端-服务器架构很好,但在我看来并没有提供任何新功能。许可证显然更好。更小更精简显然很好,但对我来说不是游戏规则改变者。)
由于这2个问题非常广泛,让我举一些具体的例子:
我可以自己寻找这些特定问题的答案,但它们只是 2 个更大问题的示例,而且我还想听到那些不一定适合我的任何示例的更大问题的答案。如果 tmux 中缺少某些东西,我完全有可能在花费大量时间切换后不会发现它,这就是我想要避免的。谢谢!
一般来说(据我所知)主要的基础设施/配置管理系统(Puppet、Chef、Ansible 和 SaltStack)都基于这样的理念:您的服务器是“牛”而不是“宠物”,而且它们似乎可能与直接对服务器进行配置更改的想法相矛盾。
尽管我曾与 Chef、Puppet 和 Salt 合作过,但始终是从与 Vagrant 合作的开发人员的角度出发,为开发设置单独的盒子,因此我的经验无助于回答这个问题。
问题是:这些系统是否支持直接对服务器进行更改并将其保留一段时间而不必担心本地守护程序会用官方配置覆盖它的用例?您应该能够进行更改(并且最好设置防止覆盖的时间窗口),而无需对(例如)厨师食谱或盐状态进行任何重大更改。此用例的全部目的是避免让五分钟的配置更改因公司摩擦和找到正确(例如)盐状态并确保没有副作用并完成发布/部署的复杂性而陷入困境循环和测试以确保您在此过程中没有发生任何事情。
如果您想要一个更具体的示例,假设您想要调整多个日志的 logrotate 设置,以平衡节省驱动器空间和访问历史数据。您知道在任何给定设置下将保存多少数据,以及您认为需要保留多少数据,但您不能 100% 确定。最好一开始就进行更改,然后看到 (1) 有人抱怨他们需要更多历史数据来执行某些调试任务,或者 (2) 您没有节省预期的驱动器空间,需要节省。
五分钟的更改实际上可以是五分钟的更改,如果您的配置管理系统允许它是一个,然后一旦您确信您希望在所有履行特定角色的盒子上进行这些更改,您可以让Chef/Puppet/Salt/Ansible 会为您管理。
注意:我不是在询问配置管理系统尚未管理某种类型的配置文件的用例,而是询问它已经在管理某种类型的配置文件,但您想要进行本地更改并让它们在给定的机器上优先,并且不被覆盖。
这些系统是否支持我的用例?(不需要我与系统战斗或进行后空翻来使其工作。)