Python作FTP上传脚本、文件切割压缩上传脚本、循环启动程序脚本

  1. python上传FTP脚本
#auther:Dennie
#time:2018-08-09
#first is ftp path second is fold path third is filename
#-*-coding=utf-8-*-
from ftplib import FTP
import os,time,datetime
import sys
remotepath=sys.argv[1]
path=sys.argv[2]
fileName=sys.argv[3]
ftp=FTP()
ftp.set_debuglevel(2)
ftp.connect("*.*.*.*", "21") #链接ftp服务器
ftp.login("user","123456")#输入用户名密码
print ftp.getwelcome()
ftp.cwd(remotepath)
bufsize=1024
filename=fileName
newFilePath=path+fileName
fp = open(newFilePath, 'rb')
ftp.storbinary('STOR %s' % filename, fp, bufsize)
ftp.set_debuglevel(0)
ftp.quit()
  1. 文件切割压缩上传脚本
#!/bin/bash
#created by Dennie
#path : /app/nfs_data05/table_data/xbTest/
#fileName : user_info_01.gz
#ftpPath : tyxb/finish/
source /home/was/.bash_profile
path=$1
fileName=$2
ftpPath=$3
newfilename=${fileName}"."
cd $path
#以800w行做切割文件,压缩后,调用上面脚本运行
split -l 8000000 -d -a 2 ${fileName} ${newfilename}
gzip ${newfilename}*
for file in $( ls -l|grep gz|grep ${newfilename}|awk '{print $9}')
do 
echo "" >> /app/nfs_data05/shell/log.log
echo "[$(date +'%Y-%m-%d %H:%M:%S')]开始上传${fileName}!" >> /app/nfs_data05/shell/log.log 
cd /app/nfs_data05/shell/

python ftpPut.py ${ftpPath} ${path} ${file}
done
if [ $? -eq 0 ];then
echo "[$(date +'%Y-%m-%d %H:%M:%S')]上传成功${fileName}"  >> /app/nfs_data05/shell/log.log
else
echo "[$(date +'%Y-%m-%d %H:%M:%S')]上传失败${fileName}!"  >> /app/nfs_data05/shell/log.log
fi
  1. 循环启动程序脚本
#!/bin/bash
#auther Dennie
#批量追数据用
#开始时间
beg_s=`date -d "$1" +%s`
#结束时间
end_s=`date -d "$2" +%s`
echo "" > a.text
while [ "$beg_s" -le "$end_s" ];do
    day=`date -d @$beg_s +"%Y%m%d"`;
    echo "当前日期:$day" >> a.text
	sh /app/nfs_data05_log/etlshell/pt_deal_order_zsj/pt_deal_order_zsj.sh $day
			sleep 10
			num=1
                         while [ $num -le 40 ]
                          do
                                 num=$((num + 1))

                                  pid=`ps -ef|grep kitchen |grep $day |wc -l`

                                   if [ $pid -eq 0 ]
                                          then

                                        echo $day" end: "  $(date '+%Y-%m-%d %H:%M:%S')   >> a.text
                                         sleep 5
                                          break
                                        else
                                         sleep 10
                                     fi
                         done
    beg_s=$((beg_s+86400));
done

希望觉得对您有帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值