在shell指令碼裡使用sftp批量上傳檔案

來源:互聯網
上載者:User

如何在shell指令碼裡使用sftp批量傳送檔案


主要步驟如下:

1.為運行shell指令碼的本機使用者產生金鑰組
2.將其中的公開金鑰分發到sftp欲登入的遠程伺服器上
3.編寫並以上面的本機使用者運行shell指令碼

一.產生金鑰組

在shell指令碼中使用sftp時必須用到金鑰組(公開金鑰和私密金鑰).可使用下列方式產生(SSH 2.X版
本),這裡本機使用者記為:local_user:

$ ssh-keygen –d

工具提示:

Generating public/private dsa key pair.

Enter file in which to save the key (/home/local_user/.ssh/id_dsa): 
# 按斷行符號儲存為: /home/local_user/.ssh/id_dsa,即目前使用者local_user的私密金鑰

Enter passphrase (empty for no passphrase): 
# 按斷行符號,表示讀取密鑰時不需要密鑰的密碼

Enter same passphrase again: 
# 確認密鑰的密碼,必須和上面的輸入相同

Your identification has been saved in /home/local_user/.ssh/id_dsa.
# 私密金鑰儲存資訊

Your public key has been saved in /home/local_user/.ssh/id_dsa.pub.
# 公開金鑰儲存資訊

The key fingerprint is:
ec:41:e8:08:38:0b:f8:1e:bc:92:98:32:fc:d7:69:7d ...
# 密鑰指紋

二.分發公開金鑰

為了使用密鑰,必須將公開金鑰分發到欲登入的遠程伺服器上,這裡遠程伺服器記為remote_hos
t,欲登入的遠端使用者記為remote_user

1.copy公開金鑰到欲登入的遠程伺服器的遠端使用者的家目錄下,例如:

copy id_dsa.pub到remote_host:/home/remote_user/.ssh/

若目錄/home/remote_user/.ssh/不存在,請先建立之.

2.將copy來的公開金鑰檔案改名為authorized_keys

3.修改公開金鑰檔案的存取權限

chmod 644 authorized_keys

三.樣本

目標:

從遠程伺服器remote_host:/home/remote_user/data/
傳送下列檔案到本機電腦的目前的目錄: /home/local_user/data/:

20050201
20050202
20050203
20050204
20050205

方式1: 批模式

sftp提供了一個選項-b,用於集中存放sftp命令(該選項主要用於非互動模式的sftp).因此
對於上面的目標,可以產生如下的命令檔案:

cd /home/remote_user/data/
lcd /home/local_user/data/
-get 20050201 .
-get 20050202 .
-get 20050203 .
-get 20050204 .
-get 20050205 .
quit

這裡存為: sftp_cmds.txt

說明: get命令前加一個"-"以防止其執行錯誤時sftp執行過程被終止.

以下為指令碼樣本:

#!/bin/sh
sftp -b ./sftp_cmds.txt remote_user@remote_host

方式二:

#!/bin/sh
sftp remote_user@remote_host << EOF
cd /home/remote_user/data/
lcd /home/local_user/data/
-get 20050201 .
-get 20050202 .
-get 20050203 .
-get 20050204 .
-get 20050205 .
quit
EOF 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.