Crontab 에서 .sh 등록하고 실행하면 실행이 안되네요... 그냥 .sh 로 실행하면 되는데요

단순히 백업을 위한 sh 파일입니다.

#!/bin/sh
etc/profile
REMOTE_DIR=/home/aa/DNS
#LOCAL_FILES=DNS_backup_$(date +%Y%m%d).tar.gz
LOCAL_FILES=DNS_backup_20100509.tar.gz
HOST=
USER=
PASS=
LOG_NAME=/home/aa/ftptest.log
ftp -v -n <<EOF_FTP_CMD > $LOG_NAME
open $HOST
user $USER $PASS $
binary
prompt off
cd $REMOTE_DIR
mput $LOCAL_FILES
$@
quit
EOF_FTP_CMD
cat $LOG_NAME
rm -rf $LOG_NAME

위 sh 파일을 그냥 실행하면 실행이 됩니다. ftp 서버로 파일도 전송이 되는데요.
crontab 에 등록해서 실행하면 실행이 안됩니다.

두번째 줄의 etc/profile 내용도 인터넷에서 검색해보니 실행시 설정값을 가져오지 못해서
그럴수도 있다고 넣어보라고 나온거 따라서 넣어보았습니다.
"/etc/.profile" 도 해보고 "/root/profile" 도 넣어보고 했습니다만 다 안됩니다.

실행시 무슨 애러 메세지가 나오나 싶어서
crontab 끝에 ">> /home/aa/ftp.log 2>&1" 이부분 추가해서 로그 받아봤더니
"/bin/sh: root: not found" 이런 로그만 잔뜩 쌓고있습니다.

혹시 해결방안에 대해서 알고 계신분의 도움을 바라고 있습니다.

긴글 읽어주셔서 감사합니다.

우분투는 아직 여분의 pc가 없어서 눈팅만 하는 유저입니다.
아… 회사에서 개발서버로 ubuntu-server사용중입니다.

etc/profile ==> /etc/profile
근데 이게 필요한가요? 필요 없지 싶은데…

저는 ftp 백업시 ncftp를 사용합니다. 편리하죠.

#/bin/sh
cd /backup/
ncftpput -u id -p pass 192.168.1.9 /backup find ./* -mtime -1 -name '*.tar.gz'

1일 이내 변경된 *.tar.gz 파일을 ftp로 백업입니다.

처음 올리고 찜찜해서 확인해 보니 에러가 나서 확인후 수정했습니다. 8-)

처음처럼님 덧글 감사합니다.

/etc/profile 이 부분은 하도 안되기에 제가 인터넷 검색하다가 나온부분이라 넣어봤습니다.
하지만 아예 다른 방법으로 백업하는 방법도 좋겠네요. :D
알려주신거 테스트 해봐야겠습니다.

하지만 위 문제의 해결법도 알고 싶으니 혹시 도움주실분은 덧글 주시면 감사합니다. :D

[quote="raisia":22wzcmrh]
실행시 무슨 애러 메세지가 나오나 싶어서
crontab 끝에 ">> /home/aa/ftp.log 2>&1" 이부분 추가해서 로그 받아봤더니
"/bin/sh: root: not found" 이런 로그만 잔뜩 쌓고있습니다.
[/quote:22wzcmrh]

/bin/sh 가 없다? 가능한 건지 모르겠지만요…

#!/bin/bash 로 수정해보세요.
리눅스는 bash가 기본shell 이니깐요.

$ env|grep -i shell
SHELL=/bin/bash

[code:2w3ptgm5]prompt off
cd $REMOTE_DIR
[/code:2w3ptgm5]

사이에 lcd $SOURCE_DIR 을 추가해보시는거나

[code:2w3ptgm5]
LOCAL_FILES=DNS_backup_20100509.tar.gz
[/code:2w3ptgm5]
를 전체경로로 바꾸고 한번 해보세요.

어디까지나 제 짐작입니다만 put할 파일을 찾지 못해서 생기는 문제일듯…

참고로
#!/bin/sh는 그냥 두셔도 될듯합니다.
또한 /etc/profile 부분은 없어도…

추가로

[code:2w3ptgm5]cat $LOG_NAME
rm -rf $LOG_NAME
[/code:2w3ptgm5]
cat은 의미가 없고 로그를 보시려면 rm 은 안하시는게…