sshfs mount 出现并在从暂停状态恢复后消失

sshfs mount 出现并在从暂停状态恢复后消失

我希望在从暂停状态恢复时通过 sshfs 自动挂载某个网络目录。使用来自另一个 AU 的信息邮政,我已通过 中的脚本(部分)运行该脚本/lib/systemd/system-sleep/。我可以在退出该脚本时将本地挂载点的内容记录到文件中(带有时间戳),并查看远程目录是否已正确挂载。但是,当我在终端中手动检查时,挂载点为空。我可以使用 重新运行该脚本,sudo /lib/systemd/system-sleep/20-sshfs post它再次正确挂载。

看来 sshfs 命令从恢复脚本开始工作,但目录随后立即被卸载。我如何找出原因?我在/var/logUbuntu 20.04 下没有找到任何有用的东西。

编辑:添加脚本。

#!/bin/bash
# Run sshfs command after resume
case "$1" in
    post)
        counter=0
        initdircontents=$(ls -A /opt/sbc/sysroot)
        # Space needed after the [[ ! 
        while [[ -z "$(ls -A /opt/sbc/sysroot)" ]]; do
            # Make sure user_allow_other is uncommented in /etc/fuse.conf!
            # https://superuser.com/a/262800/
            # Then, the -o allow_other below is required! This lets users
            # access the mount even if root has mounted it.
            sshfs -o transform_symlinks -o allow_other -o ssh_command="sshpass -p passwd ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" [email protected]:/ /opt/sbc/sysroot
            dircontents=$(ls -A /opt/sbc/sysroot)
            ((counter++))
            if [[ "$counter" -eq 4 ]]; then
                break
            fi
            sleep 0.5
        done

        echo -e "sshfs resumed at $(date).\nInitial dir contents: $initdircontents\nAfter ssfhs: $dircontents\ncounter = $counter\n" > /home/dqbydt/sshfs.log
        echo -e "Dir contents at script exit: $(ls -A /opt/sbc/sysroot)" >> /home/dqbydt/sshfs.log
        ;;
esac

while 循环是为了解决另一个潜在的不相关问题,但与此问题无关,从日志文件中可以看出:

$ cat sshfs.log 
sshfs resumed at Wed 14 Dec 2022 08:32:17 PM.
Initial dir contents: 
After ssfhs: bin
boot
dev
etc
home
lib
lost+found
media
mnt
opt
proc
resize.log
root
run
sbin
snap
srv
sys
tmp
usr
var
counter = 1

Dir contents at script exit: bin
boot
dev
etc
home
lib
lost+found
media
mnt
opt
proc
resize.log
root
run
sbin
snap
srv
sys
tmp
usr
var

您可以看到计数器为 1,这意味着它只经历了一次循环。初始目录内容为空。运行 sshfs 后,它已映射远程目录。脚本退出时,这仍然存在。然而,在恢复之后,如果我执行ls -la /opt/sbc/sysroot,它是空的。

相关内容