使用 inotifywait 来实时监听目录var/lib/docker/volumes/nextcloud_nextcloud_data/_data/data/albert/files/bt_wget_downloads的文件变化(如创建、删除、修改和移动),并在发生变化时触发执行 Nextcloud 中的文件扫描命令 php occ files:scan。这样做的主要目的是确保当指定目录中的文件有变动时,Nextcloud 能及时更新文件索引,以便能在 Nextcloud 中显示最新的文件。
安装 inotify-tools bash
sudo apt update && sudo apt install inotify-tools -y
创建脚本 watch_nextcloud.sh(监听文件变动)
vim /root/watch_nextcloud.sh
将一下代码写入copy进去
#!/bin/bash
WATCH_DIR="/var/lib/docker/volumes/nextcloud_nextcloud_data/_data/data/albert/files/bt_wget_downloads"
NEXTCLOUD_CONTAINER="nextcloud-app" # 你的 Nextcloud Docker 容器名称
# 监听文件的创建、删除、修改、移动
inotifywait -m -r -e create,delete,modify,move "$WATCH_DIR" --format '%w%f' |
while read FILE
do
echo "检测到文件变动: $FILE"
sudo docker exec -u www-data $NEXTCLOUD_CONTAINER php occ files:scan --path="/albert/files"
done
赋予执行权限
chmod +x /root/watch_nextcloud.sh
后台运行脚本
nohup /root/watch_nextcloud.sh > /var/log/nextcloud_watch.log 2>&1 &
验证是否生效
通过 Xshell 在 /path/to/nextcloud/data 内添加或删除文件,看是否自动触发 occ files:scan --all。










