unix系统求sftp命令自动上传文件代码

rizhinan 2010-03-02 08:07:24
unix系统求sftp命令自动上传文件代码
从一个unix系统目录传送到另一个sftp服务器中
...全文
985 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbshutie 2010-03-04
  • 打赏
  • 举报
回复
xuexi........................
steptodream 2010-03-04
  • 打赏
  • 举报
回复
使用了lftp默认会有传送文件的日志 在~/.lftp/transfer_log 里
rizhinan 2010-03-04
  • 打赏
  • 举报
回复
谢谢熊猫大侠,我该怎么来生成这个日志呢
rizhinan 2010-03-03
  • 打赏
  • 举报
回复
哦,谢谢steptodream
我机子上的lsftp版本是:
Lftp | Version 2.6.3 | Copyright (c) 1996-2002 Alexander V. Lukyanov
This is free software with ABSOLUTELY NO WARRANTY. See COPYING for details.
Send bug reports and questions to <lftp@uniyar.ac.ru>.

我该升级么
steptodream 2010-03-03
  • 打赏
  • 举报
回复
我知道 我的意思是这个脚本是结合lftp和sftp的 lftp不支持sftp所以不行 并不是说sftp不行
rizhinan 2010-03-03
  • 打赏
  • 举报
回复
但是 我在窗口中敲入命令
$ sftp ftp@10.0.15.12
Connecting to 10.0.15.12...
ftp@10.0.15.12's password:
sftp> put /home/psoft/alidata/ali_dimission_call.log /home/psoft/alidata/pstostep/
ali_dimission_call.log 100% 40KB 1.6MB/s 00:00
sftp> bye

这样是可以将文件传过去的
steptodream 2010-03-03
  • 打赏
  • 举报
回复
代码我在CentOS5.4下测试成功了的 lftp版本lftp-3.7.11

我感觉是不是你的lftp的版本太低 不支持sftp啊

rizhinan 2010-03-03
  • 打赏
  • 举报
回复
#!/bin/bash
local_dir=/home/psoft/alidata/pstostep/
target_dir=/home/psoft/alidata/pstostep/
HOST=10.0.15.22
USER=ftp
PASS=hell05a
echo "Starting to sftp..."
lftp -u $USER,$PASS sftp://$HOST <<EOF
lcd $local_dir
cd $target_dir
mput *
bye
EOF
echo "done"

这个是我的代码
rizhinan 2010-03-03
  • 打赏
  • 举报
回复
谢谢楼上的朋友
我照着代码生成了一个命令文件,然后执行这个命令文件
但是失败了:
Starting to sftp...
/usr/lib/lftp/2.6.3/proto-sftp.so: cannot open shared object file: No such file or directory
lftp: sftp - not supported protocol
done

以上是报错信息,是不是系统中SFTP没有设置好呢,还请朋友给予支持。
steptodream 2010-03-03
  • 打赏
  • 举报
回复
引用 8 楼 rizhinan 的回复:
呵呵,让同事升级了,现在可以了。
我想将同步信息记录下来,生成日志,于是我在

mput * >> log.txt

好像不能生成日志,不知道是为什么?

前半句是mput *这个ftp的操作
后半句>> log.txt是shell的操作 当然不成功了!
rizhinan 2010-03-03
  • 打赏
  • 举报
回复
呵呵,让同事升级了,现在可以了。
我想将同步信息记录下来,生成日志,于是我在

mput * >> log.txt

好像不能生成日志,不知道是为什么?
steptodream 2010-03-02
  • 打赏
  • 举报
回复
local_dir后面换成你本地要上传文件的路径
target_dir后换成要上传到的服务器目录
user和password分别替换成你的用户名密码 确保你的用户有操作这些目录的权限
serverip换成你的真实ip

#!/bin/bash
local_dir=/path/
target_dir=/path/
user=user
password=password
serverip=serverip
lftp -u $user,$password sftp://$serverip <<END_SFTP
lcd $local_dir
cd $target_dir
mput *
bye
END_SFTP

19,620

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