多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > windows服務器和linux服務器ftp取數腳本

windows服務器和linux服務器ftp取數腳本

來源:程序員人生   發布時間:2016-06-27 09:00:27 閱讀次數:3015次

linux(ip假設為11.11.0.1)從linux(ip假設為11.11.0.2)那末需要在11.11.0.2上裝vsftp也就是ftp服務端,在11.11.0.1裝ftp客戶端,

下載地址http://download.csdn.net/detail/u012209894/9537732


#!/bin/sh ######################################################################## # # 此便可手工履行腳本,需要傳入履行日期,也可自動履行 # ######################################################################## # 機構號(需要寫死本來日期可寫死TIMETMP便可,如你需要20150202當天的數據,重跑需刪除jksj文件夾下當天的文件) set -e ORGCODE=883000 # 自動輸入前1天的日期 TIMETMP=$(date -d"yesterday" +%Y%m%d) #read var #TIMETMP=$var #重跑需刪除當天文件數據 cd /home/pasdb/doload/pasdata/jksj/ rm -rf $TIMETMP #系統當前日期 SYSTIME=$(date '+%Y-%m-%d %H:%M:%S') NOWDATE=${SYSTIME:0:10} NOWTIME=${SYSTIME:11:8} #310天之前的日期 tendays=$(date -d"30 days ago" +%Y%m%d) # 如果格式為:2010-07-07 if test "${#TIMETMP}" = 10 then YYY=${TIMETMP:0:4} MMM=${TIMETMP:5:2} DDD=${TIMETMP:8:9} INDATE=$YYY$MMM$DDD # 如果輸入日期格式為:20100707 else INDATE=$TIMETMP fi # 修改日期格式為:2010-07-07 YYY=${INDATE:0:4} MMM=${INDATE:4:2} DDD=${INDATE:6:7} PROCDATE=$YYY"-"$MMM"-"$DDD YEARBEGIN=$YYY"-01-01" # 前1天日期格式為:2010-05⑵0 #DAYAGO=$(date -d "$PROCDATE ⑴ days" +%Y-%m-%d) #AGODATE=$(date -d "$PROCDATE ⑴ days" +%Y%m%d) #nMonBegDate=$(date -d "$PROCDATE" +%Y%m)"01" #nMEndLaDate=$(date -d "$nMonBegDate ⑴ days +1 months" +%Y%m%d) logYear=$YYY logMonth=$MMM if [ "$PROCDATE" \< "$NOWDATE" ] then #腳本寄存目錄 DATAPATH=/home/pasdb/doload #LOADPATH=/home/pasdb/doload/pas_load_CORE.sql PROCPATH=/home/pasdb/doload/pas_pro_file.sh #FTP信息:IP地址:FTPIP;用戶名:FTPNAME;密碼:FTPPWD;FTP目錄:FTPDATAPATH;FTP保存文件名:FTPFILE FTPIP="11.11.0.2" FTPNAME="sjff" FTPPWD="sjff" FTPDATAPATH="/home/sjff/CORE/ADD/"$INDATE FTPFILE_CORE="CORE_"$ORGCODE"_"$INDATE"_ADD.tar.Z" #初始化標記值為0 LOADFLAG=0 # 創建工作目錄 createWorkSpace() { if [ ! -e $DATAPATH"/pasdata" ] then mkdir pasdata cd pasdata # dbresult 寄存履行結果 mkdir dbresult # zipdata 寄存ftp下載的zip數據文件 mkdir zipdata mkdir zipdata/sjff mkdir zipdata/sjff"/"$INDATE # unzipdata 寄存履行當天M包解壓臨時寄存目錄 mkdir unzipdata # log 寄存日志文件 mkdir log #CORE 寄存CORE日志文件 mkdir CORE mkdir jksj mkdir jksj"/"$INDATE #mkdir log"/CORE/"$logYear #mkdir log"/CORE/"$logYear"/"$logMonth else cd $DATAPATH"/pasdata" if [ ! -e dbresult ] then mkdir dbresult fi if [ ! -e zipdata ] then mkdir zipdata fi if [ ! -e zipdata/sjff ] then mkdir zipdata/sjff fi if [ ! -e zipdata/sjff/$INDATE ] then mkdir zipdata/sjff/$INDATE fi if [ ! -e unzipdata ] then mkdir unzipdata fi if [ ! -e log ] then mkdir log fi if [ ! -e jksj/$INDATE ] then mkdir jksj/$INDATE fi fi DATAPATH=$DATAPATH"/pasdata" } #創建程序實現功能所需的目錄空間 createWorkSpace $DATAPATH LOGFILE=$DATAPATH"/log/CORE_"$INDATE".log" DBRESULT=$DATAPATH"/dbresult" DAILY_BATCH_LAST_DATE_CORE=$DBRESULT"/daily_batch_last_date_core" DAILY_BATCH_BEGIN_STATE_CORE=$DBRESULT"/daily_batch_begin_state_core" SQL_RESULT_CORE_LOAD=$DBRESULT"/sql_result_core_load" if [ ! -e $DAILY_BATCH_LAST_DATE_CORE ] then touch $DAILY_BATCH_LAST_DATE_CORE fi if [ ! -e $DAILY_BATCH_BEGIN_STATE_CORE ] then touch $DAILY_BATCH_BEGIN_STATE_CORE fi if [ ! -e $SQL_RESULT_CORE_LOAD ] then touch $SQL_RESULT_CORE_LOAD fi #寫日志 WriteLog() { if [ ! -e $LOGFILE ] then touch $LOGFILE fi if [ "$1" != "" ] then echo $(date '+%Y-%m-%d %H:%M:%S')"=======>"$1 | tee -a $LOGFILE fi } # ftp download data /usr/bin/ftp -n<<! open $FTPIP user $FTPNAME $FTPPWD binary prompt off cd $FTPDATAPATH lcd $DATAPATH"/zipdata/sjff/"$INDATE mget "$FTPFILE_CORE" close bye ! cd $DATAPATH"/zipdata/sjff/"$INDATE WriteLog "download ftp file is end." if [ -f "$FTPFILE_TPDM" ] then #FILESIZE=$(ls -l $FTPFILE_CORE|awk '{printf $5}') #FILESIZE=$(awk BEGIN'{printf "%.3f", '$FILESIZE'/(1024*1024)}') #cd $DATAPATH"/pasdata/zipdata/sjff/"$INDATE #chmod 777 "$INDATE" tar -zxvf $FTPFILE_CORE -C /home/pasdb/doload/pasdata/unzipdata WriteLog "download ftp file is success and tar file to unzipdata success" mv "/home/pasdb/doload/pasdata/unzipdata/CORE_BDFMHQAA_"$INDATE"_ADD_883.del" /home/pasdb/doload/pasdata/jksj"/"$INDATE/BDFMHQAA.DEL WriteLog "copy required file to jksj success" #驗證文件是不是齊全 cd /home/pasdb/doload/pasdata/jksj"/"$INDATE if [ 1 != $(ls -A | wc -l) ] then WriteLog "today jksj file incomplete data" cd /home/pasdb/doload/pasdata/jksj rm -rf $INDATE else touch ok.dat WriteLog "today jksj file complete data and create ok.dat file" fi cd /home/pasdb/doload/pasdata/unzipdata rm -f *.del WriteLog "delete unzipdata file successfully" cd /home/pasdb/doload/pasdata/log rm -f "CORE_"$tendays".log" WriteLog "remove ten days before log file successfully" cd /home/pasdb/doload/pasdata/zipdata/sjff rm -rf $tendays WriteLog "remove ten days before sjff file successfully" LOADFLAG=1 else WriteLog "download ftp file is fail,please check the ftp file is exist?" LOADFLAG=0 fi fi

