2014-02-18 25 views
1

我們有一臺RHEL Linux服務器,運行兩個程序,將其備份複製到另一臺運行Ubuntu Linux的服務器上。在cron作業中運行的「清理」腳本應該會刪除這些超過十天的備份,但它不起作用。事實上,即使手動運行它,我也無法使它工作。腳本是如下─清理Ubuntu服務器上的備份文件

#!/bin/bash 
# bash shell script to cleanup jira backup files 
# The script will remove files that are 10 days or older 
# 
# Remove jira backup files 
for FILE in `find /usr/backup/jira -mtime +10` 
do echo $FILE 
/bin/rm -f $FILE 2>/dev/null 
done 

當我運行在命令prompt- ./cleanup_jira.sh什麼都不會發生這個腳本;我只是轉到命令提示符。我有root擁有所涉及的所有文件夾和文件。這是在幾年前由不同的用戶運行的,但顯然還沒有工作過一段時間,所以我修改了所有這些以root身份運行。當我嘗試運行它時,我沒有收到根郵件消息。

任何想法請回應。

感謝您的時間,

約翰·埃利斯

回答

1

無需for循環:

find /usr/backup/jira -type f -mtime +10 -exec rm {} \; 

如果這是不工作的樣子在指定的目錄是否存在的舊文件比10天。

+0

也許爲'rm'添加'-v'作爲反饋。 (或者用'-print -delete'代替'-exec ...'。) – Biffen

+0

嗯,我很尷尬地說我找出了問題;爲了測試的目的,我將一些備份文件複製到了我的個人電腦上,然後當我將它們複製回來時,更新了「上次修改時間」的日期和時間,因此腳本沒有看到它們像實際上一樣陳舊。謝謝你的回覆,更好的腳本和建議!我唯一的防範是我不是一個scripter,並且只有很少的linux經驗,直到我接受這份工作。 – user3285143