Я написал скрипт оболочки для загрузки всех файлов с разными именами по определенному пути с локального компьютера на хост, но у меня возникла проблема, и файлы не загружаются.
#!/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 Подробнее о
какая-то проблема останавливает загрузку файлов
было бы полезно.