小计(学习及复习):
1.eclipse 启动找不到.calss文件等编译问题
解决:清理
【Project】-->【Clean】
2.Linux文件x权限
chmod a+x test.sh (*a为all用户)
4.关于Linux的分号问题
5.参数列表详解http://www.jb51.net/article/48691.htm
6.Linux参数的shift方法会使$#同步减少,如需要初始长度则先将$#存放在一个变量里面
7.可使用$[1/0]强制中断
8.关于Linux的if和c的if问题
9.for x in list的用法
今日主要完成取数及清理脚本如下:
#!/bin/sh
#getpath="/home/xxx"
#bankname="xxx-0000-"
#date="20160803"
#outin="-xxx"
#putpath="/home/xxx/xxx"
#list="a b c"
#delhis=10
echo $date":start...
----------------------------------------------------->"$(date)>$putpath/log/$date'_unzip_run.log'
echo $date":step 1...检查">> $putpath/log/$date'_unzip_run.log'
#检查OK文件是否存在
if [ -e $getpath/datafile/$bankname$date$outin.ok ];then
#检查数据文件夹是否存在
if [ ! -e $putpath/datafile ];then
echo $date":step 1...创建数据路径...">> $putpath/log/$date'_unzip_run.log'
mkdir -p $putpath/datafile
fi
#创建log和bad文件夹
mkdir -p $putpath/log/$date
mkdir -p $putpath/bad/$date
#解压数据
echo $date":step 2...数据解压开始->"$(date)>>$putpath/log/$date'_unzip_run.log'
rm -rf $putpath/datafile
unzip -o $getpath/datafile/$bankname$date$outin.zip -d $putpath
rename $putpath/$bankname$date$outin $putpath/datafile $putpath/$bankname$date$outin
echo $date":step 2...数据解压结束->"$(date)>>$putpath/log/$date'_unzip_run.log'
#修改参数列表里的数据文件的前缀
for rename in $list
do
rename $bankname$date$outin"-"$rename $rename $putpath/datafile/*
echo $date":setp 3...修改前缀-> "$bankname$date$outin"-"$rename" 前缀改为"$rename>>$putpath/log/$date'_unzip_run.log'
done
echo $date":setp 4...修改后缀->.ok文件及.dat文件">>$putpath/log/$date'_unzip_run.log'
rename -all.txt .dat $putpath/datafile/*-all.txt
rename -all.cnt .ok $putpath/datafile/*-all.cnt
rename -add.txt .dat $putpath/datafile/*-add.txt
rename -add.cnt .ok $putpath/datafile/*-add.cnt
echo $date":setp 5...数据准备完成">> $putpath/log/$date'_unzip_run.log'
#如果没有OK文件,强制中断,使前台报错中止,等待下次运行
else
echo $date":step 1...数据OK文件不存在,数据没准备好,脚本已强制中断" >> $putpath/log/$date'_unzip_run.log'
$[0/0]
fi
#清理历史数据文件
if [ $delhis > 7 ];then
targday=$(date -d $date'-'$delhis' day' +%Y%m%d)
echo $date":setp 6...清理"$targday"以前的历史数据文件">> $putpath/log/$date'_unzip_run.log'
for ((i=20160701;i<=$targday;i++))
do
if [ -e $getpath/datafile/$bankname$i$outin.ok ];then
echo $date":setp 6...正在清理"$getpath/datafile/$bankname$i$outin.ok>> $putpath/log/$date'_unzip_run.log'
rm -rf $getpath/datafile/$bankname$i$outin.ok
fi
if [ -e $getpath/datafile/$bankname$i$outin.zip ];then
echo $date":setp 6...正在清理"$getpath/datafile/$bankname$i$outin.zip>> $putpath/log/$date'_unzip_run.log'
rm -rf $getpath/datafile/$bankname$i$outin.zip
fi
done
fi
#清理一年以上log和bad文件
if [ $dellogandbad > 365 ];then
targday=$(date -d $date'-'$dellogandbad' day' +%Y%m%d)
echo $date":setp 6...清理"$targday"以前的log和bad文件">> $putpath/log/$date'_unzip_run.log'
for ((i=20160701;i<=$targday;i++))
do
if [ -e $putpath/log/$i'_unzip_run.log' ];then
echo $date":setp 6...正在清理"$putpath/log/$i'_unzip_run.log'>> $putpath/log/$date'_unzip_run.log'
rm -rf $putpath/log/$i'_unzip_run.log'
fi
if [ -e $putpath/log/$i ];then
echo $date":setp 6...正在清理"$putpath/log/$i>> $putpath/log/$date'_unzip_run.log'
rm -rf $putpath/log/$i
fi
if [ -e $putpath/bad/$i ];then
echo $date":setp 6...正在清理"$putpath/bad/$i>> $putpath/log/$date'_unzip_run.log'
rm -rf $putpath/bad/$i
fi
done
fi
echo "----------------------------------------------------->"$(date)"
"$date":over...">>$putpath/log/$date'_unzip_run.log'