Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: sourceserver.info. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

1

Freitag, 27. Juli 2007, 00:38

[Linux] Codeschnipsel für die Shell

Löscht defekte bzw. verwiesene Links. Setzt eine gewisse Version von "find" heraus.

Quellcode

1
find -L -type l -exec rm '{}' \;


Komprimiert alle Dateien im angegebenen Verzeichnis inkl. Unterverzeichnisse mit bzip2

Quellcode

1
find /PFAD/ -exec bzip2 -9  '{}' \;


Löscht alle .ztmp Dateien. Das kann helfen um Speicherplatz zu sparen, wenn man Fastdownload nutzt.

Quellcode

1
find ./cstrike/ -name '*.ztmp' -exec rm '{}' \;


Listet alle Maps ohne Endung auf und speichert sie alphabetisch sortiert in der maplist.txt (funktioniert auch bei mehreren Punkten im Dateinamen)

Quellcode

1
ls /irgendwo/cstrike/maps/ | grep '\.bsp$' | sed 's/\.bsp$//' | sort > /irgendwo/cstrike/maplist.txt


Zählt die Maps

Quellcode

1
ls ./cstrike/maps/ *.bsp | wc -l


Listet Maps auf, zu denen die Nav-Dateien fehlen

Quellcode

1
for map in $(ls ./cstrike/maps/*.bsp | sed 's/.bsp$//'); do if [ ! -f ${map}.nav ]; then echo "Missing: ${map}.nav"; fi; done

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

2

Mittwoch, 22. August 2007, 16:51

Re: [Linux] Codeschnipsel für die Shell

Alle Prozesse von einem bestimmten User killen:

Quellcode

1
pkill -u user


Alle srcds-Prozesse eines Users killen

Quellcode

1
pkill -u user srcds

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

3

Samstag, 19. Juni 2010, 23:15

Re: [Linux] Codeschnipsel für die Shell

Anzahl der Spawnpunkte einer Map ausgeben:

Quellcode

1
grep -U -c 'info_player_' mapname.bsp

Der MadMakz hat dazu noch ein Beispiel in PHP geschrieben:

PHP-Quelltext

1
2
3
4
5
6
7
8
$file "mapname.bsp";
$fp fopen($file"r")or die("Noob!");
$string fread($fpfilesize($file));
$count preg_match_all("/info_player_/"$string$matches);
fclose($fp);

echo $count;
?>

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

4

Samstag, 18. September 2010, 11:37

Re: [Linux] Codeschnipsel für die Shell

Anmerkung: Wenn nur ein Fenster im Screen gestartet wird, dann window=0 verwenden. Das erste Fenster fängt bei 0 an. Wurde ein Name für das Fenster gesetzt, kann stattdessen wie im Beispiel der Name verwendet werden.

Shellscript:

PHP-Quelltext

1
2
3
4
5
name="war1" #Setze Screenname
window="server" #Setze Fenstername
concommand="say Willkommen auf unserem tollen Server..." #Befehl festlegen, der an die Konsole gesendet wird
screen -S $name -p $window -X stuff "$concommand#Text in den Screen war1 zum Fenster server senden
screen -S $name -p $window -X stuff $'\n' #Dafür sorgen, dass Enter gedrückt wird (ANSI-C Sequenz muss verwendet werden um \n senden zu können)


Shellscript mit Funktion:

PHP-Quelltext

1
2
3
4
5
6
7
#$1 = name
#$2 = window
#$3 = concmd
function concmd {
        screen -$-$-X stuff "$3"
        screen -$-$-X stuff $'\n'
}


Aufruf der Funktion:

PHP-Quelltext

1
2
concmd war1 server "echo Milch ist gesund"
#Der letzte Teil muss quotiert werden, da die Shell ansonsten jedes Leerzeichen als Trenner für ein neues Argument interpretiert.


Python mit Tupel und Addition von Strings:

PHP-Quelltext

1
2
3
4
5
6
7
import os #Importiert das Modul os, mit dem man z.B. Befehle bzw. Programme ausführen kann
concommand "echo Es soll nur ein Test sein" #Legt den Text fest, der an den Server gesendet wird.
name "war1" #Legt den Screennamen fest
window "server" #Legt das Fenster im Screen fest
stuff "$'" concommand "\n'" #fügt durch Addition den Befehl in die Ansi-CSequenz ein: $'echo Es soll nur ein Test sein'
screen_cmd "screen -S %s -p %s -X stuff %s" % (namewindowstuff#Speichert die Variable screen_cmd und ersetzt %s durch die Variablen in der Tupel
os.system(cmd#Befehl senden


Python mit Adition von Strings:

PHP-Quelltext

1
2
3
4
5
import os
concommand "echo Es soll nur ein Test sein"
name "war1"
window "server"
os.system("screen -S " name " -p " window " -X stuff $'" concommand "\n'"#Fügt den Befehl hier erst komplett zusammen


Python-Funktion:

PHP-Quelltext

1
2
3
import system
def concmd(namewindowconcommand):
    os.system("screen -S " name " -p " window " -X stuff $'" concommand "\n'")


Aufruf der Funktion:

PHP-Quelltext

1
concmd('war1''server''echo Soll nur ein Test sein')


Um sicher zu gehen, dass nicht irgendein Admin etwas zuvor in die Konsole geschrieben hat und vergaß Enter zu drücken, kann man beim Aufruf der Funktion immer zuerst Enter an die Konsole senden.

Python-Funktion:

PHP-Quelltext

1
2
3
4
import system
def concmd(namewindowconcommand):
    os.system("screen -S " name " -p " window " -X stuff $'\n'")
    os.system("screen -S " name " -p " window " -X stuff $'" concommand "\n'")


Schellscript-Funktion:

PHP-Quelltext

1
2
3
4
5
6
7
8
#$1 = name
#$2 = window
#$3 = concmd
function concmd {
    screen -$-$-X stuff $'\n'
    screen -$-$-X stuff "$3"
    screen -$-$-X stuff $'\n'
}


PS: Terrorkarotte hat mich auf den Stuff-Befehl gebracht. THX

Impact

Super Moderator

Beiträge: 1 276

Rootserver vorhanden: Nein

  • Nachricht senden

5

Sonntag, 4. Dezember 2011, 23:04

Manchmal kommt es vor dass man automatisiert zB Demos synchronisieren mag.
Es kann jedoch sein dass die Demo gerade noch geschrieben wird, und diese Datei wollen wir natürlich nicht synchronisieren.
Ein Beispiel eines Checks könnte so aussehen:

Angucken

PHP-Quelltext

1
2
3
4
5
6
for map in $(ls *.dem); do
VAR="$(lsof $map)"
    if [[ $VAR == "" ]]; then
        # CODE
    fi
done


MfG
Impact

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »Impact« (4. Dezember 2011, 23:59)


DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

6

Montag, 5. Dezember 2011, 17:37

Geschickt geregelt würde ich sagen.