生成一个 shell 脚本,该脚本将仅保留 7 天的文件并删除其他天的文件

生成一个 shell 脚本,该脚本将仅保留 7 天的文件并删除其他天的文件

在备份目录中,我想保留所有 7 天生成的文件,并希望删除较旧的文件。

我尝试使用 -mtime 选项并观察脚本运行了 3-4 天。但5-6天后它就停止工作了。所以删除没有发生,目录现在已满。看来 -mtime 不起作用。

另请注意,我正在运行一个 cron 来自动执行此操作。

10 3 * * * su - cassandra -c /opt/cassandra/scripts/backup_cassandra >> /tmp/backup.log

这是我正在使用的脚本:

#!/bin/bash
set -x
export PATH=/opt/dse/bin/:/usr/lib/jvm/jre-1.8.0//bin:/sbin:/usr/sbin:/bin:/usr/bin:/root/bin
. /opt/cassandra/.env # source functions & password
# First we delete backup files older than 8 days.
find /data_cassandra/cassandra/backup/ -name "dc_east__*" -mtime 8 -exec rm {} \;
# cd to where the scrips are.
cd /opt/cassandra/scripts/
# And start the backups.
./backup.sh start -all # Kick off a full backup

请帮助解决这个问题。

答案1

您正在find查看 8 天前的文件。man find:

   A numeric argument n can be specified to tests (like -amin, -mtime, -gid, -inum, -links, -size, -uid and -used) as
   +n     for greater than n,
   -n     for less than n,
   n      for exactly n.

所以 - 尝试一下-mtime +8

相关内容