超过一定时间的文件的Linux shell脚本
我有一个MySQL数据库的备份,备份文件的名称中有时间和日期,如下所示:超过一定时间的文件的Linux shell脚本,shell,Shell,我有一个MySQL数据库的备份,备份文件的名称中有时间和日期,如下所示: daily_amavisd_2016-10-01_05h28m_Saturday.sql.gz daily_amavisd_2016-10-02_05h28m_Sunday.sql.gz daily_amavisd_2016-10-03_05h28m_Monday.sql.gz 我需要一个脚本来检查/backup/amavisd/daily文件夹中最旧的文件是否不超过一周。如果超过一周,它应该给我状态备份失败,如果不
daily_amavisd_2016-10-01_05h28m_Saturday.sql.gz
daily_amavisd_2016-10-02_05h28m_Sunday.sql.gz
daily_amavisd_2016-10-03_05h28m_Monday.sql.gz
我需要一个脚本来检查/backup/amavisd/daily文件夹中最旧的文件是否不超过一周。如果超过一周,它应该给我状态备份失败,如果不超过一周,它应该给我状态备份确定
有人能帮我使用shell脚本吗?如果您想打印文件名和状态,这可以帮助您
#!/bin/bash
find /backup/amavisd/daily/ -name '*.gz' -exec bash -c '
file_date=$(echo $1|cut -f 3 -d '_');
start_date=$(date +"%Y-%m-%d" -d "-7 days");
if [[ "$file_date" > "$start_date" ]]; then
echo "$1: backup OK"
else
echo "$1: backup failed"
fi' -- {} \;
Eg
非常感谢。但我只需要在最后1个状态OK或NotOK,因为我将在其他软件中使用该脚本。如果一个文件超过1周,则状态为NOT OK。
user@host:/tmp/test$ ./test.sh
backup/amavisd/daily/daily_amavisd_2016-10-01_05h28m_Saturday.sql.gz: backup OK
backup/amavisd/daily/daily_amavisd_2016-10-03_05h28m_Monday.sql.gz: backup OK
backup/amavisd/daily/daily_amavisd_2016-10-02_05h28m_Sunday.sql.gz: backup OK
backup/amavisd/daily/daily_amavisd_2016-10-07_05h28m_Monday.sql.gz: backup OK
backup/amavisd/daily/daily_amavisd_2016-09-07_05h28m_Monday.sql.gz: backup failed