디렉토리를 삭제하는 스크립트가 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

자답입니다.
경로 문제였네요..
for D in $DIR_LIST do if [ -d $D ] <-- 경로가 불분명함으로 if문으로 진입하지 않음 "if [ -d $DIR/$D ]"로 수정 후 정상동작 then if [ $D -le $START_DATE ] then $RM -rf $DIR/$D <-- 이부분이 동작하지 않음. fi fi done댓글 달기