如何制作 crontab 家政脚本以删除 redhat 7 目录中超过 60 天的文件



我有以下目录来管理:

/interface/P23/FTP/MTSI/arc

/接口/P23/FTP/iMind360/arc

/interface/P23/FTP/ServiceNow/arc

谁能帮我显示一些脚本来删除超过enter code here60 天的文件?

我只想保留新文件,并将旧文件保留在这些目录中。

您可以使用查找命令作为波纹管

find <Path> -mtime +<NumberOfDay> -exec rm {} ;

-mtime,用于指定文件存在的天数。

-exec,允许您传入命令,例如 RM。的 {} \;最后需要结束命令。

诚然,让未经测试的 Bash 通过并不是我的强项,但它应该是这样的:

secs_to_wait=5184000
root_dirs=(
/interface/P23/FTP/MTSI/arc
/interface/P23/FTP/iMind360/arc
/interface/P23/FTP/ServiceNow/arc
)
for root_dir in $root_dirs; do
for i in $(ls $root_dir); do
# seconds since last modified
mod_time=$(stat --format "%X" $i)
if [ $mod_time -ge $secs_to_wait ]; then
rm -f $i
fi
fi
fi

现在,您可以根据需要将其作为 cronjob 运行。另一种解决方案是使用像 inotifywait 这样的文件系统监视器来为您找出所有这些血腥的细节。您所要做的就是弄清楚如何将您的年龄要求指定为 inotify 事件,它将在守护程序上处理其余的工作。我会把它作为一个练习留给读者;)

块引用

最新更新