當前位置:首頁 » 文件管理 » 腳本sftp上傳文件

腳本sftp上傳文件

發布時間: 2024-05-23 15:28:14

⑴ 如何在shell腳本里使用sftp批量傳送文件

如何在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.公鑰到欲登錄的遠程伺服器的遠程用戶的家目錄下,例如:

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

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

2.將來的公鑰文件改名為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

⑵ 浣跨敤sftp榪涜屾枃浠朵紶杈

SFTP鏄瘲SH File Transfer Protocol鐨勭緝鍐欙紝瀹夊叏鏂囦歡浼犻佸崗璁銆係FTP涓嶧TP鏈夌潃鍑犱箮涓鏍風殑璇娉曞拰鍔熻兘銆係FTP涓篠SH鐨勫叾涓涓閮ㄥ垎錛屾槸涓縐嶄紶杈撴。妗堣嚦 Blogger 浼烘湇鍣鐨勫畨鍏ㄦ柟寮忋傚叾瀹炲湪SSH杞浠跺寘涓錛屽凡緇忓寘鍚浜嗕竴涓鍙浣淪FTP鐨勫畨鍏ㄦ枃浠朵俊鎮浼犺緭瀛愮郴緇燂紝SFTP鏈韜娌℃湁鍗曠嫭鐨瀹堟姢榪涚▼錛屽畠蹇呴』浣跨敤sshd瀹堟姢榪涚▼(絝鍙e彿榛樿ゆ槸22)鏉ュ畬鎴愮浉搴旂殑榪炴帴鍜岀瓟澶嶆搷浣滐紝鎵浠ヤ粠鏌愮嶆剰涔変笂鏉ヨ達紝SFTP騫朵笉鍍忎竴涓鏈嶅姟鍣ㄧ▼搴忥紝鑰屾洿鍍忔槸涓涓瀹㈡埛絝紼嬪簭銆

SFTP涓嶧TP宸鍒

鍙浣跨敤SFTP浼犺緭鏂囦歡錛屼笉鑳戒嬌鐢╯sh鐧誨綍緋葷粺

鍒涘緩sftp鐢ㄦ埛緇

鍒涘緩sftp鐢ㄦ埛

灝咰hrootDirectory鐩褰曡劇疆涓/home錛堟墍鏈夋潈蹇呴』涓簉oot錛夛紝鐒跺悗 ForceCommand 浣跨敤-d 閫夐」灝嗙敤鎴風殑涓葷洰褰曟寚瀹氫負璧峰嬬洰褰

褰撳墠/home鐩褰

緙栬緫/etc/ssh/sshd_config鏂囦歡

浣跨敤SFTP瀹㈡埛絝錛屼笂浼犳枃浠

鏌ョ湅鐢ㄦ埛home鐩褰

宓屽椾富鐩褰

鍒涘緩鐩褰曞苟璁劇疆鏉冮檺

鏌ョ湅褰撳墠鐨勭洰褰曠粨鏋

淇鏀/etc/ssh/sshd_config鏂囦歡

浣跨敤SFTP瀹㈡埛絝涓婁紶鏂囦歡

鏌ョ湅涓婁紶鐨勬枃浠朵綅緗

楠岃瘉

浠10.10.0.1鏈哄櫒鐧誨綍

10.10.0.1鏈哄櫒鑳界湅鍒版墍鏈夌殑鐩褰

浠庡叾浠栦富鏈虹櫥褰

鍏朵粬涓繪満鍙鑳界湅鍒伴檺瀹氱殑鐩褰

灞炰簬sftp-only鐢ㄦ埛緇勶紝浣嗘槸涓嶉檺鍒秙sh鍙妔ftp

鍒涘緩鐢ㄦ埛

淇鏀歸厤緗

楠岃瘉

ssh鐧誨綍楠岃瘉

淇鏀箂shd閰嶇疆

淇鏀 /etc/rsyslog.conf錛屽湪鏈鍚庢坊鍔

SFTP 鍛戒護

⑶ 鍦 linux 涓浣跨敤 sFTP 涓婁紶鎴栦笅杞芥枃浠跺す

sFTP錛堝畨鍏ㄦ枃浠朵紶杈撶▼搴忥級鏄涓縐嶅畨鍏ㄧ殑浜や簰寮忔枃浠朵紶杈撶▼搴忥紝鍏跺伐浣滄柟寮忎笌 FTP錛堟枃浠朵紶杈撳崗璁錛夌被浼箋 鐒惰岋紝sFTP 姣 FTP 鏇村畨鍏錛涘畠閫氳繃鍔犲瘑 SSH 浼犺緭澶勭悊鎵鏈夋搷浣滐紝鍦ㄦ湰鏂囦腑錛屾垜浠灝嗗悜浣犲睍紺哄備綍浣跨敤 sFTP 涓婁紶/涓嬭澆鏁翠釜鐩褰曪紙鍖呮嫭鍏跺瓙鐩褰曞拰瀛愭枃浠訛級錛屽傚筁inux緋葷粺涓嶅お鐔熸倝鐨勮瘽鍙浠ュ弬鑰冦奓iux灝辮ヨ繖涔堝︺嬭繖鏈涔︺
濡備綍鍦 Linux 涓浣跨敤 sFTP 浼犺緭鏂囦歡/鏂囦歡澶
榛樿ゆ儏鍐典笅錛孲FTP 鍗忚閲囩敤鍜 SSH 浼犺緭鍗忚涓鏍風殑鏂瑰紡寤虹珛鍒拌繙紼嬫湇鍔″櫒鐨勫畨鍏ㄨ繛鎺ャ傝櫧鐒訛紝鐢ㄦ埛楠岃瘉浣跨敤綾諱技浜 SSH 榛樿よ劇疆鐨勫瘑鐮佹柟寮忥紝浣嗘槸錛屽緩璁鍒涘緩鍜屼嬌鐢 SSH 鏃犲瘑鐮佺櫥褰曪紝浠ョ畝鍖栧拰鏇村畨鍏ㄥ湴榪炴帴鍒拌繙紼嬩富鏈恆 瑕佽繛鎺ュ埌榪滅▼ sftp 鏈嶅姟鍣錛屽備笅寤虹珛涓涓瀹夊叏 SSH 榪炴帴騫跺壋寤 SFTP 浼氳瘽錛 $ sftp [email protected] 鐧誨綍鍒拌繙紼嬩富鏈哄悗錛屼綘鍙浠ュ備笅榪愯屼氦浜掑紡鐨 sFTP 鍛戒護 sftp ls        #list directory sftp pwd      #print working directory on remote host sftp lpwd     #print working directory on local host sftp mkdir uploads   #create a new directory

