2

データベースのバックアップ用のディレクトリと、データベースのバックアップを毎日作成する PHP スクリプトがあります。しかし、1 か月ほどすると、バックアップ ディレクトリに 30 個のファイルが作成されます。ディレクトリに常に 10 個のバックアップ ファイルが存在するように、古いバックアップ ファイルを毎日削除する PHP スクリプトを作成するにはどうすればよいですか? 新しいバックアップが保存されると、最も古いバックアップ ファイルが削除されます。

4

3 に答える 3

3

バックアップ ディレクトリを読み取り、30 日より古いすべてのファイルを削除できます。ただし、私は個人的にファイルを動的に作成しており、すべてのファイルは次の形式になっています。

database_dump_DD-MM-YYYY_HH:MM:SS.sql

したがって、ファイル名を考慮してファイルを削除できます。ファイルの形式がわからないので、次のように削除できます。

$files = readdir(opendir('backups')); //read directory for files

foreach($files as $file){
    if(filemtime($file) > (time() + 2592000)){ //check if the file is older than 30 days
        unlink($file); //delete
    }
}
于 2012-09-22T11:06:11.303 に答える
2

PHP バックアップでバックアップを作成した後、ディレクトリをループして、最も古いバックアップ ファイルを削除します。

$files = glob('backupfolder/*.bak');
if(count($files) > 10)
  foreach($files as $file)
    if(time() - filectime($file) > 10 * 24 * 60 * 60)
      unlink($file);
于 2012-09-22T10:20:20.803 に答える
0

なぜPHPを使用する努力をするのですか? findコマンドとcronがそのトリックを実行します

于 2012-09-22T10:46:59.927 に答える