0

自動バックアップシステムを作成しています。週に1回、自動的にバックアップを作成して安全な電子メールに送信するCronジョブを実行する予定です(このようにして、サーバーが100万個に爆発した場合でも、ファイルの最新の完全バックアップが作成されます。すべての管理者がアクセスできます)

私はこの簡単な方法を見つけました:system('tar -cvzpf backup.tar.gz /path/to/folder');

それは私が必要とするものに対してほぼ完璧に機能します。唯一の問題は、バックアップに含めたくないディレクトリが1つあることです。このウェブサイトでは、ユーザーは自分のアバターをアップロードし、画像が保持されているディレクトリは、バックアップしたいディレクトリ内にあります。これをメールで送信しているので、フォルダを比較的小さく保つ必要があり、数千枚の画像が追加されます。このディレクトリを無視して他のすべてを圧縮するように関数に指示する方法はありますか?

4

3 に答える 3

2

find /path/to/folder -not -ipath '*baddirectory*' -print | xargs tar -cvzpf backup.tar.gzただし、使用するすべてのバイナリへのフルパスをPHPに渡すことを検討することもできます(上記のコマンド:find、xargs、およびtar)。

于 2013-01-02T23:52:14.843 に答える
1

タールマンから:

 tar --exclude='/path/to/folder/bad' 

だからあなたは得るでしょう:

system('tar -czpf --exclude='/path/to/folder/bad'  backup.tar.gz /path/to/folder');

コードの実行を監視していないため、v(冗長)を省略できます。

于 2013-01-03T00:17:18.517 に答える
0

マニュアルの場合と同様に、-exclude-tag-allPATTERNlongオプションに含まれるものから何かを除外できます。残念ながら、私はパターンについての良い例を見つけられませんでした。

次の除外が機能すると思います。

--exclude-tag-all=/path/foldernotinclude/.

「ディレクトリ」ファイルタグと一致する必要があるため。

幸運なことに、別のユーザーが使用するパターンについてコメントします。

于 2013-01-03T00:01:04.780 に答える