實現自動FTP

     因爲開發平臺與測試平臺不是同一機器,所以要經常用FTP傳輸東西,不過每次都手工進行FTP太麻煩了,這樣找了一下自動FTP的方法以記之。

     本來想用一個輸入重定向的方法來代替手工輸入 形式如:ftp < ftp.in 結果總是登陸失敗,原尚不十分明確。所以在網上搜了另一個方法:netrc。

 

在自己的home目錄下建立一個權限600,名爲.netrc的文件,內容是:
machine 192.168.0.1 login test password test
這樣以後你每次ftp 192.168.0.1的時候,系統都會幫你以用戶名test,密碼test登錄。
利用這個特徵可以實現自動ftp。
例如你想要每天5:00到192.168.0.1機器上面獲得/test目錄下的文件test.txt,可以這麼做:
建立一個文件ftp_cmd,內容爲:
cd test
get test.txt
bye
然後使用crontab -e設置定時任務:
0 5 * * * ftp 192.168.0.1 < ftp_cmd


.netrc的一個範例:

machine 192.168.0.82 login abc password abc123
macdef init
 binary
 bell
 hash
 prompt
 !clear
 mget *
 !clear
 bye


      該文件的作用是爲FTP自動註冊192.168.0.82服務器定義相應的賬號與口令,並定義一個宏init。init宏的工作過程是:將文件傳輸格式類 型設爲二進制(binary);在每個文件傳輸結束後響鈴以提醒用戶(bell);在文件傳輸過程中顯示傳輸進度(hash);關閉交互提示開關 (prompt),以便後繼的“mget *” 操作(獲取遠方服務器當前工作目錄下的所有文件)能自動進行;在“mget *”操作的前後,執行“!clear”清屏;最後執行“bye”退出FTP。注意,上述.netrc文件應以空行結束,因爲文件中定義了一個宏,而宏的定 義必須以空行結束。

       可以定義一些常用的“宏”。一個宏實際上就是用戶預先定義的一組FTP命令,執行一個宏等價於連續自動執行這一組命令。如果宏的名字爲“init”,那麼在FTP註冊的最後一步完成後將自動執行init宏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章