瑕佸皢鏁翠釜鐩褰曚笂浼犲埌榪滅▼ Linux 涓繪満涓錛岃蜂嬌鐢╬ut鍛戒護銆備絾鏄錛屽傛灉鐩褰曞悕縐頒笉瀛樺湪浜庤繙紼嬩富鏈轟笂鐨勫伐浣滅洰褰曚腑錛屼綘灝嗘敹鍒伴敊璇錛屽備笅闈㈢殑灞忓箷鎴鍥炬墍紺恆 鍥犳わ紝棣栧厛鍦ㄨ繙紼嬩富鏈轟笂鍒涘緩涓涓鍏鋒湁鐩稿悓鍚嶇О鐨勭洰褰曪紝鐒跺悗浠庢湰鍦頒富鏈轟笂浼犲畠錛-r鍙傛暟鍏佽告嫹璐濆瓙鐩褰曞拰瀛愭枃浠訛細 sftp put -r Tecmint.com-articles sftp mkdir Tecmint.com-articles sftp put -r Tecmint.com-articles

瑕佷繚鐣欎慨鏀規椂闂淬佽塊棶鏃墮棿浠ュ強琚浼犺緭鐨勬枃浠剁殑妯″紡錛岃蜂嬌鐢-p鏍囧織銆 sftp put -pr Tecmint.com-articles
濡備綍浣跨敤 sFTP 涓嬭澆鏂囦歡澶
瑕佷粠榪滅▼ Linux 涓繪満涓嬭澆鏁翠釜 fstools-0.0 鏂囦歡澶瑰埌鏈鏈轟腑錛屽備笅鎵紺轟嬌鐢 get 鍛戒護甯︿笂-r鏍囧織錛 sftp get -r fstools-0.0

濡傛灉鏂囦歡澶瑰凡緇忎笅杞藉畬鎴愪簡錛屾帴鐫鏌ョ湅鏈鏈虹殑宸ヤ綔鐩褰曘 瑕侀鍑 sFTP shell錛岃緭鍏ワ細 sftp bye鎴栬卻ftp exit 璇鋒敞鎰忥紝涓轟簡闃叉㈢敤鎴瘋塊棶榪滅▼涓繪満涓婄殑鏁翠釜鏂囦歡緋葷粺錛屽嚭浜庡畨鍏ㄥ師鍥狅紝浣犲彲浠ヤ嬌鐢 chroot Jail灝 sFTP 鐢ㄦ埛闄愬埗鍒板叾涓葷洰褰曚腑銆 灝辨槸榪欐牱浜嗭紒鍦ㄦ湰鏂囦腑錛屾垜浠鍚戜綘灞曠ず浜嗗備綍浣跨敤 sFTP 涓婁紶/涓嬭澆鏁翠釜鐩褰曘

⑷ linux下使用ftp怎麼使用命令上傳文件

在 Linux 系統提示符 $ 下,使用 ftp 命令,如下所示:
$ftp a.b.c.d <cr> (其中:a.b.c.d 為假設的一個對方的 FTP 伺服器的 IP 地址)
如果是對方的 FTP 伺服器允許別人進行匿名訪問的話,那麼用戶名就是:anonymous,密碼一般為空。否則的話,就需要輸入對方提前事先提供給你的用戶名和密碼才能夠進行文件傳輸。
使用約定好的用戶名和密碼登錄到對方的 FTP 伺服器之後,你就可以使用 put(傳輸單個文件)、或者 mput(傳輸多個文件)、get(從對方的FTP伺服器上獲取單個文件)、mget(從對方的FTP伺服器上獲取多個文件)了。當然了,一般 FTP 伺服器的系統管理員都會給你一個 /pub 子目錄,供所有用戶使用。所以一般來說,即使使用賬號登錄 FTP 伺服器之後,第一個命令就是: cd /pub ,轉入公共子目錄。

熱點內容
馬自達編程 發布:2025-01-17 14:21:41 瀏覽:492
android語音demo 發布:2025-01-17 14:19:25 瀏覽:700
點歌機怎麼選切換安卓系統 發布:2025-01-17 14:05:33 瀏覽:720
java壓縮與解壓縮 發布:2025-01-17 14:03:24 瀏覽:926
python代碼保護 發布:2025-01-17 14:02:22 瀏覽:324
王者榮耀電腦如何改戰區安卓 發布:2025-01-17 13:23:18 瀏覽:815
華為手機如何開啟說出密碼 發布:2025-01-17 13:23:12 瀏覽:102
伺服器在美國說明什麼 發布:2025-01-17 13:14:10 瀏覽:12
啟辰t90有哪些配置 發布:2025-01-17 13:05:40 瀏覽:39
手機微博密碼怎麼改密碼忘了怎麼辦 發布:2025-01-17 13:04:44 瀏覽:960