如何修改下面的脚本以包含源目录,以便它知道在哪个位置检索传输所需的文件?
我有一个 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都在源/目录中,所以我想将所有文件从源/目录传输到上面指定的目标路径。
但是,我相信因为脚本在源虚拟机上运行,所以我不需要指定目录,因为脚本可以简单地从任何文件夹中提取它(我理解新手错误)。
或者:是否有更简单的方法对整个目录使用 ftp,而不是简单地列出文件夹的全部内容?
答案1
要更改进程将哪个目录ftp
视为源,可以是cd
事先的目录,也可以是lcd
其中的目录:
1.
cd /source/directory
ftp ...
2.
ftp ...
lcd /source/directory
...
lcd
(从man ftp
)local change directory
是;的缩写它会:
更改本地计算机上的工作目录。
这里的“本地”是指您运行的系统ftp
。
要将当前本地目录中的所有文件放到 ftp 中的当前远程目录中,请使用:
prompt
mput *
FTPprompt
命令在“多个”操作(例如mget
或 )期间禁用交互式提示mput
。引用自FTP 手册页(或查看您当地的man ftp
):
多个文件传输期间会出现交互式提示,以允许用户有选择地检索或存储文件。