(我還以為在看 IMF 電影....)
先講:
1.沒有讓你直接一鍵設定這樣做的方法
2.市面上沒有量販的NAS可以這樣做
真的要做:
請改用 Microsoft M365 E3/E5 以上等級的 Sharepoint 功能, 將檔案儲存在 Sharepoint 的 OneDrive for Business (商務用OneDrive) 裡面 (不是一般個人用的 OneDrive 喔, 這兩個不一樣); 然後開啟 Sharepoint Audit 功能, 利用 Audit 功能, 記錄檔案發生了下載的行為, 再寫一段 Power Automation 程式, 去監看 Sharepoint Audit log, 一旦程式由 Audit log 中, 看到這個檔案已經完成下載了, 就馬上執行:
刪除這個檔案
的工作.
Sharepoint 可以設定: 把刪除的檔案放在垃圾桶裡, 所以即便刪掉了, 在一定時間內還有機會可以把檔案撈回來, 重新下載.
我想詢問如果我想要讓NAS伺服器可以在指定的資料夾內的檔案被開啟或下載後自動刪除,
固定刪除的資料夾路徑為「/volume1/text」請問有辦法這樣設定嗎?
寫程式喔!! 用程式去讀取(NAS 所開放出來的目錄),可以讀取此目錄所有檔案,監控檔案是否有被 "動過" ,如果被動過(傳輸也算)基本上都算被使用過,那就可以以你的需求去做!!
但你都放 NAS 為何想這麼做呢??
要寫程式的話建議就弄成 web base 的了,直接控管下載次數就好。
要用 Web Base 那就去用雲端硬碟這麼多家。只是作者想要做一點 NAS 的檔案管理,我也沒有看過 NAS 的 APP 有作者想要的功能!!
目前狀態是有三台平板,A、B、C這三台指對應NAS內的特定資料夾,甲同事拿了B平板後看到資料夾內有PDF檔,下載後就去理貨了,理完貨後將平板放回原位,乙同事來再拿起B平板發現裡面沒有PDF檔那就不會出現重覆理貨的狀況,因此才有這個需求,目前測試一個指令find /volume1/1111 -name '.txt' -type f -mmin +5 -delete -print,但還是沒辦法下載後刪除被開啟過的檔案。
給你一個方向去處理,但往後建議你們有系統可以處理這些事情
去了解一下這個 auditd linux 命令行工具可以用於監控文件系統事件 Adultd:Linux 系統稽核工具使用教學與範例
此命令將監控指定文件的讀取操作,並將事件標記為“file-read”,當讀到之後將檔案移到另一個目錄,建議你們可以做為審核是否真的有撿貨
sudo auditctl -w /path/to/your/file -p r -k file-read
並建立 sh 腳本文件
touch file_read_monitor.sh
chmod +x file_read_monitor.sh
使用文本編輯器打開創建的腳本文件,例如nano file_read_monitor.sh,然後添加以下內容
#!/bin/bash
# 需要監控的文件路徑
file_path="/path/to/your/file"
# 檔案讀取後要移動到的目錄
destination_directory="/path/to/destination/directory"
# 設置audit規則
sudo auditctl -w "$file_path" -p r -k file-read
while true; do
# 搜索被讀取的文件事件
result=$(sudo ausearch -k file-read -ts recent | grep "path=$file_path")
# 如果文件被讀取
if [[ ! -z "$result" ]]; then
echo "File has been read. Moving to the destination directory."
# 移動文件到指定目錄
mv "$file_path" "$destination_directory"
# 刪除audit規則
sudo auditctl -W "$file_path" -p r -k file-read
break
fi
# 每次檢查之間等待5秒
sleep 5
done
一旦檢測到文件被讀取,腳本將文件移動到指定的目錄做為確定理貨,以上測試看看吧
謝謝前輩的指導,我再去研究一下~萬分感謝