我有一个脚本通过ssh传输一些文件。我通常启动脚本,一旦我确定它运行正常我使用CTRL-Z暂停它然后使用bg
在后台运行。
> ./download-script.sh
Downloading...
Got file foobar.txt
Got file baz.txt
Downloading bash.txt (42%)
[2]+ Stopped download-script.sh
> bg
[1]+ download-script.sh &
>
这怎么安全?似乎发送文件的服务器不知道等待我的进程重新上线,是吗?
如果我等了一个小时然后在后台恢复了剧本,它会在中断的地方继续怎么办?
我的示例使用ssh文件传输,但当我的脚本与大多数资源交互时,这也成为我关注的问题。
答案 0 :(得分:1)
I / O缓冲区将帮助它承受一点延迟(即,如果你暂停脚本/命令最多几秒钟它就不会禁止。但是超过几秒钟,我想你可能会遇到其他问题:源和目的地之间的TCP / UDP超时?I / O超时?(例如:输入密码的时间太长等)
如果您只使用“本地”内容并且没有内置超时使用的命令:例如,如果您这样做:
tar cvf something.tar /path/to/something
然后ctrl-z
它,然后bg
(唤醒并发送到后台)或fg
(唤醒并发送到前台):即使您等待它也能正常工作一个很长的时间。
但与此同时,您有更多机会修改其中一个文件...
或者你的shell可以有一个TIMEOUT / TMOUT让它在之前停止。
或(任何其他原因,真的:断电,你的猫踩着CTRL + d退出shell等)
喵:你可以,除非某些东西依赖它“快”。