我在AIX上运行两个进程。进程1生成多个文件,进程2从备份目录中的所有文件进行备份。
进程1会将文件复制或移动到备份目录中。由于进程2始终在后台运行,因此存在启动文件备份的风险,该文件仍处于复制或移动过程中,因此不完整。我怎样才能避免这个问题?
发布于 2020-01-22 17:44:56
进程1应该在另一个目录(在同一磁盘上)中创建文件;当创建一个文件时,将其移动到最终目录中。Move是一个原子操作,所以process2只能找到完整的文件。
编辑:在AIX上,/usr/bin/istat有助于确保两个目录(或文件)位于同一磁盘/分区/设备上,例如
for Dir in /home /home/zsiga /tmp;
do /usr/bin/istat "$Dir" | grep device;
done结果:
Inode 2 on device 10/8 Directory
Inode 33 on device 10/8 Directory
Inode 2 on device 10/7 Directory前两个位于相同的磁盘/分区/设备(10/8)上;最后一个位于另一个设备(10/7)上
https://stackoverflow.com/questions/59856442
复制相似问题