硬盘检测的一个shell脚本及自动重启自动运行脚本

下面是一个硬盘文件拷本的脚本,不停的拷贝,当空间大于80时,将拷贝的文件全部删除

文件路径: /var/tmp/disk_test.sh

加入开机就启动 在 文件 /etc/rc.d/rc.local 文件中加入下面语句

sh /var/tmp/disk_test.sh

#!/bin/sh 

SRC_DIR="/usr/local/"
DST_DIR="/var/temp"
LOG_DIR="/var/log_dir"
MAX_USR=20




#The use of hard disk size
var_usr_size()
{
    local var_usage=`df |grep "/var"| awk '{print $5}' |sed 's/%//g'`
    if [ $var_usage -gt $MAX_USR ]
    then
        echo "the /var usage is $var_usage"
        return 1
    fi
    return 0

}


copy_file()
{
    if [ ! -d $LOG_DIR ]
    then
        mkdir $LOG_DIR
    fi
    local cut_time=`date +%F__%T`  
    LOG_FILE=$LOG_DIR/${cut_time}_log_event
    local temp_dir=$1
    while true
    do
        for file in `ls $SRC_DIR`
        do
            if var_usr_size
            then
                file_bak=${file}"_"$RANDOM
                cp ${SRC_DIR}${file} ${temp_dir}/${file_bak} -a
                if [ $? -ne 0 ]
                then
                    echo "$cut_time cp file error!" >> $LOG_FILE
                fi
            else
                rm -rf $temp_dir/*
                if [ $? -ne 0 ]
                then
                    echo "$cut_time rm file error!" >> $LOG_FILE
                fi
            fi
        done
    done

}


for file_name in `ls /var/ -l |grep temp* |awk '{print $5}'`
do
    rm -rf /var/${file_name}
done
for i in `seq 1 5` 
do
    {
        temp_file=${DST_DIR}$RANDOM
        if [ ! -d $temp_file ]
        then
            mkdir -p $temp_file
            copy_file $temp_file
        fi
    }&
done


有个每隔5分钟重启一次系统的时候出现问题,并不能立即重启,一直在提示 重启已经设置

分析是因为上面CP和RM命令一直在运行导致的。所以又写了下面的脚本进行重启的设置

#!/bin/bash

 for i in `ps -ef |grep -v grep |grep disk_test.sh | awk '{print $2}'`
 do
     kill -9 $i
 done

 sleep 180
 reboot


写到crontab文件中~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值