Strings verketten

01/08/2011 - 15:27 von Daniel Meszaros | Report spam
Hi!

Ich hab mir ein kleines Script gebastelt, das die Libvirt-Config zweier
Server synchronisiert (abwechselnd auf beiden Maschinen auszuführen).
Nicht, ohne jedoch ein Backup der lokalen Config zu machen.

Es will mir jedoch nicht gelingen $NOW, $HOSTNAMECMD und $BACKUPNAME zu
einem String zu verkleben, bei dem statt der Leerzeichen Underscores
genutzt werden: $NOW_$HOSTNAMECMD_$BACKUPNAME.tgz

Habt Ihr einen Lösungsvorschlag?

#!/bin/bash
DATECMD=$(which date)
RSYNCCMD=$(which rsync)
TARCMD=$(which tar)
HOSTNAMECMD=$(which hostname)
NOW=$($DATECMD +%Y-%m-%d_%H:%M)
BACKUPNAME="etc-libvirt"

# Create a backup of the local /etc/libvirt in the DRBD backup folder
$TARCMD -cvzf \
"/_vms/kvm/_config_backup/$NOW $HOSTNAMECMD $BACKUPNAME.tgz" \
/etc/libvirt

# Sync remote /etc/libvirt here, if newer
if [ $($HOSTNAMECMD) = "server1" ]; then
REMOTENAME="server2"
elif [ $($HOSTNAMECMD) = "server2" ]; then
REMOTENAME="server1"
else exit 0
fi
$RSYNCCMD -aze ssh root@$REMOTENAME:/etc/libvirt /etc/libvirt


CU,
Mészi.
 

Lesen sie die antworten

#1 Thorsten Kampe
01/08/2011 - 15:43 | Warnen spam
* Daniel Meszaros (Mon, 01 Aug 2011 15:27:38 +0200)
Ich hab mir ein kleines Script gebastelt, das die Libvirt-Config
zweier Server synchronisiert (abwechselnd auf beiden Maschinen
auszuführen). Nicht, ohne jedoch ein Backup der lokalen Config zu
machen.

Es will mir jedoch nicht gelingen $NOW, $HOSTNAMECMD und $BACKUPNAME zu
einem String zu verkleben, bei dem statt der Leerzeichen Underscores
genutzt werden: $NOW_$HOSTNAMECMD_$BACKUPNAME.tgz

Habt Ihr einen Lösungsvorschlag?

#!/bin/bash
DATECMD=$(which date)
RSYNCCMD=$(which rsync)
TARCMD=$(which tar)
HOSTNAMECMD=$(which hostname)



Tut mir leid, aber das erscheint mir hochgradig sinnlos.

NOW=$($DATECMD +%Y-%m-%d_%H:%M)
BACKUPNAME="etc-libvirt"

# Create a backup of the local /etc/libvirt in the DRBD backup folder
$TARCMD -cvzf \
"/_vms/kvm/_config_backup/$NOW $HOSTNAMECMD $BACKUPNAME.tgz" \



Was soll denn $HOSTNAMECMD hier? Meinst du $HOSTNAME? Und warum ersetzt
du nicht einfach die Leerzeichen durch Unterstriche?

Thorsten

Ähnliche fragen