本地检查文件存在后远程创建文件遇同步延迟,如何规避?
问题:规避远程创建文件后的本地同步延迟?
我需要先在本地检查某文件是否存在,再通过SSH远程生成该文件,之后在本地查看其内容。但如果先在本地检查文件存在性,再远程创建,会出现同步延迟,导致本地无法立即查到文件。请问能否规避该延迟?
案例1
outfile=$HOME/testfile.$$.1.txt # 不存在的文件 test -f $outfile && echo "exists" # 检查文件 ssh $remote_host touch $outfile # 远程创建文件 stat $outfile # 本地查看文件状态
执行后未找到文件:
stat: cannot stat 'testfile.1234.1.txt': No such file or directory
需要等待文件同步后才能查看到:
echo -n "wait: " while [[ ! -e $outfile ]]; do echo -n "|" sleep 1 done echo " done"
等待输出:
wait: |||||||||||||||||||||||||| done
案例2 - 不使用'test'命令
outfile=$HOME/testfile.$$.2.txt # 不存在的文件 ssh $remote_host touch $outfile # 远程创建文件 stat $outfile # 本地查看文件状态
文件可立即被查看到:
File: ‘testfile.1235.2.txt’ Size: 0 Blocks: 0 IO Block: 1048576 regular empty file ...
内容的提问来源于stack exchange,提问作者and6933
相关产品推荐
相关产品推荐

