繁体   English   中英

FTP Shell脚本不起作用

[英]FTP Shell Script Not Working

好的,所以我想每晚将一些记录文件通过ftp传送到远程服务器以进行备份。 我对Shell脚本感到非常困惑。 我的问题是:我想将整个文件夹/目录而不是FILE移到远程服务器。 我哪里错了?

这是当前的脚本:

HOST='10.113.68.50'
USER='sms'
PASSWD='Abc123451'
LOCALPATH='kmpy/unica/Campaign/partitions/partition1/CiktiDosyalari'
FILE=*.sms
DIR='SMS/'

ftp -n $HOST <<EOF
quote USER $USER
quote PASS $PASSWD
cd $DIR
lcd $LOCALPATH
put $FILE
quit
exit;
EOF

ftp put命令只能与单个文件一起使用。 如果您的*.sms扩展到更多,它会复制第一个文件,并为其指定列表中第二个文件的名称。 您应该使用mput命令而不是,或tar在另一端的一切成一个档案,转移了出来,然后解压缩它。

我认为您只收到一个文件? 为了使“ ftp”使用文件通配,您需要使用“ mput”命令。 put $FILE替换put $FILE

prompt
mput $FILE

您需要使用“提示”命令来关闭交互性,并且“ mput”将放置多个文件。

但是,“ ftp”可能不是工作的最佳工具。 我建议使用“ rsync”。 上面的任务可以通过以下方式完成:

HOST='10.113.68.50'
USER='sms'
RSYNC_PASSWORD='Abc123451'
LOCALPATH='kmpy/unica/Campaign/partitions/partition1/CiktiDosyalari'
FILE=*.sms
DIR='SMS/'

rsync -avz $(LOCALPATH)/$(FILE) $(USER)@$(HOST):$(DIR)

“ rsync”将仅传输文件中的更改并压缩传输。

编辑:通常,“ rsync”默认情况下使用“ ssh”进行身份验证。 如果要使用“ rsh”方法(与“ ftp”相同),则应执行以下操作:

rsync -avz --rsh=rsh $(LOCALPATH)/$(FILE) $(USER)@$(HOST):$(DIR)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM