zoukankan      html  css  js  c++  java
  • 如来神掌第二式第二招----Shell应用案例之大文件删除

    ###############################################################################
    # Name : Mahavairocana                                                                                                                                           
    # Author : Mahavairocana                                                                                                                                         
    # QQ : 10353512                                                                                                                                                    
    # WeChat : shenlan-qianlan                                                                                                                                      
    # Blog : http://www.cnblogs.com/Mahavairocana/                                                                                                       
    # Description : You are welcome to reprint, or hyperlinks to indicate the                                                                        
    #                    source of the article, as well as author information.                                                                                ###############################################################################

    #!/bin/sh
    
    #**********************************************************************************
    # *  this tool is used for file size more than 1G, to make delete file smoothly
    # *  truncate chunk size is 1G
    # * 
    # *  USAGE: ./rmbigfile.sh file_name sleep_seconds
    # * 
    #***********************************************************************************
    
    
    if [ $# != 2 ] ; then
         echo "" ;
         echo "/**********************************************************************************";
         echo " *  this tool is used for file size more than 1G, to make delete file smoothly";
         echo " *  truncate chunk size is 1G";
         echo "/**********************************************************************************";
         echo "" ;
         echo "USAGE: $0 file_name sleep_seconds" ;
         echo "" ;
         exit;
    fi
    
    FILE_NAME=$1;
    SLEEP_SECONDS=$2;
    
    date "+%Y-%m-%d %H:%M:%S";
    echo "start...";
    
    
    FILE_SIZE=`ls -s $FILE_NAME | awk '{print $1}'`;
    FILE_SIZE_G=`expr $FILE_SIZE / 1000000`;
    
    if [ $FILE_SIZE_G == 0 ] ; then
         echo "$FILE_NAME is less than 1G";
         FILE_SIZE_G=1;
    else
         echo "$FILE_NAME is $FILE_SIZE_G G";
    fi
    
    echo "prepare to truncate file: $FILE_NAME (${FILE_SIZE_G}G)";
    echo "truncate chunk size is 1G, looping every $SLEEP_SECONDS second";
    
    for i in `seq $FILE_SIZE_G -1 1 ` ;
         do sleep $SLEEP_SECONDS;
         cmd="truncate -s ${i}G $FILE_NAME";
         echo "*** $cmd";
         `$cmd`;
    done
    
    
    FILE_SIZE=`ls -s $FILE_NAME | awk '{print $1}'`;
    FILE_SIZE_G=`expr $FILE_SIZE / 1000000`;
    
    if [ $FILE_SIZE_G -le 1 ] ; then
            rm $FILE_NAME;
    fi
    
    echo "complete."
    date "+%Y-%m-%d %H:%M:%S"
  • 相关阅读:
    CentOS安装Nginx Pre-Built
    CMake设置编译参数
    SQLServer脚本编写
    使用QNetworkAccessManager实现Qt的FTP下载服务
    使用CMD命令设置IP
    IIS6(Win2003) 使用.net 4.0 后,默认文档失效解决方案。
    windows7打印时,显示脱机,提示“服务器打印后台处理程序服务没有运行”。
    阻止浏览器自动填表
    Java经典编程题50道之四
    Java经典编程题50道之三
  • 原文地址:https://www.cnblogs.com/Mahavairocana/p/8244202.html
Copyright © 2011-2022 走看看