Web サイトの開発と保守のプロセスでは、ファイルのアップロード、ダウンロード、バックアップ管理に FTP サーバーがよく使用されます。ただし、時間の経過とともに、役に立たない古いファイルがサーバー上に大量に蓄積され、貴重なストレージ容量が占有されてしまいます。システムを整理整頓してパフォーマンスを向上させるには、古いファイルを定期的に削除する必要があります。この記事では、PHP スクリプトを使用して FTP サーバーに自動クリーニング タスクを実装する方法を紹介します。
FTP (ファイル転送プロトコル) は、インターネット上で最も一般的に使用されているファイル転送プロトコルの 1 つです。 FTP クライアントまたはスクリプト プログラムを通じて、リモート サーバー上のファイルのアップロード、ダウンロード、削除などの操作を実行できます。古いファイルを自動削除する機能を実装するには、まずPHPを使用してFTPサーバーに接続し、ファイル情報を取得する必要があります。
PHP は、FTP サーバーに簡単に接続して対話できる組み込みの FTP 関数ライブラリを提供します。例は次のとおりです。
$ftpServer = 'ftp.example.com';
$ftpUsername = 'username';
$ftpPassword = 'password';
$connId = ftp_connect($ftpServer);
$loginResult = ftp_login($connId, $ftpUsername, $ftpPassword);
if ($connId && $loginResult) {
// 接続成功
} else {
// 接続に失敗しました,エラーの処理
}上記のコードでは、接続の確立に ftp_connect() が使用され、ログイン認証に ftp_login() が使用されます。次のステップにスムーズに進む前に、サーバー アドレス、ユーザー名、パスワードが正しく入力されていることを確認してください。
接続が成功したら、FTP サーバーのディレクトリ内のファイル リストを取得する必要があります。 ftp_nlist() 関数を使用できます。
$ftpDirectory = '/path/to/directory/';
$fileList = ftp_nlist($connId, $ftpDirectory);
foreach ($fileList as $file) {
echo $file . '<br>';
}上記のコードは、指定されたディレクトリ内のすべてのファイルの名前を出力し、後続のフィルタリングおよび削除操作の基礎を提供します。
次に、ファイルの変更時刻に基づいて古いファイルかどうかを判断し、削除操作を実行します。サンプルコードは次のとおりです。
$ftpDirectory = '/path/to/directory/';
$daysAgo = 30; // 消去30数日前のファイル
$fileList = ftp_nlist($connId, $ftpDirectory);
foreach ($fileList as $file) {
$fileTimestamp = ftp_mdtm($connId, $file);
$fileTimestamp = date_create_from_format('YmdHis', $fileTimestamp);
$currentTimestamp = date_create();
$diff = date_diff($currentTimestamp, $fileTimestamp);
$elapsedDays = $diff->format('%a');
if ($elapsedDays > $daysAgo) {
ftp_delete($connId, $file);
echo '已消去文件:' . $file . '<br>';
}
}このスクリプトは、指定されたディレクトリ内のファイルを走査し、各ファイルの変更日を特定し、設定された日数より古い古いファイルを自動的に削除します。
スクリプトを定期的に実行するには、Linux システムで cron スケジュールされたタスクを使用できます。ターミナルで次のコマンドを実行して、crontab を編集します。
crontab -e次に、次のルールを追加します。
0 0 * * * php /path/to/script.php上記のコマンドは、システムが毎朝 1 回 PHP スクリプトを自動的に実行して、古いファイルを自動的にクリーンアップする機能を実現することを意味します。
この記事の導入を通じて、PHP スクリプトを使用して、FTP サーバー上の古いファイルを定期的に削除する完全なプロセスを実装する方法を学びました。 FTP サーバーへの接続、ファイル リストの走査、ファイル時間の特定から cron タスクの設定に至るまで、すべてのステップが重要です。この方法により、サーバーのスペースを効果的に解放し、パフォーマンスを最適化し、手動メンテナンスの作業負荷を軽減できます。これは、毎日大量のファイルを管理する Web サイトやアプリケーションにとって実用的で効率的なソリューションです。