Linux

自動 FTP 腳本未找到源目錄

  • January 8, 2020

如何修改下面的腳本以包含源目錄,以便它知道在哪個位置檢索傳輸所需的文件?

我有一個 bash 腳本,用於自動將文件傳輸到遠端伺服器,每週發生一次。

這是腳本:

#!/bin/bash

HOST=sftp.mydomain.com  
USER=user           
PASS=pass          

ftp -inv $HOST << EOF
$USER $PASS
cd /d D:\destination\directory
put file1.gz
put file2.gz
put file3.gz

bye

EOF

文件 1-3 都在源/目錄中,所以我想將所有文件從源/目錄傳輸到上面指定的目標路徑。

但是,我相信因為腳本在源 VM 上執行,所以我不需要指定目錄,因為腳本可以簡單地從任何文件夾中提取它(我理解新手錯誤)。

或者:有沒有一種更簡單的方法可以將 ftp 用於整個目錄,而不是簡單地列出文件夾的全部內容?

要更改ftp程序將哪個目錄視為源,cd預先或lcd在其中:

cd /source/directory
ftp ...
ftp ...
lcd /source/directory
...

lcd(from man ftp)local change directory; 它會:

更改本地電腦上的工作目錄。

這裡的“本地”是指您執行的系統ftp

要將目前本地目錄中的所有文件放到 ftp 中的目前遠端目錄中,請使用:

prompt
mput *

FTP 命令在“prompt多個”操作期間禁用互動式提示,例如mgetmput。引用FTP 手冊頁(或查看您的本地文件man ftp):

在多個文件傳輸期間發生互動式提示,以允許使用者有選擇地檢索或儲存文件。

引用自:https://unix.stackexchange.com/questions/559707