디렉토리를 삭제하는 스크립트가 crontab으로 실행될때는 삭제되지 않습니다.
아래 스크립트에서 원하는 일자 이전 디렉토리를 삭제하고 싶습니다.
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170802/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170803/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170804/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170805/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170806/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170807/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170808/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170809/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170810/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170811/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170812/ ________ 5일전 디렉토리명은 일괄 삭제
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170813/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170814/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170815/
drwxr-xr-x 2 root root 4096 2017-08-17 10:39 170816/
drwxr-xr-x 2 root root 4096 2017-08-17 10:37 170817/
문제는 직접실행하면 잘 되는데 crontab에 걸어두면 삭제되지 않습니다.
무슨 문제일까요?
고수님들의 한수 부탁드립니다.
OS: Ubuntu Server 16.04.3
#!/bin/sh ECHO=/bin/echo RM=/bin/rm MV=/bin/mv CP=/bin/cp MKDIR=/bin/mkdir TODAY=`date +"%y%m%d"` DIR=/home/tmp DAYS=5 DIR_LIST=`ls $DIR` START_DATE=`date -d "$DAYS days ago" +"%y%m%d"` for D in $DIR_LIST do if [ -d $D ] then if [ $D -le $START_DATE ] then $RM -rf $DIR/$D <-- 이부분이 동작하지 않음. fi fi done
혹시 테스트를 위해 디렉토리를 만드는 스크립트를 첨부합니다.
#!/bin/sh RM=/bin/rm MV=/bin/mv CP=/bin/cp MKDIR=/bin/mkdir ECHO=/bin/echo TODAY=`date +"%y%m%d"` DIR=/home/tmp DAYS=10 START_DATE=`date -d "$DAYS days ago" +"%y%m%d"` for i in $(seq $START_DATE $TODAY) do $MKDIR $DIR/$i done
자답입니다.
경로 문제였네요..
댓글 달기