我有一個bash腳本,它在特定目錄中每小時創建一個mysqldump備份。Bash - 按日期/文件名刪除文件
備份文件的文件名包括日期和時間按以下模式:
backupfile_<day>-<month>-<year>_<hour>.sql.gz
,並在此澄清是一些示例文件名:
backupfile_30-05-2012_0800.sql.gz
backupfile_01-06-2012_0100.sql.gz
backupfile_05-06-2012_1500.sql.gz
會有人幫我創建一個腳本,將通過目錄中的所有文件循環,然後刪除文件出現以下內容:
- 保持備用小時備份時間早於一天
- 保留兩週以上的備份超過一週
- 保留每日備份超過一個月。
我有腳本中的開端:
#!/bin/bash
cd /backup_dir
for file in *
do
# do the magic to find out if this files time is up (i.e. needs to be deleted)
# delete the file
done
你應該使用find實用程序,man find。 – morphles
可能的重複:http://stackoverflow.com/questions/6099795/bash-script-to-find-old-files-based-off-date-in-file-name和http://stackoverflow.com/questions/ 3676810/bash的 - 刪除 - 基於上文件日期戳。 –