特定のパスにある異なる名前のすべてのファイルをローカルからホストにアップロードするシェル スクリプトを作成しましたが、問題が発生し、ファイルがアップロードされません。
#!/bin/sh
for file in /main/folder1/path/*
do
curl -u Pass:"Uname" -T $file http://www.example.com/folder/$file
done
これを解決するのを手伝ってください。
次のようなエラーが表示されます
<html>
<head>
<title> 500 Internal Server Error </title>
</head>
<body>
<h1>
Internal Server Error
</h1>
</body>
</html>
現在、スクリプトは 内にあります。に/main/folder_2
変更すると、出力が得られ、ファイルは期待どおりに移動されます。ただし、完全なパスを指定してスクリプトを実行したいです。/main/folder_1/path/*
../folder_1/path/*
答え1
スクリプトを次のように変更します:
#!/bin/sh
for file in /folder/path/*
do
curl -u username:password -T ${file} http://www.example.com/folder/${file}
done
for ループ変数file
が で使用されることに注意してくださいcurl
。
より良い方法は、find + curl
(SOで回答):
find /folder/path/ -name '*' -type f -exec curl -u USERNAME:PASSWORD -T {} http://www.example.com/folder/ \;
PS 詳細情報
何らかの問題によりファイルのアップロードが停止しています
役に立つでしょう。