myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Linux & BSD
Seite neu laden

[TUTORIAL] Einstieg in die Linux Shell UPDATE v2.0

Willkommen

myGully

Links

Forum

 
Antwort
 
Themen-Optionen Ansicht
Ungelesen 18.03.14, 15:16   #1
DrMabuse242
Anfänger
 
Registriert seit: May 2011
Beiträge: 2
Bedankt: 0
DrMabuse242 ist noch neu hier! | 0 Respekt Punkte
Standard

... fein! Da hat sich aber einer mal Mühe gegeben vieles kurz und knapp zusammen zu fassen!
DrMabuse242 ist offline   Mit Zitat antworten
Ungelesen 28.06.24, 06:45   #2
Draalz
Moderator
 
Registriert seit: Oct 2012
Beiträge: 6.149
Bedankt: 7.793
Draalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt PunkteDraalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt PunkteDraalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt PunkteDraalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt PunkteDraalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt PunkteDraalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt PunkteDraalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt PunkteDraalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt PunkteDraalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt PunkteDraalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt PunkteDraalz leckt gerne myGully Deckel in der Kanalisation! | 2147483647 Respekt Punkte
Standard

Mittlerweile sind fast 14 Jahre seit der Entstehung dieses Tutorials vergangen und einiges hat sich verändert.
Paketmanager funktionieren mittlerweile von den grafischen Oberflächen aus, z.B Discover bei KDE, oder Synaptic.
Diese funktionieren natürlich nicht, wenn man ein System Headless aufsetzt, also ohne grafische Oberfläche.
Zumeist greift man auf so ein System per ssh Konsole zu.

apt wurde weiterentwickelt und so reicht es häufig nur noch:
Code:
apt update -----------> Abfrage der Inhalte auf den Spiegelservern
apt upgrade ----------> Herunterladen und installieren von zu aktualisierenden Paketen
apt full-upgrade -----> Abhänngigkeiten der Pakete überprüfen und korrigieren
apt install ----------> Installation eines gewünschten (Meta)Paketes
apt remove -----------> Deinstallation eines Paketes, ohne die Konfigurationsdateien zu löschen
apt purge ------------> Vollkommene Entfernung eines Paketes
Viele 'Anregungen' findet man dann auch in den Ausgaben von apt.
Selbstverständlich funktionieren auch noch die Befehle von apt-get.

Ob das cron System umgebaut wurde weiß ich nicht, aber bei mir sieht die crontab auf meinem NAS so aus:
Code:
# m h  dom mon dow   command
5 3 * * * /sbin/hwclock -w
20 4 * * * systemctl stop mc19
25 4 * * * systemctl start mc19
0 5 * * * /usr/sbin/backup-manager -f
0 1 2 * * /usr/sbin/e4defrag /dev/sda2
0 1 6 */2 * /usr/sbin/e4defrag /dev/sdb2
0 1 10 */2 * /usr/sbin/e4defrag /dev/sdc1
Das ist, zugegebenerweis, nur ein Auszug und teilweise mit Kanonen auf Spatzen geschossen.
Der erste Eintrag stellt 5 Minuten nach 3 die Hardware Uhr nach.
Die e4defrag Einträge defragmentieren die Festplatten. sda2 wird jeden 2. im Monat (darauf sind die home Verzeichnisse worauf sich viel abspielt) defragmentiert.
sdb2 und sdc1 jeden 2. Monat.

Wir haben hier also von links nach rechts
Minute, Stunde, Tag des Monats, Monat, Tag der Woche, Kommando

