Ich habe ein Shell-Skript geschrieben, um alle Dateien mit unterschiedlichen Namen im spezifischen Pfad vom lokalen zum Host hochzuladen, aber ich habe ein Problem und die Dateien werden nicht hochgeladen
#!/bin/sh
for file in /main/folder1/path/*
do
curl -u Pass:"Uname" -T $file http://www.example.com/folder/$file
done
Bitte helfen Sie mir, das Problem zu lösen.
ich erhalte den folgenden Fehler
<html>
<head>
<title> 500 Internal Server Error </title>
</head>
<body>
<h1>
Internal Server Error
</h1>
</body>
</html>
derzeit habe ich das Skript darin /main/folder_2
. Wenn ich /main/folder_1/path/*
zu ändere ../folder_1/path/*
, erhalte ich die Ausgabe, die Dateien werden wie erwartet verschoben. Aber ich möchte das Skript mit dem angegebenen vollständigen Pfad ausführen.
Antwort1
Ich würde Ihr Skript folgendermaßen ändern:
#!/bin/sh
for file in /folder/path/*
do
curl -u username:password -T ${file} http://www.example.com/folder/${file}
done
Beachten Sie, dass die For-Schleifenvariable file
mit verwendet wird curl
.
Besser ist das Hochladen mit find + curl
(wiebeantwortet auf SO):
find /folder/path/ -name '*' -type f -exec curl -u USERNAME:PASSWORD -T {} http://www.example.com/folder/ \;
PS Mehr Infos über
Ein Problem verhindert das Hochladen der Dateien
Wäre hilfreich.