web-dev-qa-db-ja.com

ステータスのアーカイバスクリプトを探しています

共有ホスティングアカウントを所有しており、Webサイト全体からZip(または別の種類のアーカイブ)ファイルを作成したい。

ホスティングサポートを依頼しましたが、彼らはこれを行いません。

圧縮状態を確認できるフォルダからアーカイブを作成するphpまたはAsp.Netスクリプトはありますか?.

私のサーバーには、Windows Server 2003とPlesk 8.6コントロールパネルを備えたIIS6があります。

1
Mahdi Ghiasi

FTP経由ですべてのファイルをダウンロードしてから、コンピューターを使用して.Zipファイルに入れることはできませんか?それがファイルを取得する唯一の方法のようです。 cPanelをお持ちの場合、サイトのバックアップを.Zip形式で既にダウンロードするツールがあると思います。

1
ionFish

ほとんどのマネージドホスティングプロバイダーは、毎日バックアップを行います。いずれかのバックアップを依頼することができるはずです。

または、* nixサーバーを使用している場合は、tarを使用して、アプリルートのtar.gzアーカイブを作成できます。アーカイブに2〜3秒しかかからない場合、進行状況バーにはあまり意味がありません。時間がかかる場合は、--list/--index-fileまたは--verboseオプションを使用して、アーカイブ中のファイル/ディレクトリを表示できます。または、--checkpointまたは--block-numberを使用して、処理中のレコード/ブロック番号を確認できます。

ただし、アップロード/ダウンロードとは異なり、圧縮の進行状況は進行状況の割合を正確に表示するほど線形ではありません。せいぜい pvを使用して、処理された入力バイト数と入力サイズの合計を追跡します 、ただし、進行状況バーは5秒で0%から90%になり、その後5分かかります90%から100%。

また、進行の割合が実際に重要であるというわけではありません。圧縮を一時停止またはキャンセルすることを決定するようなものではありません。進行中であり、凍結していないことを知ることがより重要です。 --listスイッチを使用して、処理済みファイルのライブ出力を提供することにより、これを簡単に実現できます。 PHPとJSの数行でこれをすべて達成できます。

より正確な進行状況の表示が必要な場合は、前回サイトをアーカイブするのにかかった時間を記録し、現在のディレクトリサイズが与えられた場合にかかる時間を予測する必要があります。ファイルの種類とデータの特性の分布に大きな変化がないと仮定すると、かなり正確な推定値を取得できる可能性があります。または、さらに一歩進んで、特定のファイルタイプの圧縮特性(速度/比率)を特徴付け、それとアプリのファイルタイプ分布を使用して進行状況を計算することもできます。

0
Lèse majesté

ディレクトリからtar.gzファイルを作成するWebサイトのサンプルアプリケーションで、VB.NET(またはC#)でSharpZipLibを使用しました。

http://wiki.sharpdevelop.net/GZip-and-Tar-Samples.ashx

プログレスバーはありませんが、tar.gzファイルのサイズをftpで確認することで、完了しているかどうかを確認できます。

0
Mahdi Ghiasi