Früher hätte man Gameserver in einer screen Session gestartet. Ein Benutzer eines anderen Formus nannte das heutzutage einen Hack.
screen ist eine Konsolenanwendung, mit der man diese in den Hintergrund schicken kann, ohne ständig eine Konsole offen zu haben.
Ich nutze screen eigentlich nur noch zum Transkodieren auf meinem NAS. Da kann ich mich dann ausloggen und meine Workstation herunterfahren.
Die Kommandos dazu sind:
Code:
screen
Dabei öffnet sich eine leere Konsole. Man gibt ein, was man eben möchte und wenn der Vorgang angelaufen ist, löst man sich mit der Tastenkombination STRG+A+D. Der Vorgang läuft nun im Hintergrund. Will man nun zurück auf die Konsole gibt man:
Code:
screen -r
Bei einer Screen Session kommt man sofort auf diese Konsole, bei mehreren werden die einzeln PIDs angezeigt die man dann an das screen -r anhängen müsste.

Viele Distributionen sind mittlerweile dazu über gegangen sich von den Init Skr.ip.ten zu lösen und die Systemverwaltung systemd von freedesktop zu übergeben.
Im Hintergrund startet es z.B. die Netzwerkschnittstelle, es sei denn, sie wurde manuell in /etc/network/interfaces, oder im Networkmanager eingestellt.

Systemd arbeitet mit sogenannten 'Units' mit der eine Anwendung, oder ein Server gestartet und gestoppt werden kann.
Viele Units findet man hier:
Code:
/etc/systemd/system$ ls -ao
insgesamt 76
drwxr-xr-x 11 root 4096 28. Jun 07:43 .
drwxr-xr-x  5 root 4096 27. Jun 14:28 ..
-rw-r--r--  1 root  375 25. Dez 2018  cs16dust.service
-rw-r--r--  1 root  359 25. Dez 2018  cs16.service
-rw-r--r--  1 root  355 25. Dez 2018  css.service
lrwxrwxrwx  1 root   40 13. Mai 2021  dbus-org.freedesktop.Avahi.service -> /lib/systemd/system/avahi-daemon.service
lrwxrwxrwx  1 root   45 13. Apr 2020  dbus-org.freedesktop.timesync1.service -> /lib/systemd/system/systemd-timesyncd.service
drwxr-xr-x  2 root 4096  2. Aug 2019  default.target.wants
drwxr-xr-x  2 root 4096  8. Mai 2018  getty.target.wants
-rwxr--r--  1 root  328  3. Jun 14:47 jd2.service
-rwxr--r--  1 root  449  8. Sep 2019  mc17.service
-rwxr--r--  1 root  423 23. Jan 2019  mc18.service
-rwxr--r--  1 root  421 22. Jan 2020  mc19.service
drwxr-xr-x  2 root 4096 25. Apr 12:23 multi-user.target.wants
lrwxrwxrwx  1 root   35 21. Okt 2018  mysqld.service -> /lib/systemd/system/mariadb.service
lrwxrwxrwx  1 root   35 21. Okt 2018  mysql.service -> /lib/systemd/system/mariadb.service
drwxr-xr-x  2 root 4096  8. Mai 2018  network-online.target.wants
lrwxrwxrwx  1 root    9 16. Nov 2020  nfs-client.target -> /dev/null
lrwxrwxrwx  1 root    9 16. Nov 2020  nfs-server.service -> /dev/null
lrwxrwxrwx  1 root    9 25. Jun 2020  php7.3-fpm.service -> /dev/null
drwxr-xr-x  2 root 4096 13. Mai 2021  printer.target.wants
-rwxr--r--  1 root  197 28. Sep 2020  pyload.service
drwxr-xr-x  2 root 4096 14. Nov 2020  remote-fs.target.wants
lrwxrwxrwx  1 root    9 16. Nov 2020  rpcbind.service -> /dev/null
lrwxrwxrwx  1 root    9 16. Nov 2020  rpcbind.socket -> /dev/null
drwxr-xr-x  2 root 4096 13. Mai 2021  sockets.target.wants
lrwxrwxrwx  1 root   31 21. Okt 2018  sshd.service -> /lib/systemd/system/ssh.service
drwxr-xr-x  2 root 4096 25. Apr 2020  sysinit.target.wants
lrwxrwxrwx  1 root   35  8. Mai 2018  syslog.service -> /lib/systemd/system/rsyslog.service
drwxr-xr-x  2 root 4096 14. Dez 2021  timers.target.wants
Diese Units wurden zum Großteil bei der Installation angelegt. Die grün gehaltenen habe ich selbst erstellt, weil diese Programme nicht in den Repos meiner Distribution erhältlich waren. Einige greifen mittlerweile ins Leere, weil die Software nicht mehr auf meinem NAS ist.

