我有一个脚本提供连续登录(就像2-3页在一秒钟)。我用的是一个下面的衬垫。
sh myscript.sh > /home/user/mylog
当文件达到100 it并创建新文件时,我正在运行另一个脚本来压缩该文件。
gzip /home/user/mylog;touch /home/user/mylog
但我认为我在gzip
和touch
commands.Can之间的时间里丢失了一些日志,有人建议最好的做法是不要丢失任何日志。
发布于 2016-12-08 19:30:24
而不是压缩文件,因为它被写入,移动它的方式,然后压缩静态文件.
mv /home/user/mylog /home/user/mylog.0;gzip /home/user/mylog.0
您不应该需要触摸,因为脚本运行,如果日志文件消失,它应该自己创建它。
下面是一个测试:运行这个脚本..。for (( ; ; )); do echo "123" >> test.log; sleep 1; done
然后把文件移到一个新的名字..。mv test.log test.log.0
假设脚本仍在运行,将自动创建新的test.log。
在While循环中尝试这个。当我测试它的时候它就起作用了。
while true;do
exec 3>&1 1>>time.logger 2>&1
date;
#other stuff...
done
https://unix.stackexchange.com/questions/329216
复制相似问题