bash - 检测远程安装

标签 bash ssh mount sshfs

是否有一个通用的 bash shell 变量或通用 Linux 命令能够可靠地指示给定目录或文件是否位于远程文件系统上——无论是 NFS、SSHFS、SMB 还是任何其他远程安装的文件系统?

上下文...
这是一个仅 root 访问、单用户、多主机 Linux 开发“实验室”,使用 SSH 和 SSHFS 实现系统的半无缝松耦合。每个主机上的相关目录结构是...

    /0
    /0/HOST1
    /0/HOST2
    /0/HOST3
    /bin
    /boot
      :

/0 中的目录是 SSHFS 挂载到指定主机上的“/”的目录。 “Host1”等是为每个主机命名的挂载点目录。

我当然可以建立一个环境变量,例如......

    REMOTE_FS=/0

...并测试以“/0”开头的目录名。然而,这不是很便携或可靠。

明显的问题...
在努力使其无缝化之后,为什么我想知道何时访问非本地内容?

回答...
通过已安装的文件系统会将所有处理负载置于发起主机上。我想知道何时可以选择使用 SSH 而不是 SSHFS 将后台处理(ls、grep、awk 等)卸载到远程(通常更强大)主机,只保留 GUI 和控制逻辑本地机器。

最佳答案

df -l <file>

如果文件或目录不是本地的,这将返回非零退出代码。

关于bash - 检测远程安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12256925/

相关文章:

linux - SSH 和 Session(KDE、Gnome 等)的不同密码

linux - 在安装 HDFS 时获取 "mount.nfs: mount system call failed"

linux - 从脚本执行命令时没有此类文件或目录错误

arrays - 使用 linux/bash 计算列元素的数量

python - 为什么 python shebang 不接受三个以上的参数?

java - 通过 ssh 文件传输从服务器自动下载日志到本地计算机

git - 切换 Git 以使用 SSH

kubernetes - 在 kubernetes 中挂载传播

linux - 尽管修改时间没有变化,但挂载共享上目录的 inode 发生了变化

Linux/用宏替换旧字符串