轉:Windows下用sftp自動下載檔案

來源:互聯網
上載者:User

標籤:

遠程伺服器是Linux作業系統,沒有ftp服務,可以ssh,資料庫每天2:00會自動建立一個備份檔案,本機電腦是windows作業系統,希望用sftp每天3:00下載遠程伺服器上的備份檔案。本地系統是linux的,可以參考另一篇文章“linux下自動sftp下載檔案”。

Windows下的sftp工具採用putty工具包中的psftp.exe,:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

命令列下輸入“psftp -h”可以查看psftp的用法。

PuTTY Secure File Transfer (SFTP) client
Release 0.59
Usage: psftp [options] [[email protected]]host
Options:
-V        print version information and exit
-pgpfp    print PGP key fingerprints and exit
-b file   use specified batchfile
-bc       output batchfile commands
-be       don‘t stop batchfile processing if errors
-v        show verbose messages
-load sessname Load settings from saved session
-l user   connect with specified username
-P port   connect to specified port
-pw passw login with specified password
-1 -2     force use of particular SSH protocol version
-4 -6     force use of IPv4 or IPv6
-C        enable compression
-i key    private key file for authentication
-noagent disable use of Pageant
-agent    enable use of Pageant
-batch    disable all interactive prompts

可以看到,我們能夠通過匯入一個指令檔sftp.txt來自動完成sftp下載檔案。命令格式如下:

psftp remotehost -l username -pw password < sftp.txt

現在的問題是,遠程伺服器的備份檔案採用的檔案名稱是自動建立的,存放在/logs目錄,檔案名稱格式為“dumpyyyymmdd.log”,比如dump20070310.log,那麼這個每天變化的檔案名稱如何能傳送到指令檔sftp.txt中呢?

只好google了,終於找到一個可以將date/time用於批次檔的程式realdate.com,:
http://www.huweb.hu/maques/realdate.htm

好了,現在開始寫批處理指令碼sftp.bat。

@echo off

# 寫psftp需要的指令檔sftp.txt
for /f %%i in (‘realdate.com /d‘) do (set remotelogname=%%i)
echo cd /logs > sftp.txt
echo get dump%remotelogname%.log >> sftp.txt
echo bye >> sftp.txt

# 寫記錄檔sftp.log
echo --------------------------------------- >> sftp.log
for /f %%i in (‘realdate.com /f="CCYY-MM-DD"‘) do (set locallogdate=%%i)
for /f %%i in (‘realdate.com /f="hh:mm:ss"‘) do (set locallogtime=%%i)
echo %locallogdate% %locallogtime% >> sftp.log
psftp remotehost -l username -pw password < sftp.txt > sftp.log
echo. >> sftp.log
echo done. >> sftp.log

將psftp.exe、realdate.com和sftp.bat放在同一檔案夾中,為sftp.bat建立計劃任務,半夜就可以安心睡覺了。

 

 

 

#########2

        ftp/sftp自動上傳、下載指令碼                                      標籤:               path指令碼userserver                      2012-02-13 18:50             5160人閱讀             評論(0)             收藏              舉報         本文章已收錄於:         

    
      

             分類:         SHELL                                                        

         

著作權聲明:本文為博主原創文章,轉載請寫明出處。

ftp指令碼:

[plain] view plain copy print?
  1. #! /bin/sh  
  2.   
  3. server=172.23.3.150  
  4. remotedir=/users/tmp/  
  5. filename=test.txt  
  6.   
  7. ftp -in << EOM  
  8.   open $server  
  9.   user username password  
  10.   bin  
  11.   cd $remotedir    
  12.   put $filename  
  13.   bye  
  14. EOM   
#! /bin/shserver=172.23.3.150remotedir=/users/tmp/filename=test.txtftp -in << EOM  open $server  user username password  bin  cd $remotedir    put $filename  byeEOM 

 

sftp指令碼:

[plain] view plain copy print?
  1. #!/bin/sh  
  2.   
  3. HOST=172.23.3.150  
  4. USER=root  
  5. PASSWORD=1234rewq  
  6. FILENAME=test.txt  
  7. LOCAL_PATH=/home/ligt/WindRiver/  
  8. REMOTE_PATH=/users/tmp/  
  9.   
  10. lftp -u $USER,$PASSWORD sftp://$HOST << EOM  
  11.   lcd $LOCAL_PATH  
  12.   cd $REMOTE_PATH  
  13.   put $TARGET  
  14.   bye  
  15. EOM  
  16.   
  17. echo "Success!"  
#!/bin/shHOST=172.23.3.150USER=rootPASSWORD=1234rewqFILENAME=test.txtLOCAL_PATH=/home/ligt/WindRiver/REMOTE_PATH=/users/tmp/lftp -u $USER,$PASSWORD sftp://$HOST << EOM  lcd $LOCAL_PATH  cd $REMOTE_PATH  put $TARGET  byeEOMecho "Success!"

 

 

轉:Windows下用sftp自動下載檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.