![仅从 SFTP 中删除已处理的文件](https://linux22.com/image/222805/%E4%BB%85%E4%BB%8E%20SFTP%20%E4%B8%AD%E5%88%A0%E9%99%A4%E5%B7%B2%E5%A4%84%E7%90%86%E7%9A%84%E6%96%87%E4%BB%B6.png)
我们在SFTP服务器上有1000个文件,并且能够使用linux脚本在本地服务器上处理,这需要10分钟,处理后我们只想删除已处理的文件。同时我们得到一些新文件,我们不会删除处理时到达的文件。
请提供一个解决方案,在Linux/unix下编写一个脚本。
谢谢,文卡特
答案1
如果你想删除后处理,这就是我一般要做的事情:将文件名读入一个数组,然后在处理它们时将它们添加到另一个数组中。然后在脚本末尾,您可以循环处理已处理文件名的数组,然后删除这些文件。
我通常会使用一种支持某种异常处理的语言,特别是带有类似关键字的语言,finally
这样您就可以在命中块后保存已处理文件的数组finally
,无论是通过以正常方式到达脚本末尾还是如果存在是某种异常。这样您就可以从上次中断的地方重新开始。
一种更简单的方法是在处理文件后立即将其删除。