簡體   English   中英

同步一個mysql數據庫和一個文件夾

[英]synchronize a mysql database and a folder

如何同步數據庫,在其中存儲元數據(文件名,路徑,大小,類型...)和文件系統上的文件夾? 我的Web應用程序(spring mvc)需要此功能,該應用程序允許用戶在服務器上查看其文件。 例如,如果我手動添加或刪除服務器(ubuntu服務器)上的某些文件,則希望更新數據庫以添加或刪除行。 我的應用程序是否應該在用戶每次刷新頁面時重新掃描文件夾,刪除表的所有行並在數據庫中插入文件的實際列表? 在這種情況下,每次用戶刷新頁面時,即使我沒有修改文件夾的內容,我也必須修改表。 是否可以使數據庫偵聽文件夾並自動更新行? 請幫幫我

需要有一些功能來定期檢查文件夾及其子文件夾的時間戳(如果有)以檢測最近的更改,然后更新數據庫(如果有)。 一個相當簡單的腳本可以做到這一點,並可以從cron計划或作為守護程序運行。 也可以實現一個存儲過程來做到這一點,並將其安排為重復事件。 如有必要,可以使用sys_exec調用外部可執行文件。 有關sys_exec源和其他UDF,請參見http://www.mysqludf.org/ 有關在MySQL中創建事件的信息,請參見http://dev.mysql.com/doc/refman/5.1/en/create-event.html

為了幫助檢測文件夾中的更改,我編寫了一個名為tfind的實用程序,其分辨率為1秒。 可以通過運行'tfind --help'來打印其用法,例如,'tfind --mtime 30 folder'將打印文件夾中所有修改時間少於30秒的文件名。 tfind是用perl編寫的,並且可以在所有在/ usr / bin / perl中安裝了perl的Linux系統上使用。 如果在其他地方安裝了perl,則只需使用正確的路徑名更新第一行。 如果腳本發現任何最近修改的文件/文件夾,也可以將其修改為僅打印“ 1”。 如果沒有此類文件/文件夾,則不打印任何內容。 tfind可從https://raw.githubusercontent.com/zalacer/projects-tn/master/Perl/tfind?raw=TRUE獲得

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM