文件创建后从 Linux 服务器下载

文件创建后从 Linux 服务器下载

我最近开始使用 Linux 服务器,我还是个新手。我的 CUDA/C++ 程序求解二维微分方程,并每隔 1000 个时间步记录一次输出。这种情况大约每分钟发生一次。

是否可以在 Linux 服务器上生成文件后自动将其下载到我的电脑上,或者直接保存到我的电脑上?

这将大大加快我的工作速度,因为现在我必须等待我的程序完成所有计算,然后手动下载。我通常还会同时使用 6 个 GPU,它们在 LINUX 服务器上指定的不同文件夹中生成输出(例如,文件夹012345

答案1

是的,你可以使用inotify-等待命令是inotify 工具包。创建一个名为的文件,例如我的监视器,内容

#!/bin/bash
while true # will loop forever!
do 
   inotify-wait -r -e modify,attrib,close_write,move,create,delete /path/to/dir/or/file/to/monitor && /path/to/script
done

inotify-等待监视目录或文件(并且,如果你添加标志-r(它将以递归方式监视整个目录树)是否有更改。我选择了一些需要注意的典型更改,您可以找到一份详尽的列表这里inotify-等待尽快终止上面列表中的事件发生后,上面的命令会执行一些狂欢脚本(您必须编写)会将您需要的文件复制到另一台机器。文件传输完成后,循环再次开始。

你可以使用以下命令启动上述脚本

nohup /path/to/my_monitor

这意味着,即使你从这台电脑注销,脚本也会不是停止工作:基本上,它将永远运行(IE,直到重新启动)。

就这样。

答案2

您可以在 Linux 机器上运行一个简单的服务器来提供生成的文件,例如cd到所需的目录并运行:

python -m SimpleHTTPServer

然后,您可以使用家用电脑wget定期下载新内容(如使用 实现的-N):

while true; do
    wget -rN http://server/
    sleep 60
done

如果您在家中运行 Windows,您可以获取适用于 Windows 的 Wget 并将上述内容编写为脚本BAT,或者使用本机执行此类镜像的其他下载程序。

相关内容