Gen*_* S. 12 linux ftp perl inode
有人正在将一个大小为10Mb的文件FTP到Linux服务器上的文件夹.当文件处于转换状态时,cron会唤醒并触发Perl脚本,该脚本旨在查看ftp文件夹并将其找到的任何内容移动到某个备用文件夹.我正在使用File :: Copy中的move()函数.Perl进程实际上将文件重命名为其任务的一部分.这有关系,或者FTP不关心文件系统将文件描述为什么?
将move()成功并移动部分文件,让FTP做什么?或者会移动失败并返回0?
Nor*_*rtl 10
不,移动应该只是让新位置完成下载过程.您只是将inode从一个位置移动到另一个位置.下载程序中的打开文件描述符仍应指向它.
我只想重复一些其他人提到的内容.只有移动操作位于同一文件系统上时,此方法才有效.如果它作为另一个文件系统而不是inode无法传输,因为它总是属于同一个文件系统.最可能的情况是该时刻的部分数据被复制到新位置,而程序仍然在旧的inode中下载,而旧的inode不再附加到文件,因此不能使用.
由于没有标准move,因此很难知道您的方案中发生了什么.如果您的意思是rename,那么您可能不会有任何问题,因为您的情况出现问题的主要方式是您将文件从一个文件系统移动到另一个文件系统(因此进行复制和删除,而不是真正的移动),在大多数系统上rename都会失败.(所以,如果您的设置完全正常,那就没关系.)
如果您没有使用rename某些move功能,例如,将处理跨文件系统的移动,那么如果涉及多个文件系统,您最好可以使用部分文件.(例如,如果您现在只在一个文件系统上,这可能会成为一个非常讨厌的问题,但是稍后您上传的这些文件占用了大量空间并且您添加了专用于存储它们的驱动器 - 现在你正在进行跨文件系统的移动.)
| 归档时间: |
|
| 查看次数: |
1398 次 |
| 最近记录: |