linux(ip假設為11.11.0.1)從windows(ip假設為11.11.0.2)那末需要在11.11.0.2上裝ftp服務端,在11.11.0.1裝ftp客戶端,如果取文件夾則用下面的方法wget,取文件用上面的方法。

#!/bin/sh ######################################################################## # # 腳本說明:績效考核系統日終腳本文件 # 此便可手工履行腳本,需要傳入履行日期,也可自動履行 # ######################################################################## #(需要寫死本來日期可寫死TIMETMP便可,如你需要20150202當天的數據,重跑需刪除jksj文件夾下當天的文件) set -e #自動獲得昨天的日期 TIMETMP=$(date -d"yesterday" +%Y%m%d) #手工輸入昨天日期 #read var #TIMETMP=$var #當天重跑獲得昨天文件 需刪除昨天文件數據 if [ ! -e /xxpas/doload/jksj/ ] then mkdir -p /xxpas/doload/jksj/ else cd /xxpas/doload/jksj/ rm -rf $TIMETMP fi #系統當前日期 SYSTIME=$(date '+%Y-%m-%d %H:%M:%S') NOWDATE=${SYSTIME:0:10} #NOWTIME=${SYSTIME:11:8} #310天之前的日期 tendays=$(date -d"30 days ago" +%Y%m%d) # 如果格式為:2010-07-07 if test "${#TIMETMP}" = 10 then YYY=${TIMETMP:0:4} MMM=${TIMETMP:5:2} DDD=${TIMETMP:8:9} INDATE=$YYY$MMM$DDD # 如果輸入日期格式為:20100707 else INDATE=$TIMETMP fi # 修改日期格式為:2010-07-07 YYY=${INDATE:0:4} MMM=${INDATE:4:2} DDD=${INDATE:6:7} PROCDATE=$YYY"-"$MMM"-"$DDD YEARBEGIN=$YYY"-01-01" if [ "$PROCDATE" \< "$NOWDATE" ] then #腳本寄存目錄 DATAPATH=/xxpas/doload #初始化標記值為0 LOADFLAG=0 # 創建工作目錄 createWorkSpace() { if [ ! -e $DATAPATH"/jksj" ] then mkdir jksj # log 寄存日志文件 mkdir log else cd $DATAPATH"/jksj" if [ ! -e log ] then mkdir log fi fi DATAPATH=$DATAPATH"/jksj" } #創建程序實現功能所需的目錄空間 createWorkSpace $DATAPATH LOGFILE=$DATAPATH"/log/xxjk_"$INDATE".log" #寫日志 WriteLog() { if [ ! -e $LOGFILE ] then touch $LOGFILE fi if [ "$1" != "" ] then echo $(date '+%Y-%m-%d %H:%M:%S')"=======>"$1 | tee -a $LOGFILE fi } # ftp download data ip 用戶名 密碼 自行更改 取前1天日期的文件夾 wget -r -nH -P/xxpas/doload/jksj ftp://11.11.0.2"/"$INDATE --ftp-user=admini1 --ftp-password=123 cd $DATAPATH"/"$INDATE WriteLog "download ftp file is end." #tar -zxvf $FTPFILE_CORE -C /xxpas/doload/jksj"/"$INDATE #gunzip -n $FTPFILE_CORE WriteLog "download ftp file is success and tar file to jksj success" #刪除10天前文件 cd /xxpas/doload/jksj/log rm -f "xxjk_"$tendays".log" WriteLog "remove ten days before log file successfully" cd /xxpas/doload/jksj rm -rf $tendays WriteLog "remove ten days before sjff file successfully" LOADFLAG=1 else WriteLog "download ftp file is fail,please check the ftp file is exist?" LOADFLAG=0 fi

