围绕StackOverflow,还有很多其他问题。我没有找到任何结果不使用任何第三方包的地方。
问题是我正在使用Hetzner,他们希望允许我安装任何软件包。
我可以使用PHP,Python,Java(几乎认为是标准集合)
如何监视新文件的目录(递归)并将引用引入另一个文件。
我尝试过这样的事情:
while true; do
last=`cat log.txt`
find "$UPLOAD_FOLDER"'/.' -type f > 'log.txt'
now=`cat log.txt`
diff -n <(echo "$last") <(echo "$now") >> 'queue.txt'
sleep 60;
done;
但它不可靠,并且使用queue.txt
,d3a
等污染b5a
。
答案 0 :(得分:1)
最简单的方法是使用标记文件:
touch markerFile
while true
do
find "$UPLOAD_FOLDER"'/.' -type f -newer markerFile >> 'queue.txt'
touch markerFile
sleep 60
done
在发现和触摸之间可能会出现轻微的竞争条件吗?
评论中建议的更复杂的双缓冲解决方案:
touch markerFileA
touch markerFileB
while true
do
touch markerFileB
find "$UPLOAD_FOLDER"'/.' -type f -newer markerFileA ! -newer markerFileB >> 'queue.txt'
sleep 60
touch markerFileA
find "$UPLOAD_FOLDER"'/.' -type f -newer markerFileB ! -newer markerFileA >> 'queue.txt'
sleep 60
done
答案 1 :(得分:0)
您可以使用sed
删除不需要的输出:
while :; do
find "$UPLOAD_FOLDER/." -type f > "log1.txt"
if [ -f "log2.txt" ]; then
diff log1.txt log2.txt | sed '/^[^<]/d;s/^< //'
fi
mv "log1.txt" "log2.txt"
sleep 60
done