• 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
    ------ 往事如烟,伴着远去的步伐而愈加朦胧。未来似雾,和着前进的风儿而逐渐清晰!
  • 相关阅读:
    数组练习1
    学习进度04
    求一个数组的最大子数组之和02
    求一个数组的最大子数组之和01
    学习进度03
    四则运算的功能添加版02
    第二周学习进度
    Right-BICEP 测试四则运算程序
    实现四则运算的功能添加版01
    本周实验PSP0 过程文档
  • 原文地址:https://www.cnblogs.com/cutesnow/p/15637718.html
Copyright © 2020-2023  润新知