Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux/systemd中是否有可编程的automount/autofs挂钩?_Linux_Mount_Systemd_Automount - Fatal编程技术网

linux/systemd中是否有可编程的automount/autofs挂钩?

linux/systemd中是否有可编程的automount/autofs挂钩?,linux,mount,systemd,automount,Linux,Mount,Systemd,Automount,我希望在对特定设备/共享/装载进行装载尝试之前执行一个程序。 例如,我希望autofs/amd控制/data/{1..10},当进程打开/data/4(并且/data/4当前未装入)时,在尝试装入之前会调用一个脚本,例如“/usr/local/bin/preparedata 4”(4是autofs控制目录中的装入点名称)。 例如,我可以动态连接iSCSI LUN(将在autofs映射中引用),或者启动具有NFS导出(在映射中指定)的远程系统/VM 如果遗漏了,我很乐意补充细节 更新:我注意到sy

我希望在对特定设备/共享/装载进行装载尝试之前执行一个程序。 例如,我希望autofs/amd控制/data/{1..10},当进程打开/data/4(并且/data/4当前未装入)时,在尝试装入之前会调用一个脚本,例如“/usr/local/bin/preparedata 4”(4是autofs控制目录中的装入点名称)。 例如,我可以动态连接iSCSI LUN(将在autofs映射中引用),或者启动具有NFS导出(在映射中指定)的远程系统/VM

如果遗漏了,我很乐意补充细节

更新:我注意到systemd似乎正在拦截open()调用,有什么方法可以做到这一点,特别是在systemd中吗?

请看一看,以及在安装之前执行的钩子

这些选项可以在
/etc/fstab
中指定



相关问题:.

Autofs本身可以运行自定义脚本或程序来动态提供“映射”,即Autofs用于装载的装载选项和参数

例如,要从NFS服务器自动挂载主目录,当有多个用户时,可能更喜欢使用类似“/home/user12/user123456”的模式作为homedir路径,以限制服务器上的子目录数量

要动态装载此类主目录,可以将其放入/etc/auto.master中:

/home    program:/usr/local/sbin/autofs-home-mapper.sh
脚本/usr/local/sbin/autofs-home-mapper.sh可能如下所示:

#!/bin/bash
echo "-fstype=nfs4,relatime nfs.example.com:/exported/${1%????}/${1}"
当访问本地目录/home/johndoe时,autofs将运行脚本 只有一个参数:
johndoe

然后,此脚本的输出将为:

-fstype=nfs4,relatime nfs.example.com:/exported/joh/johndoe
…然后由autofs用于挂载/home/johndoe

不要忘记对脚本设置执行权限,因为跟踪这样的错误可能会很困难


有关详细信息,请参见
man 5 auto.master
(查看“地图类型”下的内容)和
man 5 autofs

这方面有什么进展吗?我也有类似的需要。见不。。我唯一能想象的是修改一些底层代码…啊,我在最初研究时看到了,但认为它只运行一次来生成地图,而不是每次在地图中查找关键字时都运行。如果是后者,那么这就很好地解决了问题!它将在每次需要安装时运行。