我需要每小时运行一个新进程的脚本。
我创建了一个bash脚本,计划每小时通过cron运行一次。它只在第一次起作用,否则就失败了。
如果从shell运行,它工作得很好。
这是剧本:
#!/bin/sh
ps -ef | grep tcpdump | grep -v grep | awk '{print $2}' | xargs kill
sleep 2
echo "Lanzando tcpdump"
tcpdump -ni eth0 -s0 proto TCP and port 25 -w /root/srv108-$(date +%Y%m%d%H%M%S).smtp.pcap
克朗
@hourly /root/analisis.sh > /dev/null 2>&1
为什么cron作业会失败?
最佳答案
这就是问题本身的答案。
评论后对剧本的修改(效果不错)
#!/bin/bash
pkill -f tcpdump
/usr/sbin/tcpdump -ni eth0 -s0 proto TCP and port 25 -w /root/srv108-$(date +%Y%m%d%H%M%S).smtp.pcap
也就是说,我只需要使用
tcpdump
的完整路径。关于linux - 搜索并杀死进程,并在bash脚本上启动新进程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42241586/