日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux脚本里使用sftp,如何在shell脚本里使用sftp批量传送文件

發(fā)布時(shí)間:2025/3/15 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux脚本里使用sftp,如何在shell脚本里使用sftp批量传送文件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

主要步驟如下:

1.為運(yùn)行shell腳本的本地用戶生成密鑰對(duì)

2.將其中的公鑰分發(fā)到sftp欲登錄的遠(yuǎn)程服務(wù)器上

3.編寫并以上面的本地用戶運(yùn)行shell腳本

一.生成密鑰對(duì)

在shell腳本中使用sftp時(shí)必須用到密鑰對(duì)(公鑰和私鑰).可使用下列方式生成(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,即當(dāng)前用戶local_user的私鑰

Enter passphrase (empty for no passphrase):

# 按回車,表示讀取密鑰時(shí)不需要密鑰的密碼

Enter same passphrase again:

# 確認(rèn)密鑰的密碼,必須和上面的輸入相同

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 ...

# 密鑰指紋

二.分發(fā)公鑰

為了使用密鑰,必須將公鑰分發(fā)到欲登錄的遠(yuǎn)程服務(wù)器上,這里遠(yuǎn)程服務(wù)器記為remote_host,欲登錄的遠(yuǎn)程用戶記為remote_user

1.copy公鑰到欲登錄的遠(yuǎn)程服務(wù)器的遠(yuǎn)程用戶的家目錄下,例如:

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

若目錄/home/remote_user/.ssh/不存在,請(qǐng)先創(chuàng)建之.

2.將copy來(lái)的公鑰文件改名為authorized_keys

3.修改公鑰文件的訪問(wèn)權(quán)限

chmod 644 authorized_keys

三.示例

目標(biāo):

從遠(yuǎn)程服務(wù)器remote_host:/home/remote_user/data/

傳送下列文件到本地計(jì)算機(jī)的當(dāng)前目錄: /home/local_user/data/:

20050201

20050202

20050203

20050204

20050205

方式1: 批模式

sftp提供了一個(gè)選項(xiàng)-b,用于集中存放sftp命令(該選項(xiàng)主要用于非交互模式的sftp).因此對(duì)于上面的目標(biāo),可以生成如下的命令文件:

cd /home/remote_user/data/

lcd /home/local_user/data/

-get 20050201 .

-get 20050202 .

-get 20050203 .

-get 20050204 .

-get 20050205 .

quit

這里存為: sftp_cmds.txt

說(shuō)明: get命令前加一個(gè)"-"以防止其執(zhí)行錯(cuò)誤時(shí)sftp執(zhí)行過(guò)程被終止.

以下為腳本示例:

#!/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

總結(jié)

以上是生活随笔為你收集整理的linux脚本里使用sftp,如何在shell脚本里使用sftp批量传送文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。