У меня есть следующий сценарий оболочки
$cat capture.sh
TIME=$(date +"%H-%M-%d-%m-%y")
IP="203.208.198.29"
PREFIX=$TIME$IP
tshark -f "udp" -i eth0 -w /root/captures/$PREFIX.cap&
pid=$!
sleep 2m
kill $pid
он отлично работает, когда я запускаю его из оболочки.
но когда я добавляю его на вкладку cron, ничего не происходит.
моя запись crontab: 1 * / 2 * 2 3,4,5 sh /root/capture.sh
tail /var/log/cron
показывает, что команда выполнена.
но ничего не происходит. Я установил разрешение на выполнение для «all» для capture.sh и разрешение на запись для «all» для каталога / root / captures.
заранее спасибо
Ваш PATH
переменная, вероятно, не то, что вы ожидаете внутри cron.
Используйте полные пути к каждому исполняемому файлу в вашем скрипте или задайте путь вручную в вашем crontab или скрипте.
Кроме того, лучший способ остановить ваш tshark
будет использовать встроенные функции:
-a <capture autostop condition>
duration:value Stop writing to a capture file after value seconds
have elapsed.
Также # 2: добавьте строку shebang (#!
)
Cron ограничит путь, используемый заданиями cron. Попробуйте / usr / sbin / tshark вместо просто tshark. Вы можете проверить, где находится tshark, через which tshark
Глядя на ваш сценарий, я вижу, что вы пытаетесь захватить трафик на две минуты и записать файл. Вы действительно имели в виду, что cronjob запускается каждую среду / четверг / пятницу в феврале, каждый второй час в 1 час? Полагаю, вы хотели, чтобы он запускался каждые 2 минуты ...
Из crontab(5)
(который можно прочитать с помощью man 5 crontab
)
cron(8) examines cron entries once every minute.
The time and date fields are:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
A field may be an asterisk (*), which always stands for "first-last".
Поскольку команда tshark не найдена, у вас есть два способа исправить это.
определить путь в crontab
ПУТЬ = $ ПУТЬ: / путь к tshark
* / 2 * 2 3,4,5 ш /root/capture.sh
Используйте в скрипте полный путь к tshark.
вариант №1 - предпочтительный способ