linux使用命令行操作ftp

由于公司软件比较特殊,我们发布版本通常会给很多服务器都一并发布了,而且用的还是ftp,如果每个服务器都先打开ftp软件,连接上,然后再上传,这样无疑不符合我们程序员懒的特质。

于是我就花时间写了一个这样的脚本用来批量上传文件,我在这里会使用到lftp这个软件,这个软件比系统自带的ftp命令强大多了,而且ftp命令是不支持覆盖现有的目录的,所以还在苦苦寻找使用ftp覆盖目录的童鞋可以不用再继续了,下面就是简单介绍一下lftp的基本操作。

lftp的操作基本和ftp命令大同小异,首先打开ftp连接:lftp username:password@ip,打开链接后,你需要使用cd命令进入到你需要上传的目录,然后通过lcd命令进入到本地的目录,这时你就可以通过putmputmirror等命令上传文件,或通过getmget等命令下载文件,最后可以通过exit退出ftp。

lftp主要命令

命令 作用
help 产看命令列表
ls 显示远端文件列表
cd 切换远端目录
get 下载远程文件(单文件)
mget 下载远程文件(多文件)
pget 使用多个线程来下载远端文件
mirror 同步目录,可以用于下载和上传(- R)目录
put 上传文件(单文件)
mput 上传文件(多文件)
mv 移动文件(可以重命名目录、文件)
rm 删除远端文件
mrm 删除多个文件,可以使用通配符
mkdir 创建目录
rmdir 删除目录
pwd 显示远端的当前目录
lcd 切换本地目录
lpwd 显示本地目录
exit 退出ftp

示例:

# 连接数据库
lftp username:password@127.0.0.1

# 列出当前ftp目录的文件
lftp username@127.0.0.1:~> ls

# 进入ftp上的某个目录
lftp username@127.0.0.1:~> cd testDir

# 定位到本地目录
lftp username@127.0.0.1:~> lcd /local/testDir

# 上传单个文件
lftp username@127.0.0.1:~> put testFile

# 上传多个文件,可以使用通配符
lftp username@127.0.0.1:~> mput *.md

# 将本地的目录同步到ftp上
lftp username@127.0.0.1:~> mirror -R . 

# 获取远程的文件
lftp username@127.0.0.1:~> get testFile

# 获取远程的多个文件
lftp username@127.0.0.1:~> mget testFile

# 将远程的目录同步到本地
lftp username@127.0.0.1:~> mirror . 

# 退出ftp
lftp username@127.0.0.1:~> exit

ftp上传脚本:

#!/bin/bash

pathStr=`pwd`

# 将脚本所在的目录的所有文件都上传到ftp上
# 参数为ftp连接信息 username:password@ip
lftp $1 <<EOF
lcd $pathStr
mirror -R -c .
rm ftp.sh
exit;
EOF

只要将上面脚本的mirror -R -c .改为mirror -c .就可以变成一个备份脚本

如果想要了解lftp的更多细节,可以访问他们的官网

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,714评论 9 468
  • win7 cmd管理员权限设置 net localgroup administrators 用户名 /add 把“...
    f675b1a02698阅读 5,434评论 0 11
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,263评论 2 33
  • 部分内容转载自搜狗百科 cmd是command的缩写.即命令提示符(CMD),是在OS / 2 , Windows...
    青冥之上阅读 2,435评论 0 24
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139