gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:39:59 24 4
gpt4 key购买 nike

我有服务器A test-lx,服务器B test2-lx,我想把文件从服务器A传到服务器B。传输文件时,只有当目录不存在时我才需要创建目录,如何在 lftp 连接期间检查目录是否存在?我怎样才能在一个命令中输出多个文件而不是在 2 行中执行此操作。是否有使用 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

然后你可以用bye关闭连接


您可以像这样检查文件夹是否存在:

#!/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

关于linux - 在 bash 脚本中使用 lftp 传输文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27635292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com