zoukankan      html  css  js  c++  java
  • 【SHELL】:定时任务删除指定目录

    现有一个需求,需要定时删除积累过久的目录,并且部分目录不可删除。在此,我们分析了一下该父目录的命名结构:非连续性数字命名,部分目录中包含a.txt文件。如下图所示:

    在此,我们对此可作如下操作,获取该父目录下最大(max)以及最小(min)目录的名字,增加一个可变deduce值,需要删除的目录区间范围则为:[min,max-deduce),剩余留下的目录区间范围则为:[max-deduce,max]。

    实现的内容有:1、磁盘空间低于某值批量删除文件目录

           2、保留最新的部分目录

           3、删除的目录中包含某个文件时跳过

           4、Mac OS加入定时任务

    辅助创建文件夹操作:

    import os, sys
    def MkDir():
        path1 = './a/'
        path2 = './b/'
        i = 0
        for i in range(1,101):
            file_name1 = path1 + str(i)
            file_name2 = path2 + str(i)
            os.mkdir(file_name1)
            os.mkdir(file_name2)
            i=i+1
    
    MkDir()

    完整脚本:

    ###shell脚本
    #!/bin/bash
    
    #输出var目录下所有目录名
    # var=/Users/funny/PycharmProjects/pratice/
    # dir=$(ls -l /Users/funny/PycharmProjects/pratice/ |awk '/^d/ {print $NF}')
    # for i in $dir
    # do
    #     echo $i
    # done  
    #tr -cd 排除除了【】外的
    deduce=30
    disk_capacity=$( df -h | grep '/dev/disk1s1' | awk '{print $4}' |tr -cd "[0-9]")
    #获取目录名、从小到大排序、取最大值,sort -g常规排序  -r倒序排序
    max_dir_ios=$(ls -l /Users/funny/PycharmProjects/pratice/a/ |awk '/^d/ {print $NF}' | sort -g |tail -n 1)
    min_dir_ios=$(ls -l /Users/funny/PycharmProjects/pratice/a/ |awk '/^d/ {print $NF}' | sort -r |tail -n 1)
    last_dir_ios=$(($max_dir_ios-$deduce))

    echo $max_dir echo $last_dir echo $disk_capacity #-le 小于等于 #ios清理 if [ $disk_capacity -le 80 ];then echo "定时清理任务中。。" #seq(最小值 最大值) for i in $(seq $min_dir_ios $last_dir_ios) do cd /Users/funny/PycharmProjects/pratice/a/$i/ if [ -f a.txt ];then echo "存在文件A.TXT,跳过" cd .. else echo "删除文件夹" $i cd .. rm -rf $i fi done else echo "ios不需要清理空间~" fi

    加入Mac OS定时任务:

    #shell终端
    crontab -e
    #每周六8点钟执行1.sh文件并输出到a.log中
    0 8**6 sh /Users/funny/Downloads/1.sh >>a.log

    关于定时任务的介绍,可见 https://www.cnblogs.com/longjshz/p/5779215.html 此文章详解。

  • 相关阅读:
    handle/hmodule/hinstance/hwnd区别
    How to control progress bar setup made by WIX
    C#定制并发送HTML邮件
    如何添加WPF,SilverLight控件到ToolBox
    【FWD】Windows Azure Table Storage vs. Windows SQL Azure
    MSBuild failed after add a new configuration
    .NET 下各种Resource的读取方式
    杨辉三角算法改进
    代码生成技术
    回家的美丽
  • 原文地址:https://www.cnblogs.com/fightccc/p/10096925.html
Copyright © 2011-2022 走看看