java - 同步mysql数据库和文件夹

标签 java mysql ubuntu filesystems

如何同步存储元数据(文件名、路径、大小、类型...)的数据库和文件系统上的文件夹?我的网络应用程序(spring mvc)需要这个,它允许用户在服务器上查看他们的文件。例如,如果我手动添加或删除服务器(ubuntu 服务器)上的某些文件,我希望更新数据库以添加或删除行。每次用户刷新页面时,我的应用程序是否应该重新扫描文件夹,删除所有表的行并在数据库中插入实际的文件列表?在这种情况下,每次用户刷新页面时,即使我没有修改文件夹的内容,我也必须修改表格。是否可以让数据库监听文件夹并自动更新行?请帮助我

最佳答案

需要有功能来定期检查文件夹及其子文件夹的时间戳(如果有)以检测最近的更改,然后更新数据库(如果有)。一个相当简单的脚本就可以做到这一点,并从 cron 进行调度或作为守护进程运行。还可以实现一个存储过程来执行此操作并将其安排为重复事件。如果需要,它可以使用 sys_exec 调用外部可执行文件。请参阅http://www.mysqludf.org/对于 sys_exec 源和其他 UDF。有关在 MySQL 中创建事件的信息位于 http://dev.mysql.com/doc/refman/5.1/en/create-event.html

为了帮助检测文件夹中的更改,我编写了一个名为 tfind 的实用程序,其分辨率为 1 秒。可以通过运行“tfind --help”来打印其用法,例如“tfind --mtime 30folder”会打印文件夹中修改时间小于 30 秒的所有文件的名称。 tfind 是用 perl 编写的,可以在/usr/bin/perl 中安装了 perl 的所有 Linux 系统上运行。如果 perl 安装在其他地方,只需使用正确的路径名更新第一行。如果发现任何最近修改的文件/文件夹,该脚本也可以修改为仅打印“1”。如果没有这样的文件/文件夹,它不会打印任何内容。 tfind 可通过 https://raw.githubusercontent.com/zalacer/projects-tn/master/Perl/tfind?raw=TRUE 获取.

关于java - 同步mysql数据库和文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29193066/

相关文章:

Java 链表数组

java - Spring MVC 3.0 解析 JSON 中的项目类

linux - `mv file.sh/~` 将文件移动到哪里?

ruby-on-rails - 使用 .sh 脚本重新启动后计划启动 Rails 服务器 "script.sh: line 2: rails: command not found"错误

java - 使用正则表达式处理 URL 字符串中的协议(protocol)

java - 单链表 : How to add the head

mysql - PDO 更新行成功然后失败?

mysql - Rails 认为我的连接表有不同的列名

mysql - 检索满足特定条件的行

C 共享库 : static variable initialization + global variable visibility among processes