linux环境利用定时任务删除过期文件脚本
一、编写shell脚本 task4delExpiredFiles.sh
#!/bin/bash #配置定时任务方法 #crontab -e #输入命令并保存退出 * * * * * /cloud/tesh/task4delExpiredFiles.sh >> /cloud/tesh/logs/task4delExpiredFiles_$(date "+\%Y-\%m-\%d").log 2>&1 function deleteFiles(){ targetDir=$1 if [ ! -d "$targetDir" ];then echo "===>target dir [${targetDir}] is not existed,exit." return fi formatedTimeStr=$(date -d @$beforeTimeStamp "+%Y-%m-%d %T") echo "=========>即将删除 $formatedTimeStr 之前的文件<=========" operated='false' #根据文件修改时间升序排列 for file in `ls -rt $1` do dir_or_file=$1"/"$file filetimestamp=`stat -c %Y $dir_or_file` timecha=$[$filetimestamp - $beforeTimeStamp] echo "time dif is "$timecha if [ $timecha -lt 0 ];then operated='true' if test -f $dir_or_file then echo "===>删除文件 $dir_or_file ..." rm -f $dir_or_file elif test -d $dir_or_file then echo "===>删除文件夹 $dir_or_file 中所有的文件..." rm -rf $dir_or_file fi fi done if [ $operated = 'true' ];then echo "===>删除过期文件完成." else echo "===>没有符合条件的过期文件,退出." fi echo "=======================================================" } #源文件根目录,手动配置 base_file_dir=/cloud/tesh/file #获取当前时间戳,单位为秒,date --date=20151117 +%s 将指定时间转换为秒 current_timeStamp=`date +%s` #文件最大保留天数 max_file_keep_days=7 #计算时间差,单位为秒 let "diff=$max_file_keep_days*24*60*60" let "beforeTimeStamp=$current_timeStamp-$diff" echo "before is "$beforeTimeStamp #调用删除文件函数 deleteFiles $base_file_dir
二、编写定时任务
执行命令 crontab -e
输入如下文本保存退出即可
* * * * * /tesh/task4delExpiredFiles.sh >> /tesh/logs/task4delExpiredFiles_$(date "+\%Y-\%m-\%d").log 2>&1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2018-03-19 关于使用maven打包如何聚合资源文件