웹 사이트에 대기 또는 장애 조치 서버를 설정하고 있습니다. 이것의 일부는 프로덕션 서버에서 매일 밤 데이터베이스를 대기 서버로 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
파일이 실행 가능한지 확인 했습니까? (
—
slhck 2016 년
chmod +x /var/www/vhosts/standby.piccexcellence.com/importData.sh
)
아니요, 실제 사용자 이름과 비밀번호가 아닙니다.
—
George
나는 그것을 알아. 덤프 파일의 전체 경로를 포함하지 않았습니다.
—
George
당신이 그들을 대체 때문에 가정 한
—
slhck
ADMIN
과 PASSWORD
한 자리에 있지만 다른 없습니다. 솔루션을 포함 시켜서 아래 질문에 답하십시오.