事情是这样的:
本人目前在高校工作,学校有一个大型 NAS ,校园网内可以通过映射网络驱动器的选项添加在自己的计算机里,然后每个所都有自己的一个文件夹,文件夹里每位同事又有自己的一个文件夹(没错就是套娃)。
我每次给楼下电镜的阿姨送样,阿姨测完之后,会把电镜照片,样品组分等等文件塞到我的网盘文件夹里,问题是,我根本不知道阿姨什么时候测好,什么时候上传文件。我只有自己去问,或者不断查看我的文件夹。。。很累。。。
有没有办法写个脚本,对我的文件夹进行监控,发现有新文件了,马上通知我,这样我就知道样品测好了。。。
求大佬帮忙呜呜呜>_<
1
heybuddy 2023-02-23 21:25:27 +08:00
python 写个定时脚本,cd 到指定目录,执行完后记录最后脚本的执行时间,再去对应的文件夹里查看有没有比最后检测时间大的,有的话用 webhook/钉钉机器人 /server 酱 /bark 通知一下
|
3
vivisidea 2023-02-23 22:46:22 +08:00
这种需求可以试试问问 chatgpt ,我感觉是比较能出方案的,我瞎问了一个,你参考参考 :D
``` # write python program to monitor a network directory, if directory changes detected, invoke dingtalk webhook api import os import requests # Set the directory you want to monitor directory = '/tmp/some_folder' # DingTalk webhook URL dingtalk_url = 'https://oapi.dingtalk.com/robot/send?access_token=YOUR_DINGTALK_ACCESS_TOKEN' # Get the files in the directory files = os.listdir(directory) # Get the modified times of the files modified_times = [os.path.getmtime(os.path.join(directory, file)) for file in files] # Make a copy of the modified times previous_times = modified_times.copy() # Monitor the directory while True: # Get the modified times modified_times = [os.path.getmtime(os.path.join(directory, file)) for file in files] # Compare the modified times for index, time in enumerate(modified_times): if time != previous_times[index]: # Invoke DingTalk webhook data = { "msgtype": "text", "text": { "content": f"Directory {directory} changed" } } requests.post(dingtalk_url, json=data) break # Make a copy of the current modified times previous_times = modified_times.copy() ``` |