tee를 사용하여 디렉터리 내용을 나열하고 파일로 리디렉션

tee를 사용하여 디렉터리 내용을 나열하고 파일로 리디렉션

특정 프로세스가 실패하는 이유를 이해하는 데 어려움을 겪고 있습니다. 기본적으로 스크립트에는 디렉터리 내용을 나열하고 tee출력을 두 파일로 리디렉션하는 줄이 있습니다.

retval=`ls -1 $SOURCE_DIR/${2}/${3} | tee ${COPY_LIST} ${MOVE_LIST}`

명령은 명령줄에서 제대로 실행되며 두 파일이 모두 채워집니다(약 8K 줄). 이상하게도 cron을 통해 스크립트는 단지 "정지"되고 파일을 확인하여 동일한 디렉터리의 부분 목록(약 3,000개 레코드)만 생성합니다. 마지막 줄도 부분적으로 작성되었으며 완전히 작성되지 않았습니다. 문제가 내부에 있는지 확실하지 않습니다 tee.

    #!/bin/ksh
#DAILY RUN

#DEBUG_SCREEN=ON
LOG_FILE=/daily_archive_v2_`date +%d-%m-20%y`.log
. /stdlib.ksh

##the datetimestamp for the file that contains the list of files to be archived
LIST_TIMESTAMP=`perl -e 'use POSIX qw(strftime); print strftime "%Y%m%d_%H%M",localtime(time());'`

Month_value=`date +%m`
typeset -i Prev_Month_value_tmp=`date +%m`
Prev_Month_value_tmp=${Prev_Month_value_tmp}-1
Year_value=`date +%y`

if [[ "${Month_value}" -eq 01 ]] then
  echo "Month is January"
  typeset -i Prev_Year_value=${Year_value}-1
Prev_Month_value_tmp=12
else
  Prev_Year_value="${Year_value}"
fi

if [[ "${Prev_Month_value_tmp}" -le 10 ]] then
  echo "Prev month is less than 10"
  Prev_Month_value="0${Prev_Month_value_tmp}"
else
  Prev_Month_value="${Prev_Month_value_tmp}"
fi
echo Previous Month Value = $Prev_Month_value

echo LOGFILE NAME SET TO $LOG_FILE
echo "DAILY REPORT [Archiving Month ${Month_value}]"
log "DAILY REPORT [Archiving Month ${Month_value}]"
log_line
SOURCE_DIR=/test
DEST_DIR=/Archives/month_"${Month_value}"_20"${Year_value}"
BACKUP_DIR=/vault/month_"${Month_value}"_20"${Year_value}"
mkdir -p $DEST_DIR
mkdir -p $BACKUP_DIR

COPY_LIST="${LIST_TIMESTAMP}_output_archiving.copy.lst"
MOVE_LIST="${LIST_TIMESTAMP}_output_archiving.move.lst"

#PARAMS : NAME, DIR, MASK
function move_files
{
  DEST_DIR=/month_"${Month_value}"_20"${Year_value}"
  FILES_COUNT=`ls -1 $SOURCE_DIR/$2/$3 | wc -l`
  if [ "${FILES_COUNT}" != "0" ]; then
    log "MOVE $FILES_COUNT $1 FILES $SOURCE_DIR/$2/$3 to $DEST_DIR/$2"
    log "MOVE $FILES_COUNT $1 FILES $SOURCE_DIR/$2/$3 to $BACKUP_DIR/$2"
    mkdir -p $DEST_DIR/$2
    mkdir -p $BACKUP_DIR/$2
retval=`ls -1 $SOURCE_DIR/${2}/${3} | tee ${COPY_LIST} ${MOVE_LIST}`
#echo retval=`ls -1 $SOURCE_DIR/${2}/${3} | tee ${COPY_LIST} ${MOVE_LIST}`
#       while read line
#         do
#         CURRENT_FILE=`echo $line`
#         #echo ${CURRENT_FILE}
#         cp -p ${CURRENT_FILE} $BACKUP_DIR/$2
#         mv ${CURRENT_FILE} $DEST_DIR/$2
#         log "File ${CURRENT_FILE} copied to $BACKUP_DIR/$4/"
#         log "File ${CURRENT_FILE} moved to $DEST_DIR/$4/"
#         done < ${COPY_LIST}
  else
    echo Nothing to move
  fi
#        gzip  $DEST_DIR/$2/*
#         gzip $BACKUP_DIR/$2/*
}

move_files  "TESTDIR" "dir2/test" "*.txt"

\rm -f $RESULTS_FILE
\rm -f $FILE_LIST
#rm -f $LOG_FILE

관련 정보