• Medlem
  • Stockholm
  • 2003-07-04 20:39

Försöker att skriva ett shellscript som kontrollerar om en AFP-server är monterad och ansluten innan jag påbörjar backup till den monterade volymen.

Servern är tidigare monterad på /backupserver med kommandot: "mount_afp afp://marcus:[email protected]/utdelat /backupserver/".

Skriptet:
=========================
#!/bin/sh

echo "Checking server-connection"

if !( `echo mount_afp afp://marcus:[email protected]/utdelat /backup_server/`=='mount_afp: the volume is already mounted' )
then
echo "The server is not available, exiting."
exit 1
fi
echo "Server is connected."
=========================

Det jag med skriptet vill göra är alltså att jämföra outputen från kommandot "mount_afp afp://marcus:[email protected]/utdelat /backup_server/" med raden "mount_afp: the volume is already mounted". Om servern är monterad är raden densamma.

Problemet nu är att if-satsen inte körs som den ska, se nedan. Den försöker exekvera raden jag vill jämföra med. Problemet är väl egentligen att "mount_afp: the volume is already mounted" körs ut på stderr och inte stdout.

Output när skriptet körts:
=========================
Checking server-connection
mount_afp: the volume is already mounted
./backup: ==mount_afp: the volume is already mounted: command not found
The server is not available, exiting.
=========================

Någon som några ideér eller tips om hur man löser detta?

Senast redigerat 2003-07-05 00:33