日志文件被追杀之谜

现象描述:

执行脚本down.sh,内容:

mkdir -p bak2log

killall -9 dt

sleep 1

echo '-----------------------------------------------------'

tftp -g -r dt 192.168.42.219

mv ./log.d/* ./bak2log/

...(其他内容)

其中的dt会常打开日志文件log.d/dt.log

脚本的功能为杀掉dt,备份日志(mv到其他目录),下载新的dt程序,重启启动dt(略)

 

执行后发现log.d下只生成了一个0字节的新文件,但是没有文件内容,查看打开句柄情况:

 

# ls -l /proc/8977/fd/

lr-x------    1 0        0              64 Mar 25 15:02 0 -> /dev/null

lrwx------    1 0        0              64 Mar 25 15:02 1 -> /dev/null

lrwx------    1 0        0              64 Mar 25 15:02 10 -> /dev/audit_kdi2010v1

l-wx------    1 0        0              64 Mar 25 15:02 11 -> /dev/null

lrwx------    1 0        0              64 Mar 25 15:02 2 -> /dev/null

lrwx------    1 0        0              64 Mar 25 15:02 3 -> /memory_module

lrwx------    1 0        0              64 Mar 25 15:02 4 -> /sysinfo_module

lrwx------    1 0        0              64 Mar 25 15:02 5 -> socket:[533]

lrwx------    1 0        0              64 Mar 25 15:02 6 -> socket:[538]

l-wx------    1 0        0              64 Mar 25 15:02 7 -> /v_dt/bak2log/dt.log

l-wx------    1 0        0              64 Mar 25 15:02 8 -> /v_dt/.dt.lock

 

发现绑定的竟然是备份目录下的日志文件

尝试延长sleep的值,无效

尝试改mv为cp+rm,问题解决。

但是百思不得其解,为什么mv后的文件会依然被之后启动的进程所使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值