2012-01-16 22 views
1

私たちのウェブサイトは毎晩毎日別々のサーバーにバックアップしていますが、翌日にファイルをダウンロードするときにファイルをダウンロードするのに時間がかかります約36,000以上の画像)。これをダウンロードするにはかなりの時間がかかり、私たちのネットワークを使用する他の人のスピードにも影響しますので、夜中に試してみるのが理想的です。PHPを使用してFTP経由でフォルダをアップロード

バックアップが実行されているサーバがCpanelを実行していて、PHPファイルをCronジョブとして実行するのがかなり簡単です。

私は次のことを仮定していますが、間違っていると私に教えてください。

1)バックアップが実行されているサーバは、Cpanelを実行します。真夜中にCronジョブとして動作するようにPHPスクリプトを設定するのは難しいことではないようです。

2)FTP機能を利用してPHPスクリプトを展開し、別のサーバーに接続し、このcronジョブを使用してこれらのファイルのバックアップを開始することができます。

3)WindowsプラットフォームでXamppを実行しています。それはそれの一部としてFilezillaを持っているので、私はそれが着信FTP接続を受け入れることができるはずだと仮定しています。

4)全体的に、毎晩実行されるスクリプトをバックアップサーバーに展開し、Xamppを実行しているローカルコンピュータにファイルを送り返すことができます。

これが私の推測です。私は最初のハードルで立ち往生している。私は私たちのローカルコンピュータ上で実行され、実行時にバックアップサーバーに指定されたフォルダを送信するスクリプトを作成しようとしましたが、私が見つけることができるように見えるのは、単一のファイルに関連するスクリプトです。私はPHPの経験をいくつか持っていますが、FTP機能に触れていないうちに問題が発生しています。私はスタックオーバーフローで他の例を試してみましたが、成功しませんでした。(

私はちょうどリモートIPにフォルダをアップロードすることができる最も単純な形式のスクリプトを探しています。

+2

ジョブを設定してすべてのファイルをアーカイブに入れて、36,000ではなく1つのファイルを転送するだけで済みます。 – jprofitt

+0

ローカルのXAMPPサーバーにネット経由で接続できますか?私のISPはそれをブロックする。 – ThatOtherPerson

+0

@jprofitt - それは行く方法かもしれないが、それは1つの大きなファイルになるだろうし、接続が壊れたり、転送が失敗したら、私は何も残されないだろうか?それは何かを調べることです。 –

答えて

1

FTP経由で小さなファイルを転送するとかなりのオーバヘッドが発生します。見たジョブはローカルネットワーク上で5倍長くなります。ファイルをzipや

exec()を使用してコマンドライン(または好きな圧縮ツール)からzipを実行することができます。その後、ftp prで送信できます(あなたは1つのファイルを転送する方法を見つけたと言っています)。バックアップのために、ファイルを圧縮すると処理が簡単になりますが、圧縮解除が必要な場合は、他のマシンにジョブをセットアップしてファイルを解凍することができます。

+0

私はそれらを解凍する必要はないので、私はそれらを必要としないので、これを自動化する必要はないでしょう。したがって、うまくいくでしょう。私は、PHPを使ってリモートフォルダの圧縮を自動化する方法がわからないので、このタスクは私のオリジナルの質問よりも複雑になりますか?ファイルをダウンロードする時間を除いて、それは本当に私たちには問題ではなく、夜間にインターネット接続が使用されていないときに実行されている場合、それは私たちにとっては問題ありません。 –

+0

begin()zipへの初心者ガイドへのリンクがあれば、私はそれを感謝します。 –

+0

execはコマンドを実行できるphpコマンドです.zipは標準のlinuxコマンドです。私は両方のリンクを追加しました。 – MrGlass

関連する問題