PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wo ist der Fehler?



WRLEV
05.07.2004, 12:30
Hi!

Habe nen Script geschrieben, um einen Gameserver zu starten. Die Datei server.sh liegt im Verzeichnis System, wo auch alle anderen Dateien liegen, die er umbenennen und starten soll. Das Script sieht folgender Maßen aus:

#!/bin/bash

# Lauf ewig
while [ true ];
do
mv Server.ini Server.old &&
echo Renamed Server.ini
cp ServerADVER.ini Server.ini && -> Diese Zeile ändern
echo Neue ini-Datei kopiert
echo Starte Server...
./ucc server
echo starte neu
done

Ich bekomme folgende Fehlermeldungen, wenn ich das Script starte:

Server.ini not such directory
ServerADVER not such directory
ucc not such directory

Was habe ich an diesem Script falsch gemacht?

MfG
WLREV

Kane32
05.07.2004, 12:35
Und du bist dir 100%ig sicher dass die Datei "Server.ini" in dem verzeichnis liegt?

WRLEV
05.07.2004, 12:38
Die Server.ini, wie die ServerADVER.ini liegen im System-Verzeichnis.

hehejo
05.07.2004, 12:41
Und von wo aus startest du das Skript?
Das Skript mag zwar im selben Verzeichnis liegen aber richitg interessant ist nur das Verzeichnis von dem aus du das Skript startest!

damager
05.07.2004, 12:43
in skripten epfehle ich immer absoulte-pfade zu verwenden :]
also: /pfad/zu/Server.ini
das gleiche auch für "ucc".

dein skript würde nur funktionieren wenn du das skript in dem verzeichniss aufrufst in dem sich diese 3 dateien befinden ...sonst nicht.

WRLEV
05.07.2004, 12:44
Starte das Script aus dem root-Verzeichnis.

damager
05.07.2004, 12:54
die dateien: Server.ini, ServerADVER.in und ucc müssen dann auch ALLE unter dem root-verzeichnis sein....was aber eine "unschöne" lösung ist.

WRLEV
05.07.2004, 12:58
Kenne mich so gut in Linux aus! Wie starte ich das Script denn aus dem Systemverzeichnis?

damager
05.07.2004, 13:09
woher soll hier jemand wissen wie "sehr" du dich mit linux auskennst? schlißlich gibt ja hier einige die dir versuchen zu helfen.
was bezeichnest du als "systemverzeichnis"?

nehmen wir mal an du hast ein verzeichniss /opt/gameserver in dem das skript und alle diese dateien liegen dann sollte das skript so aussehen:



#!/bin/bash
# Lauf ewig
cd /opt/gameserver

while [ true ];
do
mv Server.ini Server.old &
echo Renamed Server.ini
cp ServerADVER.ini Server.ini &
echo Neue ini-Datei kopiert
echo Starte Server...
./ucc server
echo starte neu
done


quick & dirty :devil:

der aufruf wäre dann: /opt/gameserver/skriptname.sh (vorrausgesetzt das skript hat ausführbare-rechte ... chmod 755)

WRLEV
05.07.2004, 13:21
Also ein Gameserververzeichnis habe ich nicht. Im root-Verzeichnis befindet sich das Verzeichnis System und dort liegen die Dateien drin, auch die server.sh.
Und die server.sh sollte ich im Systemverzeichnis starten. Nur wie wechsle ich vom rootverzeichnis ins Systemverzeichnis.

Greetz
WRLEV

