OVH Community, your new community space.

Problem mit bash-Skript


debianfan
07.02.12, 18:49
oh mann - ich hab die Lösung:


#!/bin/bash


das ist der Fehler gewesen - das hat gefehlt.

ohne #!/bin/bash gibt echo $HOSTNAME in einem Shellskript nur ein " " ;-)

debianfan
07.02.12, 18:44
kann es sein, das

echo $HOSTNAME in der Shell etwas anderes ergibt als in einem Bash-Skript?

Felix
07.02.12, 18:20
debianfan wrote:
> dateiname="{$datum}_{$HOSTNAME}"


falsch: {$foo}
korrekt: ${foo}

(wie bereits im 2. Posting geschrieben wurde)

debianfan
07.02.12, 17:44
So setze ich das:

datum=`date +%Y%m%d`
dateiname="{$datum}_{$HOSTNAME}"
mkdir /backup/${dateiname}

tar -cPf /backup/${datum}/${$dateiname}_$1.tar --exclude=/home/$1/Maildir /home/$1
gzip /backup/${datum}/${dateiname}_$1.tar


Im Prinzip geht es darum, dass die Sicherungsdateien vom User test3 und der Maschine pro1.meinedomain.de den Dateinamen 2012_02_06_pro1.meinedomain.de_test3.tar.gz bekommen.

Felix
07.02.12, 17:04
debianfan wrote:
> kommt dann raus - er nimmt den Hostnamen nicht mit :-(


Zeig nochmal wie du jetzt deine Variablen setzt.

debianfan
07.02.12, 16:35
/backup/20120207/20120207__test3.tar

kommt dann raus - er nimmt den Hostnamen nicht mit :-(

uisge
05.02.12, 17:16
Zitat Zitat von debianfan
Code:
datum=`date +%Y%m%d`
dateiname="{$datum}_{$HOSTNAME}"
mkdir /backup/${dateiname}

tar -cPf /backup/${datum}/${$dateiname}_$1.tar --exclude=/home/$1/Maildir /home/$1
gzip /backup/${datum}/${$dateiname}_$1.tar
Ich habe hier keine bash und kein Linux, aber IIRC muß das lauten:
Code:
dateiname="${datum}_${HOSTNAME}"

tar -cPf /backup/${datum}/${dateiname}_$1.tar -- etc.
gzip /backup/${datum}/${dateiname}_$1.tar

debianfan
05.02.12, 16:11
Hi,

der Hostname ist so aufgebaut:

pro1.meinedomain.de

und der Dateiname lautet dann

{20120205}_{pro1.meinedomain.de}

allerdings halt mit den {}

spoi
05.02.12, 16:08
mach mal in der bash ein:
dateiname="{$datum}_{$HOSTNAME}"
echo $dateiname
touch $dateiname
und schau mal, ob er das File erzeugen kann. Ich würde grade darauf Tippen, dass im Hostnamen ein nicht erlaubtes Zeichen ist.

debianfan
05.02.12, 16:01
Hallo,

ich lasse täglich automatisiert Sicherungen laufen - ich würde da ich nicht nur eine Maschine habe, den Hostnamen dort integrieren:

Code:
datum=`date +%Y%m%d`
dateiname="{$datum}_{$HOSTNAME}"
mkdir /backup/${dateiname}

tar -cPf /backup/${datum}/${$dateiname}_$1.tar --exclude=/home/$1/Maildir /home/$1
gzip /backup/${datum}/${dateiname}_$1.tar

ergibt aber - 5: bad substitute als Meldung :-(

Der Aufruf erfolgt mit ./backup.sh username