实用Shell脚本总结
1. 服务器上文件保留28天
index.sh
:执行脚本:
basepath=/home/app/data/batch/GetMyFile
echo "=======================================================获取文件===================================================="
echo "$basepath"
SELL_HOME=$basepath/shell/
yy=`date +%C%y`
mm=`date +%m`
dd=`date +%d`
tdd=`date +%d`
Day()
{
dd=`echo "$dd-$1"|bc`
if [ $dd -lt 10 ] && [ $dd -gt 0 ]
then
dd="0"$dd
fi
if [ $dd -lt 1 ]
then
mm=`echo "$mm-1"|bc`
case $mm in
1|3|5|7|8|10)
if [ $mm -lt 10 ]
then
mm="0"$mm
fi
dd=`echo "$dd+31"|bc`
;;
4|6|9|11)
if [ $mm -lt 10 ]
then
mm="0"$mm
fi
dd=`echo "$dd+30"|bc`
;;
2)
mm="0"$mm
flag=`echo "$yy%4"|bc`
if [ $flag -eq 0 ]
then
dd=`echo "$dd+29"|bc`
else
dd=`echo "$dd+28"|bc`
fi
;;
0)
yy=`echo "$yy-1"|bc`
mm="12"
dd=`echo "$dd+31"|bc`
;;
esac
fi
}
Day 1
inputdate=${yy}${mm}${dd}
echo "正常日期为$inputdate"
cd $basepath/data
rm -rf $inputdate
mkdir $inputdate
Day 28
dletedate=${yy}${mm}${dd}
cd $basepath/data
rm -rf $dletedate
echo "删除日期为$dletedate"
data_H=$basepath/data/$inputdate
cd $SELL_HOME
sh getFile.sh $inputdate
Data_num=`ls -l $data_H | grep "^-"|wc -l`
if [ ${Data_num} -lt 4 ]
then
echo "获取文件有缺失请检查各文件数量"
else
echo "文件获取通过,数量校验成功"
fi
- getFile.sh:通过sftp下载文件的执行脚本:
. ~/.bash_profile
echo "getFile.sh执行日期为$1"
basepath=/home/app/data/batch/GetMyFile
getpath=/home/app/data/MyFile
USER='zarker'
PASSWORD='51522zzwlwbb51522zzwlwb'
lftp -u ${USER},${PASSWORD} sftp://192.168.65.101:22<<EOF
lcd $basepath/data/$1
cd $getpath/upload/$1
mget *
by
EOF