damager
05.07.2004, 13:27
1. mit cd System wechselst du vom root ins Verzeichnis "System" (wenn du dich im root verzeichniss "/" befindest.

2 aufrufen tust das skript mit ./server.sh

rup
05.07.2004, 13:41
while true anstelle von while [ true ]
reicht, somit ersparst du die den test Aufruf.

WRLEV
05.07.2004, 13:42
Nun habe ich folgendes Problem, daß er das ./ucc server nicht kennt.
Kommt folgende Meldung

ucc not such directory

Ansonsten funktioniert alles.

rup
05.07.2004, 13:53
Wechsle in deinem Skript in das Verzeichnis in dem die Dateien liegen.



#!/bin/bash

cd /System


starte dein Skript mit

/System/server.sh

WRLEV
05.07.2004, 14:07
Habe ich gemacht nur der Befehl ./ucc server wird nicht verwertet.

rup
05.07.2004, 21:45
was sagt ein:
ls -l /System

was gibt folgender Befehl aus?
file /System/ucc

WRLEV
05.07.2004, 22:18
Folgendes kommt bei file /System/ucc

/System/ucc: Can't stat `/System/ucc' (No such file or directory)

bei ls l /System kommt dies:

/bin/ls: /System: No such file or directory

damager
06.07.2004, 08:37
hast du auch wirklich ein verzeichniss das sich "System" nennt (beachte gross-/kleinschreiweise)!?

was sagt ls -la / ?

WRLEV
06.07.2004, 09:39
Der Befehl ls - la/ ergibt folgendes:

ls -la /
total 181
drwxr-xr-x 22 root root 4096 Jul 2 01:57 .
drwxr-xr-x 22 root root 4096 Jul 2 01:57 ..
drwxr-xr-x 2 root root 4096 May 13 10:02 bin
drwxr-xr-x 4 root root 1024 Jul 2 07:07 boot
drwxr-xr-x 2 root root 4096 May 10 16:24 command
drwxr-xr-x 31 root root 73728 Jul 2 01:57 dev
drwxr-xr-x 40 root root 4096 Jul 2 01:57 etc
drwxr-xr-x 40 root root 4096 Jun 24 13:03 home
drwxr-xr-x 8 root root 4096 May 18 17:34 lib
drwx------ 2 root root 16384 Apr 20 17:42 lost+found
drwxr-xr-x 4 root root 4096 Oct 2 2003 media
drwxr-xr-x 2 root root 4096 Oct 2 2003 mnt
drwxr-xr-x 3 root root 4096 Oct 2 2003 opt
drwxr-xr-t 3 root root 4096 May 10 16:24 package
dr-xr-xr-x 105 root root 0 Jul 2 01:57 proc
-rw------- 1 root root 1920320 Jul 2 01:56 quota.user
drwx------ 20 root root 4096 Jul 5 15:35 root
drwxr-xr-x 3 root root 4096 Jun 18 09:11 sbin
drwxr-xr-x 2 root root 4096 May 10 16:24 service
drwxr-xr-x 4 root root 4096 Oct 2 2003 srv
drwxrwxrwt 7 root root 4096 Jul 6 10:30 tmp
drwxr-xr-x 12 root root 4096 May 13 09:57 usr
drwxr-xr-x 15 root root 4096 Jul 2 01:36 var

Das System-Verzeichnis liegt im Verzeichnis root.

Greetz
WRLEEV

hehejo
06.07.2004, 09:56
Hm, es gibt da doch den Unterschied zwischen / und /root
/root ist das homeverzeichnis vom Root.

damager
06.07.2004, 09:57
dann ist es ja ganz klar.... das war wohl ein mißverständniss :] du meinest das "System" unter root ist ... das " / " ist das root (wurzel) des filesystems. das es du da noch ein verzeichniss hast das sich root nennt ...tja verpennt.

also das skript sollte dann so aussehen:

#!/bin/bash
# Lauf ewig
cd /root/System

while true;
do
mv Server.ini Server.old &
echo Renamed Server.ini
cp ServerADVER.ini Server.ini &
echo Neue ini-Datei kopiert
echo Starte Server...
./ucc server
echo starte neu
done


das skript und alle files sollten dann unter /root/System abgelegt sein.
start des skriptes (egal von wo): /root/System/server.sh

ich empfehle dringend sich mit linux / unix grundlagen zu beschäftigen.
links zur doku kann dir hier sicher genannt werden :]
- http://www.unixboard.de/vb3/LDP/HOWTO/HOWTO-INDEX/howtos.html
- http://www.unixboard.de/vb3/forumdisplay.php?f=59
- http://www.unixboard.de/comments.php?catid=3&id=534