Chinaunix
标题:
tail监控文件的问题
[打印本页]
作者:
conall
时间:
2013-10-29 15:28
标题:
tail监控文件的问题
用tail -f 1.txt监测文件1.txt的变化,但当文件1.txt删除或重建时,tail -f 1.txt就无法监测文件1.txt的变化
tail -F又不支持,请问各位前辈有什么变通的方法?
例如:
> cat 1.txt
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaa
> tail -f 1.txt
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaa
ccccccccccccccccccc
但当文件1.txt删除或重建时,tail -f 1.txt无任何变化
>cat 1.txt | sort -u -o 1.txt
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaa
ccccccccccccccccccc
作者:
Shell_HAT
时间:
2013-10-29 15:32
不要删除或重建1.txt,有需要的时候清空它的内容,这样行吗?
作者:
conall
时间:
2013-10-29 15:45
1、文件清空了,历史的数据也就丢了——我不想丢失历史数据
2、即便清空(如下),请问如何清空
> cat 1.txt | sort -u > 1.txt
1.txt: File exists.
> cat 1.txt | sort -u !> 1.txt
1.txt: File exists.
作者:
conall
时间:
2013-10-29 15:45
1、文件清空了,历史的数据也就丢了——我不想丢失历史数据
2、即便清空(如下),请问如何清空
> cat 1.txt | sort -u > 1.txt
1.txt: File exists.
> cat 1.txt | sort -u !> 1.txt
1.txt: File exists.
作者:
waker
时间:
2013-10-29 16:26
文件被删除重建的前后本来就是两个文件,只是名字碰巧相同而已
作者:
conall
时间:
2013-10-29 16:32
回复
5#
waker
是的,那在这种情况下,如果监测这个文件呢?
作者:
waker
时间:
2013-10-29 16:37
你本来就正在监测这个文件啊,只是指向它的目录项之一没有了而已
作者:
conall
时间:
2013-10-29 16:40
回复
7#
waker
说白了,
就是怎么样实现
>tail -f 1.txt
手工中断tail -f 1.txt,然后再
>tail -f 1.txt
不断循环这个过程,保证1.txt无论怎么变,只有1.txt文件名没有变化,那么最新的内容都会呈现在页面中
作者:
waker
时间:
2013-10-29 16:53
回复
8#
conall
比如你的文件本来有5行,如果你追加了1行,那么tail将显示第6行
请问如果你清空文件再写入3行,那么tail将显示哪些行?你想要什么结果想清楚没有?
作者:
Shell_HAT
时间:
2013-10-29 16:56
回复
3#
conall
一般是这样做:
cp 1.txt 1_20131029.txt
>1.txt
复制代码
作者:
conall
时间:
2013-10-29 16:58
1.txt怎么变化,监控页面就怎么变化
比如,
如果> cat 1.txt
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaa
那么,> tail -f 1.txt
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaa
ccccccccccccccccccc
如果>cat 1.txt
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaa
ccccccccccccccccccc
那么,> tail -f 1.txt
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaa
ccccccccccccccccccc
作者:
conall
时间:
2013-10-29 17:00
说错了,重新说哈
如果> cat 1.txt
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
ccccccccccccccccccc
aaaaaaaaaaaaaaaaaa
那么,> tail -f 1.txt
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
ccccccccccccccccccc
aaaaaaaaaaaaaaaaaa
如果,> cat 1.txt
aaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
ccccccccccccccccccc
那么,>tail -f 1.txt
aaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbb
ccccccccccccccccccc
作者:
bikong0411
时间:
2013-10-30 09:29
监控的话用inotify吧
作者:
conall
时间:
2013-10-30 09:38
回复
13#
bikong0411
请赐教具体用法,谢谢
作者:
bikong0411
时间:
2013-10-31 09:13
回复
14#
conall
网上有教程
作者:
conall
时间:
2013-10-31 11:54
F=`ls -ltr | grep 1.txt | awk '{print $9}'`;if [ $F != "" ];then while : ;do clear ;tail $F;sleep 300;done;fi
谢谢,我自己研究解决了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2