sftp批量下载命令
时间: 2023-12-02 08:41:31 浏览: 215
以下是使用lftp命令进行sftp批量下载的示例代码:
```bash
#!/bin/bash
USER=xxx # sftp账户名
PASSWORD=xxx # sftp密码
SRCDIR=/data/20230306 # sftp服务器上待下载文件目录
DESDIR=/upload/supply/20230304 # 本地目标目录
IP=xxx # sftp服务器IP地址
PORT=xxx # sftp服务器端口号
fileName=T_CHGEINFO_20230304.* # 待下载文件名,可使用通配符
lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOF
cd ${DESDIR}
lcd ${SRCDIR}
mget ${fileName}
by
EOF
echo '下载完成'
```
该脚本中使用了lftp命令进行sftp连接和文件下载。其中,-u选项用于指定sftp账户名和密码,sftp://${IP}:${PORT}用于指定sftp服务器的地址和端口号,<<EOF和EOF之间的代码用于在sftp服务器上执行命令,cd和lcd分别用于切换sftp服务器和本地的工作目录,mget用于批量下载文件,by用于退出sftp连接。
相关问题
批量下载sftp文件
要批量下载SFTP文件,可以使用LFTP工具。LFTP是一款著名的字符界面的文件传输工具,支持FTP、HTTP、FISH、SFTP、HTTPS和FTPS协议。通过使用LFTP,你可以在脚本中批量下载SFTP文件。以下是一个示例脚本:
```
#!/bin/bash
HOST="sftp.example.com"
USER="your_username"
PASSWORD="your_password"
REMOTE_DIR="/path/to/remote/directory"
LOCAL_DIR="/path/to/local/directory"
lftp -u $USER,$PASSWORD sftp://$HOST <<EOF
cd $REMOTE_DIR
lcd $LOCAL_DIR
mirror --verbose --delete
EOF
```
在这个脚本中,你需要替换`HOST`,`USER`,`PASSWORD`,`REMOTE_DIR`和`LOCAL_DIR`为你的实际信息。脚本中的`mirror`命令会从远程目录下载所有文件到本地目录,并且会删除本地目录中不存在于远程目录的文件。
请确保在运行脚本之前安装了LFTP工具。然后,你可以运行这个脚本来批量下载SFTP文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [JAVA SFTP文件上传、下载及批量下载](https://blog.csdn.net/weixin_29378975/article/details/114201009)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [sftp批量下载文件的shell脚本](https://blog.csdn.net/weixin_39309402/article/details/100029957)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
linux如何sftp后台下载
在Linux系统上使用SFTP(Secure File Transfer Protocol)进行后台下载通常涉及使用命令行工具`sftp`。以下是通过SSH(Secure Shell)在后台执行SFTP下载的基本步骤:
1. 打开终端并登录到支持SFTP的服务器。如果你有公钥认证配置,可以使用`ssh`命令自动登录,例如:
```
ssh user@server_address
```
如果需要输入密码,请先登录到SSH。
2. 使用`sftp`命令进入远程目录,然后开始下载文件。加上`-o BatchMode=yes`选项可以让`sftp`进入静默模式,不显示交互信息。接着使用`get`或`mget`命令下载文件(后者用于批量下载)。例如:
```
sftp -o BatchMode=yes user@server_address << EOF
get /path/to/local/file remote_file.txt
mget /path/to/directory/* local_directory/
EOF
```
3. 将上述命令放入一个脚本(如`download.sh`),然后使用`nohup`命令让任务在后台运行,并将标准输出和错误重定向到文件:
```
nohup bash download.sh > download_log.txt 2>&1 &
```
这样,你可以关闭当前终端窗口,而下载过程会继续在后台运行。
阅读全文