3

20:00までの間、5分ごとにsnoopコマンドを実行するつもりですが、最後の5分(まで)23:00で強制終了する方法がわかりません。この点で私を助けてください。22:5523:00

スヌープ コマンド:

FILE=vitrin_`date +%Y%m%d%H%M`.cap
kill -9 `pgrep snoop`
snoop -x0 -d e1000g0 -o /export/home/vitrin/$FILE

クロンタブ:

0,5,10,15,20,25,30,35,40,45,50,55 20,21,22 * * * /export/home/snoop.sh
4

2 に答える 2

3

snoop次の cron 実行から (およびおそらく他の無関係なもの) を強制終了する代わりにtimeout、 coreutilsなどのツールの監視下で最初から実行することができます。少なくとも Linux では、coreutils がかなり古いものでない限り、ほぼ確実に既にそれを持っています。

timeout 5m snoop ...
status=$?
[ $status -eq 124 ] && exit 0
exit $status

本当に必要な場合SIGKILL timeoutは、--signalオプションがあります。

実行中のコマンドがタイムアウトによって強制終了された場合、終了ステータスは 124 に設定されます。あなたの場合、それを無視したいようです。上の例のように。

于 2012-07-16T09:38:47.680 に答える
1

このようなものが役立つかもしれません:

kill -9 $(pgrep snoop) && \
  test $(date '+%s') -lt $(date -d "23:00" '+%s') && \
  snoop -x0 -d e1000g0 -o /export/home/vitrin/$FILE

またはcrontabで次のように:

*/5 20-23 * * * /export/home/snoop.sh
于 2012-07-16T07:14:49.697 に答える