Как убить процесс (tcpdump) по cron?
Добавлено: 2010-04-27 10:16:14
Здравствуйте. Возникла необходимость дампить трафик с некоторых хостов для анализа. Для этого был написан следующий скрипт dump.sh:
и в crontab была добавлена запись:
То есть этот скрипт запускаеться каждые сутки в 00:00. При этом должен убиваться процесс tcpdump за предыдущий день и запускаться новый. Если этот скрипт запускать руками, то все работает как надо... Если же запускать его из crontab, то скрипт выполняется, но старый процесс tcpdump так и остается висеть в процессах... Как убить tcpdump по крону? Почему при запуске скрипта руками все работает как задумано, а при запуске из crontab нет?
Код: Выделить всё
#!/usr/local/bin/bash
#Const
#------------------------------------------------------------------------------------------------------------------
HOST_IP=10.10.10.2
CAP_DATE=$(date +%Y-%m-%d)
FILE_NAME="$CAP_DATE.trf"
PATH1=/usr/opt/$HOST_IP/$CAP_DATE
PID_ID=$(ps -ax | grep 'tcpdump -n -i em0 -s0 -C100 -w' | grep $HOST_IP | grep -v grep | awk '{print $1}')
#-------------------------------------------------------------------------------------------------------------------
if [ -n "$PID_ID" ]
then
kill -KILL $PID_ID ;
fi
mkdir -p $PATH1 &&
cd $PATH1 &&
tcpdump -n -i em0 -s0 -C100 -w $FILE_NAME host $HOST_IP ;
Код: Выделить всё
0 0 * * * root /usr/opt/dump.sh | mail root