O Shellscript funciona a partir da linha de comando, mas não com o cron

0

Estou configurando um servidor em espera ou failover para o nosso site. Parte disso é para um despejo noturno do banco de dados do servidor de produção, ftp para o servidor em espera. Uma vez no servidor em espera, limpo o banco de dados de cópias e, em seguida, importo o novo despejo de dados. Eu faço isso entre 2:00 e 2:25, então, essencialmente, os dois bancos de dados estão em sincronia. (Existe uma razão para o github fazer tudo isso, mas eu não vou entrar em detalhes, pois isso não afeta meu problema). Eu tenho um script muito simples para fazer isso:

############################
# 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

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

Eu posso executar este script a partir do shell sem nenhum problema. Eu não posso no entanto obter cron para executá-lo com sucesso. Esta tarefa do cron foi configurada por raiz e executada por raiz.

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

O despejo de dados é entregue com sucesso a partir do servidor de produção:

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

Eu não entendo porque o cron não executará isso.

    
por George 26.06.2017 / 19:47

1 resposta

0

Ok, deixa pra lá, entendeu.

mysql -uUSER -ppPASSWORD mydatabase_db1 < pe_data_dump.sql

Eu precisava adicionar o caminho completo ao nome do dumpfile, por exemplo, /var/www/vhosts/standby.piccexcellence.com/pe_data_dump.sql

o cron gostou disso ....

    
por 27.06.2017 / 14:15