2017-12-06 2 views
-2

limux CentOS7을 사용하여 .tar 파일을 만든 다음 S3 버킷으로 파일을 보낼 백업 스크립트를 실행하고 있습니다.Linux 백업 스크립트가 실행되지 않습니다

그러나 cornjob을 실행하면 스크립트의 절반 만 실행되고 .tar 파일이 생성되지만 S3에 업로드되지는 않습니다.

백업 스크립트;

TIME=`date +%b-%d-%y`   # This Command will add date in Backup File Nam   e. 
FILENAME=backup-$TIME.tar.gz  #define Backup file name format. 
SRCDIR=/opt      # Location of Important Data Directory (Source of    backup). 
DESDIR=/home/centos/backupfile # Destination of backup file. 
tar -cvf $DESDIR/$FILENAME $SRCDIR 
aws s3 cp /home/centos/backupfile/$FILENAME s3://backup/ 

cronjob은;

30 7 * * * /home/centos/backupfile/runbackup 

잘 작동하고 S3 버킷에 파일을 전송 ./runbackup 나는 실행하여 수동으로 백업 파일을 실행합니다.

.tar 파일의 사용 권한을 검사했는데 작동하지 않는 이유는 확실하지 않습니다. 나는 cronjob 설정을 변경하지만 행운을 빌어 파일 위치를 이동 시키려고 시도했다.

아이디어가 있으십니까?

답변

1

명령을 실행하는 사용자를 지정하려고 시도 했습니까? 이와 같이 :

# Example of job definition: 
# .---------------- minute (0 - 59) 
# | .------------- hour (0 - 23) 
# | | .---------- day of month (1 - 31) 
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
# | | | | | 
# * * * * * user-name command to be executed 
30 7 * * * root /home/centos/backupfile/runbackup 
0

나는 당신의 버킷이 실제로 "백업"이름이 아니라고 가정하고 있습니다.

수동으로 실행하면 어떤 사용자로 실행합니까? cron에서 실행하는 사용자와 동일한가요? 또한 해당 사용자의 프로필을 소싱하고 있습니까 (source ~/.profile 또는 그 유사)? 그렇지 않은 경우 대화식으로 실행할 때 스크립트에 필요한 환경 변수가 누락되었을 수 있습니다. 확인해야 할 또 다른 사항은 자격 증명을 S3에 전달하는 방법입니다. 예를 들어 수동으로 실행하면 해당 사용자가 AWS 자격 증명 및 프로필 등을 갖거나 IAM 역할을 사용하고 있습니까?

그리고 마지막으로 유효한 스크립트의 실행 파일 경로를 확인하십시오. 예 : /usr/local/bin/aws.

디버깅의 한 가지 방법은 파일에 로깅 명령문을 작성하여 조금 더 자세히 검사 할 수 있도록하는 것입니다.

+0

다른 버킷 이름입니다. 루트가 아닌 centos로 실행합니다. aws cli를 구성하면 AWS 신임 정보가 저장됩니다. – user3013325

+0

/home/centos/backupfile/runbackup : 행 6 : aws : 명령을 찾을 수 없습니다. – user3013325

+0

aws 실행 파일의 전체 경로를 입력하는 방법은 무엇입니까? – smcstewart

0

스크립트의 시작 부분에서 키를 환경 변수 AWS_ACCESS_KEY_ID (AWS 액세스 키) 및 AWS_SECRET_ACCESS_KEY (AWS 비밀 키)로 설정해보십시오.

0

어제 (smscstewart)의 도움으로 답변했습니다.

다음과 같은 라인이 추가되었습니다.

소스의 $ HOME/.bash_profile을 /usr/지방/빈/AWS S3 CP/홈/CentOS는/backupfile/$ 파일 이름 S3 : // 백업/

관련 문제