• shell 定时清理一定时间内未使用的目录下文件脚本


    配合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
    ------ 往事如烟,伴着远去的步伐而愈加朦胧。未来似雾,和着前进的风儿而逐渐清晰!
  • 相关阅读:
    一些数学证明
    重头再来
    二次函数传参
    神经网络
    准备写点随笔了
    如何做出响应式的页面 (转)
    自适应,响应式,viewport总结
    edm邮件制作规范
    博客园blog模板整理
    git 常用的命令
  • 原文地址:https://www.cnblogs.com/cutesnow/p/15637718.html
Copyright © 2020-2023  润新知