共计 1598 个字符,预计需要花费 4 分钟才能阅读完成。
阿蛮君一直以来都不是很喜欢用 ftp,主要是它很慢,不管是上传下载或者仅仅是浏览个目录。但是由于各种原因,还是会用到 ftp,今天就尝试用 docker 搭建 ftp 服务器,并且使用比 ftp 命令很好用的客户端工具 ncftp。
一、搭建ftp
1. docker搭建
docker run -d \
-v /home/docker/vsftpd:/home/vsftpd \
-p 20:20 \
-p 21:21 \
-p 21100-21110:21100-21110 \
-e FTP_USER=admin \
-e FTP_PASS=123456 \
-e PASV_ADDRESS=172.21.9.125 \
-e PASV_MIN_PORT=21100 \
-e PASV_MAX_PORT=21110 \
--name vsftpd \
--restart=always fauria/vsftpd
这里的 PASV_ADDRESS
修改为服务器的IP。
2. 创建新用户
如果有需要可以创建新的用户。
# 创建新用户的目录
docker exec -it vsftpd mkdir /home/vsftpd/test
# 创建账户密码
docker exec -it vsftpd echo -e "test\n123456" >> /etc/vsftpd/virtual_users.txt
# 重新加载数据库文件
docker exec -it vsftpd /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
# 重启容器
docker restart vsftpd
二、ncftp安装使用
ncftp 相比较于传统的 ftp 有以下优点:
1.支持命令行自动化:ncftp 提供了丰富的命令行选项和参数,使其非常适合自动化脚本和批处理任务。你可以编写脚本来执行复杂的文件传输操作,并将其集成到自动化流程中。
2.递归传输:ncftp 支持递归传输,可以传输整个文件夹及其子目录,而不仅仅是单个文件。这对于需要传输大量文件或整个目录结构的情况非常有用。
3.断点续传:ncftp 具有断点续传的功能,如果在文件传输过程中断开连接,它可以从中断的地方继续传输,而不需要重新传输整个文件。这对于大文件或不稳定的网络连接非常有用。
4.支持脚本化批量操作:ncftp 具有批处理操作的功能,可以通过脚本一次执行多个命令和任务,提高效率和便捷性。
1. 安装
yum -y install ncftp
2. ftp使用
2.1 连接ftp服务器
ncftp -u username -p password ftp.example.com
2.2 列出目录内容
列出本地目录内容:
lls
列出服务器目录内容
ls
2.3 切换目录
切换本地目录:
lcd /tmp
切换服务器目录:
cd /tmp
2.4 上传
上传文件:
这里本地目录可以使用相对路径或者绝对路径。
# 上传到当前路径
put /tmp/1.txt 1.txt
# 上传到绝对路径
put -z /tmp/1.txt /tmp/1.txt
# 上传并修改文件名
put -z /tmp/1.txt /tmp/2.txt
# 上传多个文件到当前目录
put /tmp/1.txt /tmp/2.txt
上传目录:
# 递归上传
put -R /tmp/ /tmp
2.5 下载
下载文件:
# 可下载一个或多个文件
get /tmp/1.txt /tmp/2.txt
# 下载并修改文件名
get -z /tmp/1.txt 2.txt
# 根据后缀下载
get /tmp/*.txt
下载目录:
get -R /tmp
提示是这样下载目录,但是报错,暂不清楚原因。
Could not traverse directory: could not parse extended file or directory information.
get /tmp/: bad parameter given to library.
2.6 删除
删除文件:
rm /tmp/1.txt
删除文件夹:
rm -r /tmp
提醒:本文发布于539天前,文中所关联的信息可能已发生改变,请知悉!