写的一个shell,当运行后定时会扫描指定的路径,看有没有.zip文件。
当存在时则进行一些处理。
当然了如果指定的路径每天都要去做这种事情的话,我们可以吧这个shell脚本
加入到crontab 中去。
上次写的那个shell 可以实现功能,但是有个BUG就是当文件到达目录时候,它会立即执行后面的。所以这样肯定不行。于是在上次的shell的基础上做了修改!假了个判断函数
#test_zip_sinpoal.sh
#author:Sinpoal
#date:2010.10.13
#!/bin/bash
cd /home/oracle/test_poal/test_zip
echo "Function scaning files..."
ifexsts()
{
for i in `find . -type f -name "*.zip"`
do
result=`basename $i`
done
if [ -n "$result" ]; then
return "1"
else
return "0"
fi
}
get_size()
{
declare filesize
i=0
for fileinfo in `ls -lt`
do
filesize[i]=$fileinfo
i=$i+1
done
return ${filesize[6]}
}
while true
do
ifexsts
bool=$?
if [ $bool = "1" ]; then
while true
do
get_size
size1=$?
sleep 3
get_size
size2=$?
if [ $size1 = $size2 ]; then
echo -e "/033[40;36m File recieved successfully !/033[0m"
echo " *********Files info**********"
echo -e "Filename: /033[40;36m $result/033[0m"
echo -e "Arrived at:/033[40;36m `date` /033[0m"
sleep 2
echo -e "/033[40;31m Extract the file .../033[0m"
unzip $result
sleep 2
echo -e "/033[40;31m Move origal .zip files to ../staging /033[0m"
mv $result ../staging/
break
else
sleep 3
fi
done
break
else
echo -e " None files !"
sleep 3
fi
done