I can believe fly.

Monday, January 5, 2009

linux下玩lftp

基本常识
whereis lftp ## 查看lftp的路径
/usr/bin/lftp ## 执行lftp命令
lftp :~> open ftp地址 ## 在ftp环境下连接远程服务器
lftp :~> help ## 查看在ftp环境下的命令
lftp 192.168.1.1:~> user 账号名称 ## 登录账号,回车,你也可以空格明文写上密码
Password: 账号密码 ## 输入登录账号密码
lftp 192.168.1.1:~> ls ## 登录成功后输入显示所有目录

详说mirror 
说明: 上传/下载文件夹,包含子文件夹
格式: mirror [OPTS] [remote [local]]
上传: 
mirror -R /data0/Linux/src/Product/Release/ /Public/YuSuLian_SCM/linux/
mirror -R /data0/Linux/src/Product/Release/ /Public/YuSuLian_SCM/linux
最后/有没有的区别,第一句会在ftp中创建一个Release目录,而第二句不会,直接将Product/Release/下的数据放到linux目录下
下载: mirror /DubaPublic/YuSuLian_SCM/linux/ /data0/DAE_ScanEngine_Linux/src/Product/Release/
要注意上传下载本地路径与远程路径是不一样的

例子:PutFileToFtp.sh
#!/bin/sh
#

workdir=/data0/build/build_src/Linux
filedir=/data0/build/build_files
numfile=$filedir/build.number
buildnum=$(cat "$numfile")
reslutdir=$(date +%Y%m%d).$buildnum
localdir=$workdir/src/Product/Release/
remotedir=/DubaPublic/SCM/linux/$reslutdir

echo open 192.168.1.5>"$filedir/ftpcfg.txt"
echo user ysl 123123>>"$filedir/ftpcfg.txt"
echo mirror -R "$localdir" "$remotedir" >>"$filedir/ftpcfg.txt"
echo quit>>"$filedir/ftpcfg.txt"

lftp -f "$filedir/ftpcfg.txt"

例子错误
[elian@localhost build]$ sudo sh PutFileToFtp.sh
错误信息: PutFileToFtp.sh: PutFileToFtp.sh: cannot execute binary file
处理方法: 存储格式的问题,PutFileToFtp.sh文件是我在win下创建的,转为utf-8格式要将"添加Unicode签名"选项去掉

No comments: