【发布时间】:2021-04-10 16:37:43
【问题描述】:
我正在尝试编写一个 bash 脚本来将文件从源移动到目标,以节省源磁盘上的空间(源和目标是两台不同的机器)。
我可以使用 scp 协议来处理移动部分,但问题是我使用的软件非常快速地写入了很多文件(幸运的是每个文件都有相同的扩展名),我想移动一个文件为刚写完。
所以,在源码目录下,我想:
- 将文件移动到目标位置,
- 从源中删除文件,
...直到软件停止在源上写入新文件。
有什么帮助吗?
提前谢谢你。
【问题讨论】:
-
@sam_dc - 您想如何检测软件何时停止在源上写入新文件?
-
您可能会考虑不写入文件根本。写入命名管道,您可以使用
ssh remotehost 'cat > destination'之类的命令从该管道中读取,以仅使用恒定数量的本地磁盘空间将文件“流式传输”到远程主机。 -
您要移动所有文件吗?您可以使用 sshfs 将目标挂载到源并使其自行写入远程。
-
@chepner 不幸的是我无法控制我的软件的输出