쉘 스크립트는 명령 행에서 작동하지만 cron에서는 작동하지 않습니다.


0

웹 사이트에 대기 또는 장애 조치 서버를 설정하고 있습니다. 이것의 일부는 프로덕션 서버에서 매일 밤 데이터베이스를 대기 서버로 ftp로 덤프하는 것입니다. 대기 서버에서 복사 데이터베이스를 제거하고 새로운 데이터 덤프를 가져옵니다. 오전 2시에서 2시 25 분 사이에이 작업을 수행하므로 기본적으로 두 데이터베이스가 동기화됩니다. (이 모든 작업을 수행하는 github 이유가 있지만 내 문제와 관련이 없으므로 세부 정보로 이동하지 않습니다.)이 작업을 수행하는 매우 간단한 스크립트가 있습니다.

############################
# clear data first - truncate all tables in mydatabase_db1 

echo "purging current standby database"

mysql -uUSER -pPASSWORD -Nse 'show tables' mydatabase_db1 | while read table; do mysql -uUSER -pPASSWORD -e "drop table $table" mydomains_db1; done 

echo 'Data purged from current database'>>/var/www/vhosts/standby.piccexcellence.com/import.log

#import data

echo "Importing production data dump"
mysql -uUSER -ppPASSWORD mydatabase_db1 < pe_data_dump.sql

echo 'Data imported into standby database' >>/var/www/vhosts/standby.piccexcellence.com/import.log
# remove todays data dump (not really, I'm still testing)

# rm /var/www/vhosts/standby.piccexcellence.com/pe_data_dump.sql >> /var/www/vhosts/standby.piccexcellence.com import.log 2>&1

echo 'Data dump file removed'>>/var/www/vhosts/standby.piccexcellence.com/import.log

###########################

셸에서 아무런 문제없이이 스크립트를 실행할 수 있습니다. 그러나 cron이 성공적으로 실행할 수는 없습니다. 이 크론 작업은 루트에 의해 설정되고 루트에 의해 실행되었습니다.

25      2      *       *       *       /var/www/vhosts/standby.piccexcellence.com/importData.sh

프로덕션 서버에서 데이터 덤프가 성공적으로 전달됩니다.

-rw-r--r--  1 admin_ftp psacln 621487802 Jun 26 02:00 pe_data_dump.

왜 cron이 이것을 실행하지 않을지 모르겠습니다.


1
여기에 실제 자격 증명 (사용자 이름 / 비밀번호)을 게시했다고 가정하므로 즉시 서버에서 변경하십시오.
slhck

파일이 실행 가능한지 확인 했습니까? ( chmod +x /var/www/vhosts/standby.piccexcellence.com/importData.sh)
slhck 2016 년

아니요, 실제 사용자 이름과 비밀번호가 아닙니다.
George

나는 그것을 알아. 덤프 파일의 전체 경로를 포함하지 않았습니다.
George

당신이 그들을 대체 때문에 가정 한 ADMINPASSWORD한 자리에 있지만 다른 없습니다. 솔루션을 포함 시켜서 아래 질문에 답하십시오.
slhck

답변:


0

좋아, 신경 쓰지 마라.

mysql -uUSER -ppPASSWORD mydatabase_db1 <pe_data_dump.sql

덤프 파일 이름 (예 : /var/www/vhosts/standby.piccexcellence.com/pe_data_dump.sql)에 전체 경로를 추가해야했습니다.

cron은 그것을 좋아했습니다 ....

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.