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:[email protected]

# 列出当前ftp目录的文件
lftp [email protected]:~> ls

# 进入ftp上的某个目录
lftp [email protected]:~> cd testDir

# 定位到本地目录
lftp [email protected]:~> lcd /local/testDir

# 上传单个文件
lftp [email protected]:~> put testFile

# 上传多个文件,可以使用通配符
lftp [email protected]:~> mput *.md

# 将本地的目录同步到ftp上
lftp [email protected]:~> mirror -R . 

# 获取远程的文件
lftp [email protected]:~> get testFile

# 获取远程的多个文件
lftp [email protected]:~> mget testFile

# 将远程的目录同步到本地
lftp [email protected]:~> mirror . 

# 退出ftp
lftp [email protected]:~> exit

ftp上传脚本:

#!/bin/bash

pathStr=`pwd`

# 将脚本所在的目录的所有文件都上传到ftp上
# 参数为ftp连接信息 username:password@ip
lftp $1 <

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

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

你可能感兴趣的:(linux使用命令行操作ftp)