hi alle, ich hab da was komischen und weiss nicht weiter:
habe ein script "AutoUpdate" gebaut und im /bin als ausführbar gespeichert.
Inhalt:
cd /tmp/;wget --http-user=max --http-passwd=muster http://test.de/UPD/update_info_version
if ! test -f /tmp/update_info_version; then exit; fi;
if ! test -f /bin/update_info_version; then echo "1" > /bin/update_info_version; fi;
Aktuell=`cat /bin/update_info_version`; Server=`cat /tmp/update_info_version`
if [ "$Server" > "$Aktuell" ]; then
N=$Aktuell
N=$[$N+1]
while [ $N -le $Server ] ; do
wget --http-user=max--http-passwd=test http://test.de/UPD/$N
if test -f /tmp/$N; then chmod 777 /tmp/$N; fi;
if test -f /tmp/$N; then ./$N; echo "$N" > /bin/update_info_version; rm $N; fi;
N=$[$N+1]
done
fi
rm /tmp/update_info_version*
wenn ich es selbst aufrufe als root mit AutoUpdate, dann geht es normal. es läd eine info datei runter wo eine zahl, d.h. versionsnummer auf dem server drin ist. dann kuckt es local ob die eigene datei eine kleinere versionsnummer hat und läuft dann eine schleife durch von localer nummer bis verfügbare.
nun habe ich einen cronjob in /etc/cron.d erstellt.
*/1 * * * * root cd /tmp/; /bin/AutoUpdate;
dieser ruft das script auf (dasist sicher!!) aber läuft die scheife nicht durch weil der wert "N" nicht die zahl ein oder zwei oder drei, etc. ist sondern scheinbar der string [1+1]+1 ist
also wenn ich wie gesagt es selbst starte aus der konsole ist N wirklich eine zahl, aber ruft cron daemon es auf ist n eben " [1+1]+1"
könnt ihr da ein beeseres beispiel für eine schleife geben??
Lesezeichen