當前位置:首頁 » 文件傳輸 » shell怎麼上傳sftp
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

shell怎麼上傳sftp

發布時間: 2022-06-20 22:07:49

⑴ linux下 如何寫一個shell 使用sftp發送文件到指定伺服器 每次要手工輸入

你可以試試下面的方法,把sftp內的操作都寫到EOF裡面

sftp -oPort=$PORT $USERNAME@$IP <<EOF
cd $FTP2DIR
mkdir $DATA_DATE
cd $DATA_DATE
put $EXPORT_LOCAL_DIR/$data_file_name
put $EXPORT_LOCAL_DIR/$verf_file_name
exit
close
bye
EOF

⑵ linux怎麼給用戶許可權sftp上傳許可權

眾所周知SFTP賬號是基於SSH賬號的,所以在默認情況下訪問伺服器的許可權是非常大的。下面為SFTP用戶許可權設置方法。
必要條件:
你的openssh-server版本至少得失4.8p1, 因為配置許可權需要版本添加的新配置項ChrootDirectory來完成。
如何查看自己伺服器上的ssh版本?大家可以嘗試以下命令:
$ ssh -V
具體實施步驟:
1. 我們需要創建一個用戶組,專門用於sftp用戶
$ groupadd sftpusers
2. 我們創建一個用戶test
$ useradd -s /bin/false -G sftpuser test
注意這里我們將test用戶的shell設置為/bin/false使他沒有登陸shell的許可權
3. 編輯 /etc/ssh/sshd_config
找到Subsystem這個配置項,將其修改為
Subsystem sftp internal-sftp
然後再到文件最尾處增加配置設定屬於用戶組sftpusers的用戶都只能訪問他們自己的home文件夾
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
保存並關閉文件
4. 修改test用戶home文件夾的許可權,讓其屬於root用戶
chown root ~test
5. 重啟sshd服務
$ service sshd restart
6. 測試用戶賬號
$ ssh test@localhost
連接會被拒絕或者無法登陸
$ sftp tesst@localhost
登陸後你會發現你的賬號無法切換到除自己home目錄之外的地方的
常見問題:
如果你鏈接伺服器的時候出現下面的提示:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
這個問題的原因是ChrootDirectory的許可權問題,你設定的目錄必須是root用戶所有,否則就會出現問題。所以請確保sftp用戶根目錄的所有人是root, 許可權是 750 或者 755。

⑶ xshell5怎麼上傳文件xftp

使用Xshell訪問Linux系統的時候,經常需要上傳和下載文件,文件傳輸軟體Xftp可以和Xshell很好的結合在一起使用。我們在操作Linux伺服器的時候都是先使用Xshell的,然後遇到需要上傳或下載文件的時候,再打開Xftp。下面就一起來學慣用Xshell關聯Xftp傳輸文件。

關聯Xftp傳輸文件的具體步驟如下:

1.打開Xshell軟體,然後連接上Linux伺服器,cd命令切換到一個指定的目錄。為了演示Xftp關聯的效果,這里我們切換到一個測試目錄。然後點擊如下圖所示的Xftp綠色的按鈕即可打開軟體。

圖6:下載文件

以上就是給大家介紹的用Xshell關聯Xftp傳輸文件的方法,關聯之後,就可以快速地對伺服器進行上傳和下載文件,這樣就可以提高工作效率。

⑷ 怎麼實現shell腳本自動上傳

不知道你對ssh服務有多少了解,只要你能夠使用ssh連接到伺服器,那就跟你能不能碰到伺服器沒關系,可以使用scp和sftp傳輸文件,本地的.ssh/known_hosts裡面保存的是主機密鑰,只是為了第一次遠程連接建立主機互信的,並沒什麼卵用。要想不用密碼而使用密鑰直接登錄,還需要在本地用ssh-keygen生成密鑰對,然後把公鑰上傳至伺服器端才行。至於你說的實現shell腳本上傳,這就是一個命令就能解決,不知道能否把問題說得更明確一點

⑸ linux系統內 怎麼使用shell實現自動上傳文件到ftp伺服器

ftp自動登錄上傳單個文件。
把下面腳本另存為文件加入到crontab中即可實現ftp自動上傳文件。
####把本地/home/databachup/a.sh up ftp /home/databackup 下####
#!/bin/bash
ftp -n<<!
open 192.168.1.171
user guest 123456
binary
cd /home/data
lcd /home/databackup
prompt
put a.sh a.sh
close
bye
!
註解:
1. -n 不受.netrc文件的影響。(ftp默認為讀取.netrc文件中的設定)
2. << 是使用即時文件重定向輸入。
3. !是即時文件的標志它必須成對出現,以標識即時文件的開始和結尾。

⑹ 怎樣在SecureCRT的shell里用命令上傳下載文件(轉)

