小编Ahm*_*kan的帖子

OpenSSH 在终止时不清理域套接字

我有一个本地 unix 套接字通过 SSH 隧道连接到远程实例上的另一个 unix 套接字:

ssh -N -L $HOME/my.sock:/var/run/another.sock
Run Code Online (Sandbox Code Playgroud)

然而,当我优雅地终止 ssh(即 ctrl+C 或 SIGTERM)时,$HOME/my.sock仍然存在。看起来这没有正确清理。有这个选项/标志吗?

这是有问题的,因为如果我第二次运行该命令,它会由于现有的套接字文件而失败。(我看不到会覆盖现有套接字文件的“重用”标志/选项。)而且我宁愿不添加rm -f $HOME/my.sock.

ssh unix-sockets

6
推荐指数
1
解决办法
1321
查看次数

如果前面有感叹号 (!),ZSH 认为是未终止的引用

我有 zsh 5.3(通过 oh-my-zsh),如果我运行echo --message="foo!",我会在下一行得到未终止的报价提示:

$ echo --message="foo!"
dquote>
Run Code Online (Sandbox Code Playgroud)

这不会发生在 bash 中。

当我!从参数中删除字符时,它工作正常:

$ echo --message="foo"
--message=foo
Run Code Online (Sandbox Code Playgroud)

这里发生了什么事?


我还应该注意,如果我回答未终止的引用提示"并点击返回,我会得到这个输出,它完全删除!

$ echo --message="foo!"
dquote> "
--message=foo
Run Code Online (Sandbox Code Playgroud)

zsh

6
推荐指数
1
解决办法
1513
查看次数

为什么我用“rm -rf”得到“目录不为空”?

我正在使用 macOS 和rmGNU coreutils 的工具(不是 macOS\xe2\x80\x99s 自己的rm)。

\n\n

所以我有一个脚本来清理一些目录,如下所示:

\n\n
if [ -d "${cleanup_repo_clone_root}" ]; then\n    echo "Cleaning up tmp directory: ${cleanup_repo_clone_root}"\n    set -x; rm -rf -- "${cleanup_repo_clone_root}"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n\n

我扔了一个set -x进去看看发生了什么。

\n\n

它向我显示输出:

\n\n
+ set -x\n+ rm -rf -- /var/folders/h7/n46zg3md4l57vzsgxcs355/T/tmp.eizQw1iNBQ\nrm: cannot remove \'/var/folders/h7/n46zg3md4l57vzsgxcs355/T/tmp.eizQw1iNBQ\': Directory not empty\n
Run Code Online (Sandbox Code Playgroud)\n\n

但如果我复制粘贴该 rm 命令并执行它,它就可以正常工作!

\n\n
$ rm -rf -- /var/folders/h7/n46zg3md4l57vzsgxcs355/T/tmp.eizQw1iNBQ\n
Run Code Online (Sandbox Code Playgroud)\n\n

这里发生了什么?

\n

scripting rm

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

通过 SSH 将本地 unix 上的流量代理到远程 unix 套接字

我正在尝试使用本地 Unix 域套接字,例如~/docker.sock. 我希望它将所有内容代理到通过 SSH 在其他地方运行的远程 Unix 域套接字。(你可以在下面找到我正在尝试做的事情的图表)。

OpenSSH 支持这一点(这里有一个例子)。例如,此命令将远程服务器上的 MySQL 客户端连接代理到我的本地实例:

ssh -R/var/run/mysql.sock:/var/run/mysql.sock -R127.0.0.1:3306:/var/run/mysql.sock somehost
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的样子。它将来自远程套接字的流量转发到我的本地套接字(我想要其他方式)。

在此处输入图片说明

ssh openssh ssh-tunneling unix-sockets

3
推荐指数
1
解决办法
5637
查看次数

[[ 的联机帮助页在哪里?

我正在尝试查找[[(双括号)的手册页。

显然man test只有文档test[.

[[和 的条件[完全相同吗?

bash

3
推荐指数
1
解决办法
1158
查看次数

标签 统计

ssh ×2

unix-sockets ×2

bash ×1

openssh ×1

rm ×1

scripting ×1

ssh-tunneling ×1

zsh ×1