远程目录中有一堆文件,我想访问这些文件sshfs
,然后编写一些操作的脚本。在实践中,我希望在不同的时间访问不同的文件,并对这些文件执行不同的操作。
选项 1:挂载整个目录(一个脚本)。然后,运行我选择的任何特定于文件的脚本。
选项 2:将挂载目录的过程与特定于文件的脚本捆绑在一起。
选项 1 的缺点:在运行特定于文件的脚本之前,我忘记了该文件夹是否已挂载。检查仅需 10 秒钟,但却是一个轻微的刺激。我不希望始终或默认安装该文件夹。
选项 2 的缺点:当处理第二个或第三个文件时,我最终使用sshfs
挂载已挂载的远程目录。这会造成任何伤害吗?
关于选项2,我想可以检查目录是否已经安装,如下所示:检查目录是否用bash安装[关闭]。这听起来是最好的解决方案吗?
答案1
谈到“选项 2”,挂载已挂载的远程目录并不是一个好主意。如果将其安装在另一个安装点上,并且根据您的处理情况,您将失去锁定机制。此外,默认情况下,fuse
如果挂载点不为空,则不会进行任何挂载。
恕我直言,最好的方法就是你所说的:检查远程目录是否已安装,如果没有,则安装它。只需在脚本中添加几行,因此易于管理。例如:
REMOTE="user@remote:/some/dir"
MOUNTPOINT=$( mount | grep -E "^${REMOTE}/? " | awk '{print $3}' )
if [ -z "$MOUNTPOINT" ] ; then
echo "Mounting remote directory..."
else
echo "$REMOTE is already mounted on $MOUNTPOINT"
fi