Лучший способ использовать tcpdump в расписании - PullRequest
0 голосов
/ 27 февраля 2019

Я новый пользователь для Linux, и теперь у меня есть миссия для захвата пакетов в определенное время.

Например, я хочу перехватить пакеты и затем сохранить их в файл pcap (каждый лимит файла)50mb).Я могу использовать эту команду:

tcpdump -C 50 -w mypackets.pcap

Но я не знаю, как выполнить это в определенный период времени.Например, запускайте это каждый понедельник - пятница (и период 2019/02/01 ~ 2019/02/28). После 2019/02/28 этот процесс будет убит.

Я прочитал документ , но, похоже, нет параметра для управления этой опцией

Есть ли хорошая идея сделать это?

1 Ответ

0 голосов
/ 28 февраля 2019

Если вы хотите запланировать время запуска процессов, вы можете посмотреть crontab .

Например, следующие задания cron приведут к запуску tcpdumpкаждый понедельник и заканчивается каждую пятницу:

$ crontab -e
o
0    0    *    *    mon   tcpdump -C 50 -w mypackets.pcap
0    0    *    *    sat   killall -s SIGINT tcpdump
ESC:wq
crontab: installing new crontab

В качестве альтернативы, если вы просто хотите захватить весь месяц, например март, вы можете использовать что-то вроде этого:

$ crontab -e
o
0    0    1    mar  *   tcpdump -C 50 -w mypackets.pcap
0    0    1    apr  *   killall -s SIGINT tcpdump
ESC:wq
crontab: installing new crontab

Вам нужно будет вручную удалить задания cron, когда они вам больше не нужны.Обязательно протестируйте свои задания cron до того, как они вам действительно понадобятся, чтобы вы знали, что они будут работать так, как ожидалось, когда они вам действительно нужны.

Возможно, вы захотите использовать dumpcap вместо tcpdump, так как dumpcap позволяет указать, что захват будет остановлен через указанное количество секунд с параметром -a duration: значение , поэтому вам не нужно явно указыватьостановите его, потому что он завершится сам по истечении этого количества времени.

...