加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 在bash脚本中使用lftp传输文件

发布时间:2020-12-14 01:50:30 所属栏目:Linux 来源:网络整理
导读:我有服务器A test-lx和服务器B test2-lx,我想将文件从服务器A传输到服务器B. 在传输文件的同时,只有在不存在时才需要创建一个driectory,如何在lftp连接期间检查目录是否存在?如何在一个命令中输出多个文件而不是在两行中执行此操作. 是否可以使用find -maxd
我有服务器A test-lx和服务器B test2-lx,我想将文件从服务器A传输到服务器B.
在传输文件的同时,只有在不存在时才需要创建一个driectory,如何在lftp连接期间检查目录是否存在?如何在一个命令中输出多个文件而不是在两行中执行此操作.
是否可以使用find -maxdepth 1 -name DirName

这是我的代码:

lftp -u drop-up,1Q2w3e4R   ftp://ta1bbn01:21 << EOF

cd $desFolder
mkdir test
cd test
put $srcFil
put $srcFile

bye 
EOF

解决方法

使用ftp的简单方法:

#!/bin/bash

ftp -inv ip << EOF
user username password

cd /home/xxx/xxx/what/you/want/
put what_you_want_to_upload

bye
EOF

用lftp:

#!/bin/bash

lftp -u username,password ip << EOF

cd /home/xxx/xxx/what/you/want/
put what_you_want_to_upload

bye
EOF

从lftp手册:

-u <user>[,<pass>]  use the user/password for authentication

您可以使用mkdir创建目录.你可以像这样使用put命令几次:

put what_you_want_to_upload
put what_you_want_to_upload2
put what_you_want_to_upload3

你可以与再见关系密切

您可以检查文件夹是否存在,如下所示:

#!/bin/bash
checkfolder=$(lftp -c "open -u user,pass ip; ls /home/test1/test1231")

if [ "$checkfolder" == "" ];
then
echo "folder does not exist"
else
echo "folder exist"
fi

从lftp手册:

-c <cmd>            execute the commands and exit

你可以打开另一个连接来放置一些文件.

我不知道如何通过一个连接检查文件夹是否存在,但我可以这样做.也许你可以找到更好的解决方案

#!/bin/bash
checkfolder=$(lftp -c "open -u user,pass ip; ls /home/test1/test2")

if [ "$checkfolder" == "" ];
then

lftp -u user,pass ip << EOF

mkdir test2
cd test2
put testfile.txt
bye
EOF

else

echo "The directory already exists - exiting"

fi

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读