【实用Shell脚本总结】

实用Shell脚本总结

1. 服务器上文件保留28天

  1. index.sh:执行脚本:
#!/bin/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

# 再删除28天前的文件,避免文件积压在服务器里
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
  1. getFile.sh:通过sftp下载文件的执行脚本:
#!/bin/sh
. ~/.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
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值