2012-03-07 113 views
1

我正在尝试创建一个将本地目录树上传到远程服务器的shell脚本。 这部分代码正常工作。然而,当我添加chmod命令时,我得到了ncftp> shell。需要在NCFTP shell脚本上输入

有人可以帮我吗?这是我的代码有:

#!/bin/bash 
echo "Afbeeldingen uploaden..." 
ncftpput -Rvm -u "username" -p "password" domain.com /domains/domain.com/public_html/wp-content/gallery /Shared\ Items/Beeld/LowRes/* 
ncftp -u "username" -p "password" domain.com 
ncftp chmod -R 777 /domains/domain.com/public_html/wp-content/gallery/* 
quit 
echo "Klaar!" 
exit 

回答

0

它可以将chmod命令直接添加到ncftpput命令。

选项-X可用于对每个上传的文件执行命令。这里是一个单一的文件,应该是在服务器上执行的例子:

ncftpput -u "username" -p "password" domain.com \ 
-X "chmod 0755 /remotepath/hello_world" /remotepath /localpath/hello_world 

它可以使用%s匹配每个上传的文件。

ncftpput -u "username" -p "password" domain.com \ 
-X "chmod 0755 %s" /remotepath localpath/* 

选项-d put.log帮助我跟踪我的问题。它接近本地文件路径用于%s。所以localpath和remotepath应该是相关的。

ncftpput的文档也可以在线获取:http://www.ncftp.com/ncftp/doc/ncftpput.html