我们需要定期将一些超过 2 天的大文件归档到 NAS,同时保持它们的目录树结构。这些文件在源目录中保留 7 天。
起初我们用于find
此:
find ${SOURCE_DIR} -type f -mtime +2 -exec ksh -c 'mkdir -p $(dirname ${DEST_NAS_DIR}$0) && cp -p $0 ${DEST_NAS_DIR}$0' {} \;
但是我们注意到脚本正在复制已经归档的文件,因此每次执行都需要花费太多时间。
cp 没有 -n / --no-clobber 选项。那么,如何避免覆盖目标中的相同文件?任何想法?
问候!
您可以尝试通过以下方式作弊:
不幸的是,我没有 AIX 来测试它,但这会要求覆盖任何现有文件,并且发送“n”会阻止它。
PS我目前没有测试它的地方,所以请在使用真实文件之前进行测试。
如果
rsync
在您的系统上可用,您可以使用它的--ignore-existing
标志:可能该
-u
标志可能很有趣 - 它会检查发件人是否也有更新版本的现有文件,如果有,则更新它们。看看你是否想要
--archive
激活模式:这意味着递归并保留一些关于时间、所有权等的信息。检查man rsync
更多细节。