2012-03-07 24 views
1

ローカルディレクトリツリーをリモートサーバーにアップロードするシェルスクリプトを作成しようとしています。 コードのこの部分は正常に動作します。しかし、私がchmodコマンドを追加すると、ncftp>シェルが得られます。はNCFTPシェルスクリプトに入力する必要があります

誰かが私を助けることができますか?

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

直接ncftpputコマンドにchmodコマンドを追加することが可能である:これは私が持っているコードです。

オプション-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に使用されていることを示しています。したがって、ローカルパスとリモートトークパスは関連している必要があります。

ncftpputへのドキュメントは、オンラインでも入手できます。http://www.ncftp.com/ncftp/doc/ncftpput.html

関連する問題