출력을 로그 파일과 콘솔로 보내는 방법은 무엇입니까?

출력을 로그 파일과 콘솔로 보내는 방법은 무엇입니까?

출력에 관해서는 모든 스크립트 위에 두곤 했습니다. docker 중지 및 시작은 예상대로 작동하며 로그 파일에는 필요한 내용이 포함되어 있지만 콘솔에도 출력이 없습니다. 내가 여기서 무엇을 놓치고 있는 걸까요?

#!/bin/sh
LOGFILE="/mnt/user/HardHomeSystemData/SysLogs/PlexClear.log"
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>$LOGFILE 2>&1

#clear plexes codecs for EAC3 issues, stop the docker, rm codecs, restart docker
docker stop plex
rm -r /mnt/user/appdata/plex/Library/Application\ Support/Plex\ Media\ Server/Codecs/*
docker start plex

답변1

어떻게 해야할지 모르겠지만 shbash에서는 이것을 할 수 있습니다프로세스 교체, tee원하는 작업을 수행해야 합니다.

#!/usr/bin/env bash

logfile=logfile.txt

exec 3>&1 4>&2

trap 'exec 2>&4 1>&3' 0 1 2 3

exec > >(tee -a "$logfile") 2>&1  ##: Print to stdout and logfile.
  • 당신은 또한 볼 수 있습니다기록

관련 정보