我有一个目录,里面有好几个甚至好几百个 xml 文件。我想在发现新文件时执行一个脚本。唯一的主要问题是我不能使用 inotifywait 或类似的东西。由于安装权限的限制。(我确实有权限,但由于协议不允许,因为它由我们的供应商维护)。所以我可以使用脚本,使用基本的 Linux 工具,但不能安装新工具。另外需要注意的是,它必须为一个相当老的操作系统 opensuse 10.2 编写。
希望有人能帮助我指明正确的方向。
问候,
答案1
下面是一个在循环中使用“find -newer”的简单 bash 脚本的简短示例:
#!/bin/bash
while [ 1 ]; do
newfiles=`find /tmp -newer /tmp/.my_marker 2>/dev/null`
touch /tmp/.my_marker
if [ -n "$newfiles" ]; then
echo "found files $newfiles"
fi
sleep 5
done
在此示例中,脚本使用每次更新的 /tmp/.my_marker 的修改时间查找自上次循环以来在 /tmp 中发生更改的文件。循环在下次检查前休眠 5 秒。
该操作只是对找到的文件的回显,您可以改为执行自己的操作。