Hallo,
zur Verteilung von neuen Revisionen auf einem webserver-cluster möchte ich gerne eine 'distributet shell' - dsh einsetzen. Prinzipiell eine simple Sache, die nur einen Haken hat:
1. ins Verzeichnis wechseln 2. webserver stoppen 3. cvs update -r xxxx 4. Rechte setzen und diverse Aufräumarbeiten 5. FRAGE: ist alles OK, willst du den Webserver wieder anschalten? 6. wenn ja, dann webserver starten
Genau der Punkt 5 funktioniert nicht über dsh. Die einzelnen Kommandos sind zu einem Shellscript zusammengefasst:
CMD="cd /mnt/data/www/; \ /etc/init.d/apache2 stop; \ cvs -nq up -r $TAG; \ chmod -R 777 *; \ rm lib/mall/templates_c/*.php; \ echo 'Apache starten (y/n)?'; \ read START ; \ echo "ihre Antwort: $START"; \ if [ "$START" = 'y' ]; then \ /etc/init.d/apache2 start; \ echo 'Apache gestartet.'; \ else \ echo 'apache nicht gestartet'; \ fi ";
dsh -g webtest -c -- $CMD
($TAG ist der auszucheckende Tag aus dem Repos) dsh rennt los und klappert die Server auch ab, allerdings bleibt sie bei 'read START' nicht stehen und wartet auf die Eingabe, sondern macht einfach weiter.
Wie bekomme ich es hin, dass auf meine Eingabe gewartet wird?
Mit freundlichen Grüßen
Jens Puruckherr