- 论坛徽章:
- 0
|
脚本名:restrFileSize.sh
脚本内容:
#!/bin/bash
LocolFileName="./test_file.txt"
exec 5>$LocolFileName
filesize=0
ku=1024
hku=50
maxFileSize=`expr $hku \* $ku` #注意前后有空格
exec 2>/dev/null
controlFileSize()
{
if [ -e $LocolFileName ];then
while [ $filesize -le $maxFileSize ]
do
filesize=`ls -l $LocolFileName | awk '{ print $5}'`
echo "`date` controlFileSize is $filesize"
echo "`date` == filesize is $filesize">&5
if [ $filesize -gt $maxFileSize ];then
filesize=0
fi
done
fi
echo "end"
}
controlFileSize
这种方式 运行: ./restrFileSize.sh &(前后台都行)
然后 ps aux | grep restrFileSize.sh, (如果效果不明显的,多运行几下这个命令,就能发现有多个进程)
会显示:restrFileSize.sh有 多个进程。 怎么回事?
if [ $filesize -gt $maxFileSize ];then
filesize=0
fi
sleep 1
done
就是done前面加个sleep 1,就只显示一个进程了, 什么原因?
说明: while 无限循环,不会杀进程的 不要 跑, 不然你很无奈。 |
|