2009-03-20 2 views
0

У меня есть tar.gz с полным обновлением базы данных mysql, доступ к которому я могу получить через ftp.Удаленный tar.gz с локальным сервером sql run

Этот tar.gz обновляется ежедневно, и я хотел бы создать соединение php и/или mysql с этой учетной записью ftp, которая позволила бы мне запустить этот большой sql-запрос на моем локальном сервере mysql.

Любые мысли?

ответ

3

(я собираюсь выйти на конечности и предположим, что вы хотите сделать это из коробки UNIX какой-то ...)

Бросьте это:

#!/bin/bash 

wget      \ 
    -O -     \ 
    --ftp-user=username  \ 
    --ftp-password=password \ 
    "ftp://wherever/whatever.tar.gz" | tar xzOf - | mysql --user=whoever --password=secret dbname 

в файле (update-db.sh, например), то chmod это:

chmod 755 update-db.sh 

, то вы можете просто:

./update-db.sh 

всякий раз, когда вы хотите загрузить обновление. Или вы можете бросить его на работу cron (man crontab).

Edit: Добавлена ​​O флаг tar так, что он извлекает на стандартный вывод.

+0

, и я могу запустить исходный код tar.gz на моем сервере mysql одновременно? как? –

+0

извините, я не читал полный сценарий ... спасибо большое, попробовал gona try –

+0

Что значит «: плохой интерпретатор: нет такого файла или каталога в/bash» означает ??? есть идеи? –

1

Прежде всего PHP поддерживает чтение с FTP из коробки, просто используйте Еореп с указанным протоколом FTP, как так

<?php 
$handle = fopen("ftp://user:[email protected]/somefile.txt", "w"); 
?> 

, то вам нужно будет распаковать архив. Здесь File_Archive из груши хранилища придет очень удобно

+0

Это начало. Но есть ли способ запустить полный sql без извлечения? –

+0

Я так не думаю. В любом случае, с решением Шона я не понял, что вы будете использовать cron –