웹사이트 개발 및 유지 관리 과정에서 FTP 서버는 파일 업로드, 다운로드 및 백업 관리에 자주 사용됩니다. 그러나 시간이 지남에 따라 쓸모없는 오래된 파일이 서버에 쌓여 귀중한 저장 공간을 차지하게 됩니다. 시스템을 깔끔하게 유지하고 성능을 향상하려면 오래된 파일을 정기적으로 정리해야 합니다. 이 기사에서는 PHP 스크립트를 사용하여 FTP 서버에서 자동 정리 작업을 구현하는 방법을 소개합니다.
FTP(파일 전송 프로토콜)는 인터넷에서 가장 일반적으로 사용되는 파일 전송 프로토콜 중 하나입니다. 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위 명령은 시스템이 매일 아침 자동으로 PHP 스크립트를 실행하여 오래된 파일을 자동으로 정리하는 기능을 실현한다는 것을 의미합니다.
이 기사의 소개를 통해 우리는 PHP 스크립트를 사용하여 FTP 서버에서 오래된 파일을 정기적으로 삭제하는 전체 프로세스를 구현하는 방법을 배웠습니다. FTP 서버에 연결하고, 파일 목록을 탐색하고, 파일 시간을 결정하고 cron 작업을 설정하는 것까지 모든 단계가 중요합니다. 이 방법을 사용하면 서버 공간을 효과적으로 확보하고 성능을 최적화하며 수동 유지 관리 작업량을 줄일 수 있습니다. 매일 대량의 파일을 관리하는 웹사이트나 애플리케이션을 위한 실용적이고 효율적인 솔루션입니다.