コマンド出力をフィルタリングしてログに送信するinit.dスクリプト

コマンド出力をフィルタリングしてログに送信するinit.dスクリプト

/home/michael/clientstdoutを記録したいのですが、さまざまなテキストを含む行を削除したいです。これはどのように達成されますか?私が試したことは次のとおりです。ありがとう

SCRIPT=/home/michael/client
RUNAS=michael
PIDFILE=/var/run/client.pid
LOGFILE=/var/log/client.log
PROG="Client Interface"

start() {
  if [ -f "$PIDFILE" ] && kill -0 $(cat "$PIDFILE"); then
    echo "$PROG already running" >&2
    return 1
  fi
  echo "Starting $PROG…" >&2
  local CMD="$SCRIPT   >&3 2>&1 & echo \$!"
  #local CMD="$SCRIPT  | grep -v 'Non-block' | grep -v 'Connecting with ssl...' >&3 2>&1 & echo \$!"
  cd `dirname $SCRIPT`
  su -c "$CMD" $RUNAS  3>>"$LOGFILE" >"$PIDFILE"
  #su -c "$CMD" $RUNAS  | grep -v "Non-block" | grep -v "Connecting with ssl..." 3>> "$LOGFILE" >"$PIDFILE"
  #su -c "$CMD" $RUNAS  3>> grep -v "Non-block" | grep -v "Connecting with ssl..." | "$LOGFILE" >"$PIDFILE"
  echo "$PROG started" >&2
}

ベストアンサー1

「分裂して征服する」

  1. タスクを完了するために単純なbashスクリプトを書くことはできますか?

  2. それでは試してください。

  3. それでは試してください。北面

  4. 最後に、init.dスクリプトで実行してみてください。

おすすめ記事