linux ftp 批量取文件shell
时间: 2023-10-13 13:04:18 浏览: 92
您可以使用以下的脚本从 FTP 服务器上批量下载文件:
```bash
#!/bin/bash
HOST='ftp.example.com'
USER='your_username'
PASSWD='your_password'
REMOTE_DIR='/path/to/remote/directory'
LOCAL_DIR='/path/to/local/directory'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTE_DIR
lcd $LOCAL_DIR
mget *
quit
END_SCRIPT
exit 0
```
请将 `ftp.example.com` 替换为您的 FTP 服务器地址, `your_username` 替换为您的 FTP 用户名, `your_password` 替换为您的 FTP 密码, `/path/to/remote/directory` 替换为您要下载的远程目录路径, `/path/to/local/directory` 替换为您要下载到的本地目录路径。
此脚本会将远程目录下的所有文件批量下载到本地目录中。如果您只想下载某些特定的文件,可以将 `mget *` 替换为 `mget file1 file2 file3 ...`,其中 `file1 file2 file3 ...` 是您要下载的文件名。
相关问题
linux ftp 批量取删文件shell
您可以使用以下的脚本从 FTP 服务器上批量下载并删除文件:
```bash
#!/bin/bash
HOST='ftp.example.com'
USER='your_username'
PASSWD='your_password'
REMOTE_DIR='/path/to/remote/directory'
LOCAL_DIR='/path/to/local/directory'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTE_DIR
lcd $LOCAL_DIR
mget *
mdelete *
quit
END_SCRIPT
exit 0
```
请将 `ftp.example.com` 替换为您的 FTP 服务器地址, `your_username` 替换为您的 FTP 用户名, `your_password` 替换为您的 FTP 密码, `/path/to/remote/directory` 替换为您要下载的远程目录路径, `/path/to/local/directory` 替换为您要下载到的本地目录路径。
此脚本会将远程目录下的所有文件批量下载到本地目录中,并将它们从远程目录中删除。如果您只想下载某些特定的文件,可以将 `mget *` 替换为 `mget file1 file2 file3 ...`,其中 `file1 file2 file3 ...` 是您要下载的文件名;将 `mdelete *` 替换为 `mdelete file1 file2 file3 ...`,其中 `file1 file2 file3 ...` 是您要删除的文件名。
linux ftp 批量取删文件shell 防止文件丢失
为了避免在下载和删除文件时出现问题而导致文件丢失,您可以在脚本中添加一些错误处理和日志记录的代码。以下是一个示例脚本:
```bash
#!/bin/bash
HOST='ftp.example.com'
USER='your_username'
PASSWD='your_password'
REMOTE_DIR='/path/to/remote/directory'
LOCAL_DIR='/path/to/local/directory'
LOG_FILE='/path/to/log/file'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTE_DIR
lcd $LOCAL_DIR
mget *
mdelete *
quit
END_SCRIPT
if [ $? -eq 0 ]; then
echo "$(date +'%Y-%m-%d %H:%M:%S') - FTP download and delete completed successfully" >> $LOG_FILE
else
echo "$(date +'%Y-%m-%d %H:%M:%S') - FTP download and delete failed" >> $LOG_FILE
fi
exit 0
```
请将 `ftp.example.com` 替换为您的 FTP 服务器地址, `your_username` 替换为您的 FTP 用户名, `your_password` 替换为您的 FTP 密码, `/path/to/remote/directory` 替换为您要下载的远程目录路径, `/path/to/local/directory` 替换为您要下载到的本地目录路径,`/path/to/log/file` 替换为您要记录日志的文件路径。
在脚本中,我们使用了 `$?` 变量来获取上一个命令的退出状态。如果退出状态为 0,则说明下载和删除操作都成功完成了,并将成功的信息记录到日志文件中;否则,将失败的信息记录到日志文件中。这样,即使出现错误,也可以在日志文件中查看到相关信息,从而更容易地进行排查和修复。
阅读全文