linux上使用手動輸入日期循環取數據

#!/bin/sh ######################################################################## # 此便可手工履行腳本,需要傳入履行日期,也可自動履行 # ######################################################################## # 機構號(需要寫死本來日期可寫死TIMETMP便可,如你需要20150202當天的數據,重跑需刪除jksj文件夾下當天的文件) set -e ORGCODE=883000 # 自動輸入前1天的日期 #TIMETMP=$(date -d"yesterday" +%Y%m%d) #liulei 20160531 add begin read var read endvar datebeg=$var dateend=$endvar beg_s=`date -d "$datebeg" +%s` end_s=`date -d "$dateend" +%s` while [ "$beg_s" -le "$end_s" ] do TIMETMP=$beg_s #重跑需刪除當天文件數據 cd /home/pasdb/doload/addpasdata/jksj/ rm -rf $TIMETMP #系統當前日期 SYSTIME=$(date '+%Y-%m-%d %H:%M:%S') NOWDATE=${SYSTIME:0:10} NOWTIME=${SYSTIME:11:8} #10天之前的日期 tendays=$(date -d"30 days ago" +%Y%m%d) # 如果格式為:2010-07-07 if test "${#TIMETMP}" = 10 then YYY=${TIMETMP:0:4} MMM=${TIMETMP:5:2} DDD=${TIMETMP:8:9} INDATE=$YYY$MMM$DDD # 如果輸入日期格式為:20100707 else INDATE=$TIMETMP fi # 修改日期格式為:2010-07-07 YYY=${INDATE:0:4} MMM=${INDATE:4:2} DDD=${INDATE:6:7} PROCDATE=$YYY"-"$MMM"-"$DDD YEARBEGIN=$YYY"-01-01" # 前1天日期格式為:2010-05⑵0 #DAYAGO=$(date -d "$PROCDATE ⑴ days" +%Y-%m-%d) #AGODATE=$(date -d "$PROCDATE ⑴ days" +%Y%m%d) #nMonBegDate=$(date -d "$PROCDATE" +%Y%m)"01" #nMEndLaDate=$(date -d "$nMonBegDate ⑴ days +1 months" +%Y%m%d) #logYear=$YYY #logMonth=$MMM if [ "$PROCDATE" \< "$NOWDATE" ] then #腳本寄存目錄 DATAPATH=/home/pasdb/doload #LOADPATH=/home/pasdb/doload/pas_load_CORE.sql PROCPATH=/home/pasdb/doload/pas_pro_file.sh #FTP信息:IP地址:FTPIP;用戶名:FTPNAME;密碼:FTPPWD;FTP目錄:FTPDATAPATH;FTP保存文件名:FTPFILE FTPIP="11.11.0.2" FTPNAME="sjff" FTPPWD="sjff" FTPDATAPATH="/home/sjff/CORE/ADD/"$INDATE FTPFILE_CORE="CORE_"$ORGCODE"_"$INDATE"_ADD.tar.Z" #初始化標記值為0 LOADFLAG=0 # 創建工作目錄 createWorkSpace() { if [ ! -e $DATAPATH"/addpasdata" ] then mkdir addpasdata cd addpasdata # dbresult 寄存履行結果 mkdir dbresult # zipdata 寄存ftp下載的zip數據文件 mkdir zipdata mkdir zipdata/sjff mkdir zipdata/sjff"/"$INDATE # unzipdata 寄存履行當天M包解壓臨時寄存目錄 mkdir unzipdata # log 寄存日志文件 mkdir log #CORE 寄存CORE日志文件 mkdir CORE mkdir jksj mkdir jksj"/"$INDATE #mkdir log"/CORE/"$logYear #mkdir log"/CORE/"$logYear"/"$logMonth else cd $DATAPATH"/addpasdata" if [ ! -e dbresult ] then mkdir dbresult fi if [ ! -e zipdata ] then mkdir zipdata fi if [ ! -e zipdata/sjff ] then mkdir zipdata/sjff fi if [ ! -e zipdata/sjff/$INDATE ] then mkdir zipdata/sjff/$INDATE fi if [ ! -e unzipdata ] then mkdir unzipdata fi if [ ! -e log ] then mkdir log fi if [ ! -e jksj/$INDATE ] then mkdir jksj/$INDATE fi fi DATAPATH=$DATAPATH"/addpasdata" } #創建程序實現功能所需的目錄空間 createWorkSpace $DATAPATH LOGFILE=$DATAPATH"/log/CORE_"$INDATE".log" DBRESULT=$DATAPATH"/dbresult" DAILY_BATCH_LAST_DATE_CORE=$DBRESULT"/daily_batch_last_date_core" DAILY_BATCH_BEGIN_STATE_CORE=$DBRESULT"/daily_batch_begin_state_core" SQL_RESULT_CORE_LOAD=$DBRESULT"/sql_result_core_load" if [ ! -e $DAILY_BATCH_LAST_DATE_CORE ] then touch $DAILY_BATCH_LAST_DATE_CORE fi if [ ! -e $DAILY_BATCH_BEGIN_STATE_CORE ] then touch $DAILY_BATCH_BEGIN_STATE_CORE fi if [ ! -e $SQL_RESULT_CORE_LOAD ] then touch $SQL_RESULT_CORE_LOAD fi #寫日志 WriteLog() { if [ ! -e $LOGFILE ] then touch $LOGFILE fi if [ "$1" != "" ] then echo $(date '+%Y-%m-%d %H:%M:%S')"=======>"$1 | tee -a $LOGFILE fi } # ftp download data /usr/bin/ftp -n<<! open $FTPIP user $FTPNAME $FTPPWD binary prompt off cd $FTPDATAPATH lcd $DATAPATH"/zipdata/sjff/"$INDATE mget "$FTPFILE_CORE" close bye ! cd $DATAPATH"/zipdata/sjff/"$INDATE WriteLog "download ftp file is end." if [ -f "$FTPFILE_TPDM" ] then tar -zxvf $FTPFILE_CORE -C /home/pasdb/doload/addpasdata/unzipdata WriteLog "download ftp file is success and tar file to unzipdata success" mv "/home/pasdb/doload/addpasdata/unzipdata/CORE_BWFMATMD_"$INDATE"_ADD_883.del" /home/pasdb/doload/addpasdata/jksj"/"$INDATE/BWFMATMD.DEL WriteLog "copy required file to jksj success" #驗證文件是不是齊全 cd /home/pasdb/doload/addpasdata/jksj"/"$INDATE if [ 1 != $(ls -A | wc -l) ] then WriteLog "today jksj file incomplete data" cd /home/pasdb/doload/addpasdata/jksj rm -rf $INDATE else touch ok.dat WriteLog "today jksj file complete data and create ok.dat file" fi cd /home/pasdb/doload/addpasdata/unzipdata rm -f *.del WriteLog "delete unzipdata file successfully" cd /home/pasdb/doload/addpasdata/log rm -f "CORE_"$tendays".log" WriteLog "remove ten days before log file successfully" cd /home/pasdb/doload/addpasdata/zipdata/sjff rm -rf $tendays WriteLog "remove ten days before sjff file successfully" LOADFLAG=1 else WriteLog "download ftp file is fail,please check the ftp file is exist?" LOADFLAG=0 fi fi beg_s=$((beg_s+86400)) done
如果是windwos上循環取數據就使用,目前只能想到日期范圍在1個月之內的,由于windowns上的日期date算超越月外的就比較繁瑣了

