您的位置:首页 > 运维架构 > Shell

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

2013-02-01 17:41 866 查看
   下面是一个硬盘文件拷本的脚本,不停的拷贝,当空间大于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文件中~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息