Dr.Sweety
Fnord!
Hoi zämme,
wie ihr dem (zugegebenermassen etwas länglichen Titel) entnehmen könnt, möchte ich gerne ein Script programmieren, welches einen übergeben Befehl in allen Jails ausführt. So könnte man z.B. das Script dazu einsetzen, "ruby" in allen Jails zu aktualisieren:
sollte also in allen Jails ein "portupgrade -rR ruby" ausführen. Folgenden Ansatz habe ich mal programmiert:
Dummerweise führt dieser Code aber nur "portupgrade" ohne " -rR ruby" aus obwohl ich doch alle Parameter übergebe ("$@") und diese auch in Anführungszeichen setze. Hat jemand eine Lösung? Ich denke, ein solches Script wäre sehr praktisch für die Serverwartung (könnte man eventuell auch zu einem umfangreicheren Jail-Management Script ausbauen inkl. make buildworld für alle Jails etc.)
P.S:
ein
funktioniert problemlos und updatet ruby in allen Jails.
wie ihr dem (zugegebenermassen etwas länglichen Titel) entnehmen könnt, möchte ich gerne ein Script programmieren, welches einen übergeben Befehl in allen Jails ausführt. So könnte man z.B. das Script dazu einsetzen, "ruby" in allen Jails zu aktualisieren:
Code:
./jail_exec.sh portupgrade -rR ruby
Code:
less jail_exec.sh
#!/bin/sh
. /etc/rc.conf
for jail in $jail_list
do
eval jail_rootdir=\"\$jail_${jail}_rootdir\"
eval jail_ip=\"\$jail_${jail}_ip\"
eval jail_hostname=\"\$jail_${jail}_hostname\"
#echo $jail_rootdir $jail_ip $jail_hostname
jail $jail_rootdir $jail_hostname $jail_ip /bin/sh -c "$@"
done
P.S:
ein
Code:
less jail_exec.sh
#!/bin/sh
. /etc/rc.conf
for jail in $jail_list
do
eval jail_rootdir=\"\$jail_${jail}_rootdir\"
eval jail_ip=\"\$jail_${jail}_ip\"
eval jail_hostname=\"\$jail_${jail}_hostname\"
#echo $jail_rootdir $jail_ip $jail_hostname
jail $jail_rootdir $jail_hostname $jail_ip /bin/sh -c "portupgrade -rR ruby"
done