【发布时间】:2010-07-01 22:16:12
【问题描述】:
让我解释一下树形结构:我有一个网络目录,我们的数据库每天都会多次复制新的 .txt 文件。这些文件位于基于用户名的目录中。在本地磁盘上,我具有相同的结构(基于用户名的目录)并且需要使用最新的 .txt 文件进行更新。这不是一个同步过程:我将远程文件复制到本地目的地,之后我不关心它会发生什么,所以我不需要让它保持同步。但是,我确实只需要复制新文件,而不是那些我已经复制的文件。它看起来像:
远程磁盘
/mnt/remote/数据库
+ 用户 1/
+ 用户 2/
+ 用户 3/
+ 用户4/
本地磁盘
/var/数据库
+ 用户 1/
+ 用户 2/
+ 用户 3/
+ 用户4/
我玩过
find /mnt/remote/database/ -type f -mtime +1
和其他变体,但效果不是很好。
所以,我想弄清楚的脚本如下:
1- 递归检查 /mnt/remote/database 以获取 *.txt
2-检查文件日期以查看它们是否是新的(自从我上次检查以来,也许维护一个带有上次检查时间的文本文件作为参考?)
3- 如果文件是新文件,请将其复制到 /var/database 中的正确目的地(因此 /mnt/remote/database/user1/somefile.txt 将被复制到 /var/database/user1/)
我将通过 cron 作业运行脚本。
我现在正在用 C 语言做这件事,但 IT 人员在调试或编写 C 语言方面不是很好,如果他们需要添加或修复某些内容,他们可以更好地处理 bash 脚本,而我不太擅长。
有什么想法吗?
谢谢!
【问题讨论】:
-
听起来你想要
xcopy /s /m的UNIX等价物。