配合crontab即可实现标题
使用 bash + 脚本 + 目录
bash xx.sh /root/xx/
脚本如下:
#!/bin/bash # 将current转换为时间戳,精确到秒 CURRENT_TIMESTAMP=`date +%s` CURRENT_TIMESTAMP=$((CURRENT_TIMESTAMP+0)) # echo $CURRENT_TIMESTAMP function read_dir(){ # 两个反引号,表示运行系统命令 for file in `ls $1` do if [ -d $1"/"$file ] then read_dir $1"/"$file else # 在此处处理文件 echo "######################################" echo "文件:"$1"/"$file # 文件名 FILE_NAME=$1"/"$file # 获取文件最后打开时间戳 LAST_OPEN_TIMESTAMP=`stat -c %X $FILE_NAME` LAST_OPEN_TIMESTAMP=$((LAST_OPEN_TIMESTAMP+0)) # echo $LAST_OPEN_TIMESTAMP # 删除7天未打开文件 TIME_DIFF=$[ CURRENT_TIMESTAMP - LAST_OPEN_TIMESTAMP ] # 距离上次打开多久 echo "距离上次打开已过了: "$TIME_DIFF" 秒" # 修改时间阈值 if [ $TIME_DIFF -gt $[ 7*24*3600 ] ] then `rm -f $FILE_NAME` echo "状态:近期未打开,已删除" else echo "状态:近期有打开" fi # 格式化时间戳 FORMATE_DATE=`date '+%Y-%m-%d %H:%M:%S' -d @$LAST_OPEN_TIMESTAMP` echo "最后打开时间:" echo $FORMATE_DATE fi done } read_dir $1 FORMATE_DATE_CURRENT_TIMESTAMP=`date '+%Y-%m-%d %H:%M:%S' -d @$CURRENT_TIMESTAMP` echo "当前时间:" echo $FORMATE_DATE_CURRENT_TIMESTAMP