crontab执行bash脚本tcpdump异常

我想写个bash脚本然后用crontab定时执行它。

#!/bin/bash
  
CAPTURE_FOLDER="/var/tmp/"

pgrep tcpdump

if [ $? -eq 0 ]
then
        pkill -15 tcpdump
else
        rm -f "${CAPTURE_FOLDER}/udpcapwfg.pcap*"
        tcpdump -i $1 -C 5 udp port 7660 -w /var/tmp/udpcapwfg.pcap  &
        if [ $? -eq 0 ]
        then
                echo "command run" >> /root/error
        fi
fi

 

使用crontab -e,写入如下内容

* * * * * /root/cap.sh(确实在这个位置)

但是现在error文件里面有内容但是对应位置没有任何包。

我把tcpdump换成了echo,完全正常。请问这个是什么情况?

 

把最后的   & 去掉试试?

我试试

* * * * * /bin/bash /root/cap.sh

这样试试呢  没加bash的原因吧