@echo on ::------------------------------------------------------------------ :: example :call test.bat 20160101 20160110 ::------------------------------------------------------------------ setlocal enabledelayedexpansion set startdate=%1 set enddate=%2 set FTP_SERVER=11.11.0.2 set FTP_USER=admin1 set FTP_PASSWORD=admin1 echo 當前輸入日期為1:%startdate% rem pause set dy=%startdate:~,4% set dm=%startdate:~4,2% set dd=%startdate:~6,2% echo 當前輸入日期為:%dy%%dm%%dd% set StartTime=%Time:~0,2%:%Time:~3,2%:%Time:~6,2% rem pause set PAS_DATE=%dy%%dm%%dd% :start D: set PAS_ROOT=D:\DATA\JKSJ if not exist %PAS_ROOT% mkdir %PAS_ROOT% set FTP_CMD_FILE=%PAS_ROOT%\ftpcmd.txt set PAS_DATA_DIR=%PAS_ROOT%\%PAS_DATE% if not exist %PAS_DATA_DIR% mkdir %PAS_DATA_DIR% echo 文件夾地址%PAS_DATA_DIR% rem 從FTP獲得數據 echo open %FTP_SERVER%>%FTP_CMD_FILE% echo %FTP_USER%>>%FTP_CMD_FILE% echo %FTP_PASSWORD%>>%FTP_CMD_FILE% echo ascii>>%FTP_CMD_FILE% echo literal pasv>>%FTP_CMD_FILE% echo prompt >>%FTP_CMD_FILE% echo cd %PAS_DATE%>>%FTP_CMD_FILE% echo lcd %PAS_DATE%>>%FTP_CMD_FILE% echo mget *.*>>%FTP_CMD_FILE% echo close>>%FTP_CMD_FILE% echo bye>>%FTP_CMD_FILE% ftp -s:%FTP_CMD_FILE% c: echo 解壓開始 >>%PAS_DATA_DIR%\GetOK.dat C:\"Program Files"\WinRAR\winrar.exe e %PAS_DATA_DIR%\*.zip %PAS_DATA_DIR% echo 解壓完成 >>%PAS_DATA_DIR%\GetOK.dat set EndTime=%Time:~0,2%:%Time:~3,2%:%Time:~6,2% echo FTP下載數據開始時間:%StartTime%,結束時間:%EndTime% echo FTP下載數據開始時間:%StartTime%,結束時間:%EndTime% >>%PAS_DATA_DIR%\GetOK.dat D: cd %PAS_DATA_DIR% if exist *.ok ( echo %PAS_DATE%>>%PAS_DATA_DIR%\JKSJOK.dat ) echo 存在>>%PAS_DATA_DIR%\GetOK.dat set /a "PAS_DATE+=1" echo now date:%PAS_DATE% echo now enddate:%enddate% rem pause if "%enddate%" neq "%PAS_DATE%" goto start exit




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 伊人久久免费视频 | www.黄色网址.com | 成人无高清96免费 | 亚洲精品网址 | 欧美xart系列高清在线视频 | 欧美黑人在线视频 | free俄罗斯性xxxxhd大陆 | 亚洲精品不卡久久久久久 | 国产精品美乳免费看 | 日本乱性 | 97午夜理伦影院在线观看 | 成年人免费看的视频 | 中文字幕乱码一区三区免费 | 国产高清不卡一区二区 | 日本不卡一二三 | 国产中文字幕在线视频 | 自拍偷自第11页 | jizz日本在线播放 | 一本免费视频 | 亚洲人成在线影院 | 日本a在线 | 精品一区二区三区无卡乱码 | 波多野结衣一级视频 | 亚洲 自拍 另类 欧美 综合 | 亚洲成年人免费网站 | 成人午夜免费在线观看 | 亚洲特一级毛片 | 亚洲国产成人99精品激情在线 | 亚洲一区二区精品 | 欧美国产日韩一区 | 日韩欧美在线第一页 | 337p日本欧洲亚洲大胆艺术图666 | 一级淫片免费看 | 亚洲欧洲精品国产二码 | 亚州三级 | 国产亚洲精品福利片 | 国产成人综合久久 | 日韩亚洲欧美一区二区三区 | 久久精品桃花综合 | 国产系列 视频二区 | 激情视频在线观看免费 |