2013-01-04 139 views
1

我查看了本網站和其他人以找到一個簡單的php腳本,可以使用cron在目錄中刪除X天以上的文件。似乎有很多,但沒有爲我工作。我在一個共享服務器(G C Solutions)上,主機很棒,但我所在的軟件包不包含shell訪問,所以我不認爲我可以使用.sh或bash命令。使用PHP腳本和cron刪除x天以上的目錄中的文件

我有一個整潔的php腳本來做我的數據庫的mysqldump,將它複製到我家區(/ home/mysite/backups)中的一個目錄並通過電子郵件發送給我一份副本 - 這一切都正常。現在我試圖運行一個腳本,只需在備份目錄中留下5天的備份。我現在想這個腳本: -

<?php 


$dir = opendir('/home/mysite/backups"); 
if ($dir) { 

     // Read directory contents 
    while (false !== ($file = readdir($dir))) { 

     // Check the create time of each file (older than 5 days) 
     if (filemtime($file) < (time() - 60*60*24*5)) { 
      unlink($file); 
     } 
    } 
} 
?> 

它不工作,我的cron設置字符串是: - PHP -q /home/mysite/public_html/scripts/delold6.php

我已經嘗試從html_public上面運行它,沒有喜悅,備份目錄權限設置爲755,當我的備份腳本將轉儲複製到此目錄時,文件設置爲644.我試圖將這些設置爲777 - 沒有喜悅。任何人都可以幫忙* find/path/to/your_directory -mtime +5 -exec rm -f {} \; *不能在cron中運行。

+0

您是否嘗試過,而不是最終的IF來放置'echo $ file。「\ r \ n」;'?你看到所有文件的列表嗎? –

+2

你在複製並粘貼這個問題時遇到了php錯誤或錯誤@ opendir('/ home/mysite/backups「);' – Prisoner

+0

'備份'文件夾的所有者和組是什麼? – Sahal

回答

2

你可以用bash來做到這一點。無需PHP:

find /your/directory -type f -mmin +720 -exec rm {} \; 

--mmin參數以分鐘爲單位

文件年齡如果你是一個共享的服務器上你還可以嘗試用了shell_exec(),大多數託管允許該

執行此

你忘了跳過'。'和'..'

相關問題