SecureCRT記住密碼的功能容易設置,於是偶這懶人,後來習慣了用SecureCRT,但其上傳文件功能偶一直沒弄明白過。之前一直用的是pshell,因為pshell有個功能強大的secureftp功能,打開之後,直接將目錄或文件拖到此窗口即可。SecureCRT卻沒有那麼方便。 1.在shell里直接使用命令 首先最好設置好本地與遠程主機傳輸文件的目錄,因為使用命令下載文件時是不會提示選擇下載的目標目錄的。 設置方法:本地目錄在 選項-》會話選項-》SFTP標簽 的本地目錄里設置。 目錄設置好之後就可以使用命令上傳和下載文件了 上傳命令:rz rz輸入後SecureCRT會打開一個文件選擇對話框,供用戶選擇需上傳的文件 下載命令:sz 可用sz -h 查看sz更多選項 用法很簡單,但是可惜,使用這兩命令不能傳輸目錄,只能是文件。 2.使用SecureCRT的SFTP功能 在已連接的遠程主機標簽上點擊右鍵選擇連接SFTP標簽頁即可建立SFTP的連接,這是一個使用命令的連接會話不提供圖形界面。 目錄轉換:遠程主機上: 可以使用所有shell中的目錄和文件操作命令:ls,pwd,cd等等來對 遠程主機上的目錄進行更改操作,不能使用vi等文件編輯工具 本地主機上:對本地目錄進行操作需在以上命令前加上"l",即 ls-》lls,pwd-》lpwd,cd-》lcd文件傳輸上傳文件: put file 上傳目錄:put -r dir 下載文件: get file 下載目錄:get -r dir 註:這里file可以使用*等通配符 如果是通過通道機登錄的某遠程主機,則SFTP就不可用了。例如通過10.10.20.124登錄的60.25.21.148,操作是在60.25.21.148上,直接右鍵建立SFTP連接是建立不起來的,因此只能使用上面的sz和rz的命令操作。

⑺ linux定時通過shell腳本利用sftp命令上傳文件。需要手動輸入密碼,用openSSH-clients這個插件可以解決么

Linux系統提供多種不同的Shell以供選擇。

常用的有Bourne Shell(簡稱sh)、C-Shelll(簡稱csh)、Korn Shell(簡稱ksh)和Bourne Again Shell (簡稱bash)。
Bourne Shell是AT&T Bell實驗室的 Steven Bourne為AT&T的Unix開發的,它是Unix的默認Shell,也是其它Shell的開發基礎。Bourne Shell在編程方面相當優秀,但在處理與用戶的交互方面不如其它幾種Shell。
C Shell是加州伯克利大學的Bill Joy為BSD Unix開發的,與sh不同,它的語法與C語言很相似。它提供了Bourne Shell所不能處理的用戶交互特徵,如命令補全、命令別名、歷史命令替換等。但是,C Shell與BourneShell並不兼容。
Korn Shell是AT&T Bell實驗室的David Korn開發的,它集合了C Shell和Bourne Shell的優點,並且與Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和編程交互界面都很好。
Bourne Again Shell (即bash)是自由軟體基金會(GNU)開發的一個Shell,它是Linux系統中一個默認的Shell。Bash不但與Bourne Shell兼容,還繼承了C Shell、Korn Shell等優點

⑻ 如何寫一個shell腳本用sftp上傳文件

主要步驟如下:1.為運行shell腳本的本地用戶生成密鑰對
2.將其中的公鑰分發到sftp欲登錄的遠程伺服器上
3.編寫並以上面的本地用戶運行shell腳本
一.生成密鑰對
在shell腳本中使用sftp時必須用到密鑰對(公鑰和私鑰).可使用下列方式生成(SSH 2.X版本),這里本地用戶記為:local_user:
$ ssh-keygen -dsa
屏幕提示:
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_host,欲登錄的遠程用戶記為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

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

1、sftp屬於互動式的,所以你得緩存下命令
#!/bin/sh
sftp -o Port=3322 [email protected]:/opt << !
mput *.log
!
2、用scp一行搞定
scp -P3322 /opt/*.txt [email protected]:/tmp
3、用rsync同步整個目錄
rsync -av '-e ssh -p 3322' /data/test [email protected]:/data

⑽ 怎樣用xshell把文件從一台伺服器傳到另一台伺服器

SFTP是基於SSH的文件傳輸協議,與ZMODEM相比具有更加安全且更為快速的文件傳輸功能。您可以使用sftp的命令從本地Xshell提示轉移文件。

1、 使用以下的sftp命令連接到伺服器,文件將被轉移:

sftp [user@]host [port]

Example of command line)

Xshell> sftp myhostname

Xshell> sftp myusername@myhostname

Xshell> sftp myusername@myhostname 12345

2、 sftp提示,「幫助」命令列出一組可用的sftp命令:

3、 以下是上傳文件的樣本操作:

1)使用的cd命令搬到一個你想上傳文件的目錄。 (伺服器)

2)使用「液晶」命令搬到一個目錄文件,將上傳、保存。 (窗口)

3)檢查文件名用「get」命令。

4)開始上傳用「put」命令。

如果已經安裝Xftp, Xshell可以創建一個Xftp會話,可以更容易和更安全的完成文件傳輸。