Wie ihr gelesen habt, stoppe und starte ich täglich einen Minecraft Server via Cronjob. Das 'Unit' dazu sieht folgendermaßen aus:

Code:
/etc/systemd/system # nano mc19
Descrip*tion=Minecraft 1.12.2 Area
 
Wants=network.target
After=network.target
 
[Service]
User=css
Nice=5
KillMode=none
SuccessExitStatus=0 1
ReadWriteDirectories=/home/css/bukkit-1.12.2
WorkingDirectory=/home/css/bukkit-1.12.2
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar craftbukkit-1.12.2.jar --noconsole
ExecStop=/home/css/mcrcon -H localhost -P 25567 -p <Passwort> stop
 
[Install]
WantedBy=multi-user.target
Bei Descrip*tion müsst Ihr den * entfernen

Hinter ExecStart findet Ihr den eigentlichen Startbefehl für Minecraft bzw. einen Minecraft Server.

Man kann den Status eines Programms über systemd abfragen:
Code:
# systemctl status mc19
? mc19.service - Minecraft 1.12.2 Area
     Loaded: loaded (/etc/systemd/system/mc19.service; enabled; preset: enabled)
     Active: active (running) since Thu 2024-06-27 04:25:01 CEST; 5h 13min ago
   Main PID: 79974 (java)
      Tasks: 31 (limit: 4272)
     Memory: 527.1M
        CPU: 8min 2.463s
     CGroup: /system.slice/mc19.service
             ??79974 /usr/bin/java -Xmx1024M -Xms1024M -jar craftbukkit-1.12.2.jar --noconsole

Jun 27 04:26:21 hostname java[79974]: [04:26:21 INFO]: [Multiverse-Inventories 2.5.0-SNAPSHOT-b418] enabled.
Jun 27 04:26:21 hostname java[79974]: [04:26:21 INFO]: Server permissions file permissions.yml is empty, ignoring it
Jun 27 04:26:24 hostname java[79974]: [04:26:24 INFO]: Done (47,260s)! For help, type "help" or "?"
Jun 27 04:26:24 hostname java[79974]: [04:26:24 INFO]: Starting GS4 status listener
Jun 27 04:26:24 hostname java[79974]: [04:26:24 INFO]: Starting remote control listener
Jun 27 04:26:24 hostname java[79974]: [04:26:24 INFO]: Query running on 0.0.0.0:25565
Jun 27 04:26:24 hostname java[79974]: [04:26:24 INFO]: RCON running on 0.0.0.0:25567
Jun 27 04:26:24 hostname java[79974]: [04:26:24 INFO]: [Vault] Checking for Updates ...
Jun 27 04:26:25 hostname java[79974]: [04:26:25 INFO]: [Vault] No new version available
Oben rechts sieht man den Hinweis 'Service enabled'
Das bedeutet, dass der Start dieser Anwendung, dieses Servers automatisch beim Systemstart erfolgt.

Das erreicht man, wenn man diesen Service aktiviert:
Code:
systemctl enable mc19
systemctl daemon-reload
Zeile 1 meldet den Server für einen Autostart bei einem Reboot an.
Zeile 2 veranlasst systemd die Anweisungen aus den Unit Dateien neu einzulesen.

Für Richtigstellungen und Anregungen stehe ich offen.
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

Geändert von Draalz (30.06.24 um 17:05 Uhr)
Draalz ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:54 Uhr.


Sitemap

().