为什么ftp脚本失败并且/ home / dbadmin是目录错误?(Why does ftp script fail with /home/dbadmin is a directory error?

编程入门 行业动态 更新时间:2024-10-27 19:17:43
为什么ftp脚本失败并且/ home / dbadmin是目录错误?(Why does ftp script fail with /home/dbadmin is a directory error?)

给出以下脚本

ftp -n $HOST <<END_SCRIPT quote USER $USER quote PASS $PASSWD cd /home/dbadmin/backup mput *.gz quit END_SCRIPT

来自包含* .gz文件的目录/backups的mput *.gz导致此错误:

mput t1.gz? mput t2.gz? ./temp.sh: line 14: /home/dbadmin: is a directory

我不知道如何在不put单个文件名的情况下更改脚本。 我想要mput这个目录中的所有文件。

通过在END_SCRIPT之后输出0,错误消失了,我对发生这种情况的原因感兴趣。

Given the following script

ftp -n $HOST <<END_SCRIPT quote USER $USER quote PASS $PASSWD cd /home/dbadmin/backup mput *.gz quit END_SCRIPT

the mput *.gz from a directory /backups that contains *.gz files, results in this error:

mput t1.gz? mput t2.gz? ./temp.sh: line 14: /home/dbadmin: is a directory

I am not sure how to change the script without putting individual file names. I want to mput all files in this directory.

By putting an exit 0 after END_SCRIPT, the error disappeared, and I am interested in why this happened.

最满意答案

如何将mput替换为生成的put ?

ftp -n $HOST <<END_SCRIPT quote USER $USER quote PASS $PASSWD cd /home/dbadmin/backup $(find *.gz -maxdepth 0 -type f -printf 'put %p\n') quit END_SCRIPT

怎么运行的:

当HERE-IS-DOCUMENT将被解析时, find *.gz ...将为mask *.gz找到的每个文件生成多行:

put 1.gz put 2.gz ...

并且您将由ftp执行的脚本内容将是这样的:

quote USER your_user_name quote PASS your_passwd cd /home/dbadmin/backup put 1.gz put 2.gz ... quit

关于/home/dbadmin: Is a directory我相信你有/home/dbadmin: Is a directory ,你的脚本中有单行/home/dbadmin (或类似$SOME_COMMAND /home/dbadmin )。

What about to replace mput to generated put?

ftp -n $HOST <<END_SCRIPT quote USER $USER quote PASS $PASSWD cd /home/dbadmin/backup $(find *.gz -maxdepth 0 -type f -printf 'put %p\n') quit END_SCRIPT

How it works:

When HERE-IS-DOCUMENT will be resolved, find *.gz ... will generate multiple lines for each file found by mask *.gz:

put 1.gz put 2.gz ...

and your script content that will be executed by ftp will be like that:

quote USER your_user_name quote PASS your_passwd cd /home/dbadmin/backup put 1.gz put 2.gz ... quit

Regarding /home/dbadmin: Is a directory I belive you have single line /home/dbadmin in your script (or something like $SOME_COMMAND /home/dbadmin).

更多推荐

本文发布于:2023-07-20 12:34:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1199616.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:脚本   错误   目录   dbadmin   ftp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!