我需要每小时运行一个新进程的脚本。
我创建了一个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/

10-13 08:52