Anfängerfragen - Linux Neuling? Hier ist der richtige Platz für deine Fragen (2)

  • Ersteller Gelöschtes Mitglied 45455
  • Erstellt am
Könnte das nicht problematisch werden, wenn ich den radeon nutzen sollte? Wäre der Eintrag in der config dann nach einen Reboot zurückgesetzt?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wenn du den radeon nutzt, dann gibt es zwei Möglichkeiten:

1. Der amdgpu wird benutzt.
2. Kaputt, TTY3 öffnen und reparieren. :fresse:
 
@Simlog
Ich nutze die neueste Mesa-Version vom PPA, und da ist eine Threaded-Optimierung drin, die gerade bei Deiner CPU helfen sollte, die im Singlethreading sehr lahm ist. Es kann gut sein, dass Deine Treiberversion deutlich schlechter läuft, wenn Du die originale von Ubuntu 16.04 nutzt, denn die ist höchstwahrscheinlich schon weit über ein Jahr alt.
 
Jungs, ich habe ein Ubuntu Server 16.04 in einer virtuellen Maschine und in der /etc/network/interfaces folgendes:
Code:
iface ens33 inet static
  address IP
  netmask IP
  gateway IP
  dns-nameservers IP1 IP2

Aber egal was ich mache, das Interface ens33 holt sich die Adressen nicht.
Gebe ich manuell eine Adresse im Terminal mit klappt das, aber die ist nach einem Neustart wieder weg.

Kann mir da eventuell jemand sagen, warum der Eintrag in der interfaces-Datei ignoriert wird?


// Wie es so oft ist, Stundenlang klappte es nicht. Kaum hab ich diesen Post verfasst, einige Dinge wie ipv6 zu deaktivieren probiert klappt es...

Nur nach jedem Neustart muss ich manuell ens33 mit ifup hochjagen, kann man das irgendwie lösen?
 
Zuletzt bearbeitet:
Kann mir jemand helfen die Boot-Festplatte meine Rootservers zu vergößern? Das ganze ist ein Ubuntu System.
sudo fdsik -l:
Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x183751ea


Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 41416319 41414272 19.8G 83 Linux
/dev/vda2 41416320 41940607 524288 256M 82 Linux swap / Solaris
 
@paulianer:
Erstell im freien Bereich eine neue Partition (mit fdisk, primäre partition, Typ 83, das wird /dev/vda3), leg ein Filesystem darauf an, mounte dieses und nutze es für einen Teilzweig deiner Daten z.B. als /home oder /usr/local oder wo auch immer du die ~10 GB brauchen könntest. Das ist einfacher und unproblematischer als das Vergrößern der vda1-Partition.

Willst du wirklich vda1 vergrößern, hängt das Vorgehen davon ab, welches Filesystem für vda1 verwendet wird. vda2 vorher ans Plattenende verlegen.

BTW: Ganz schön wenig swap. :(
 
Zuletzt bearbeitet:
Moin,

danke für deine Antwort. Ich hab ganz vergessen selbst darauf zu antworten - ich habe es in der Zwischenzeit selbst hinbekommen. Muss bei allem dazu sagen, dass ich absoluter Anfänger im Umgang mit Linux bin.
Ich habe den Swap-Speicher deaktiviert, gelöscht und mit fdisk die Partition vda1 vergrößert. Dann die Swap-Partition hinzugefügt, anschließend den Swap wieder angelegt und eingebunden. Das Dateisystem ist ext4.

Der Swap-Speicher ist noch aus dem Template des Root-Servers. Wie viel Swap wäre denn angebracht? Der Server hat 4 GiB RAM.
 
Das kommt auf die Anwendungen an. Reicht der RAM, ist Swap unnötig. Wird der RAM überschritten, braucht man natürlich Swap. Da auf Swap alles langsamer als im RAM läuft, hat man lieber genug RAM. Das ist nicht anders als bei Windows mit der Auslagerungsdatei. Ich habe zum Beispiel an meinem PC 32 GiB RAM und selbstverständlich keine Swap-Partition.

Edit: Wobei mir auf Linux sogar beim Zocken 16 oder gar 8GiB reichen würden... Der hohe Bedarf von bis zu 24 GiB war bis jetzt nur auf Windows vorgekommen. Aber ich habe da natürlich Spielraum für künftige Spiele miteinberechnet.
 
Zuletzt bearbeitet:
Ich benutze in der Regel auch keinen Swap mehr, aber für den unwahrscheinlichen Fall, dass man Suspend to Disk machen will, muss die Swap Partition mindestens so groß wie der RAM im Rechner sein.
 
Zuletzt bearbeitet:
wenn du sachen containerisieren willst mit docker o.ä. dann sollte SWAP definitiv deaktivert sein.
aus performancegründen macht swap nie sinn aber für kurzzeitige auslagerung kann es sinnvoll sein.
 
Danke für eure Antworten.
Aktuell läuft der Server mit einer Auslastung von etwa 3 GiB RAM (bei 4 verfügbaren). Es ist Docker im Einsatz, zusätzlich noch ein paar Standardanwendungen auf LAMP Basis.
Jetzt weiß ich echt nicht: Mehr Swap? Weniger? Deaktivieren? :d
 
3 von 4 GB belegt? Swap vergrößern. Wenn der RAM voll läuft, passieren richtig eklige Sachen. Dann wird der Kernel hungrige Prozesse knallhart killen. Swappiness in einem vertretbarem Rahmen einstellen. Swappiness=1 bedeutet zwar, dass nicht geswappt wird und der Server schneller ist, aber auch, dass er richtig in die Knie geht, wenn geswappt werden muss, weil kein RAM mehr da ist. Swappiness=60 (default) macht die Kiste zwar etwas langsamer, aber du siehst auch deutlich seltener einen vollen RAM. Die Kiste bleibt also konstanter. Vergiss nicht, dass bei der Ausgabe von "free -m" der "available" wert ganz hinten der "echte" benutzbare RAM ist.
 
Zuletzt bearbeitet:
Hi,

Ich suche nach wie vor eine Möglichkeit, mehrere Terminal-Dinge in einem Fenster zu haben.
Laut Google verwenden die meisten tmux, wo ich allerdings hinten und vorne nicht durchblicke...

Kann mir jemand helfen? Ich möchte ein Startup-Script, was mir ein Terminal mit 4 Fenstern öffnet (70/30 breit, 60/40 hoch), wo die Anwendungen laufen.

Ja, ich habe mir die manpage angeschaut, werde aber nicht schlau daraus, da mir dieses Konstrukt mit sessions etc. etwas abstrackt erscheint (vielleicht würde auch eine Erklärung helfen, damit ich das versteh)

Vielen Dank!
 
Danke für eure Antworten.
Aktuell läuft der Server mit einer Auslastung von etwa 3 GiB RAM (bei 4 verfügbaren). Es ist Docker im Einsatz, zusätzlich noch ein paar Standardanwendungen auf LAMP Basis.
Jetzt weiß ich echt nicht: Mehr Swap? Weniger? Deaktivieren? :d

erstmal: alles containerisieren ;)
und dann kümmerst du dich um die containerressourcen.
Limit a container’s resources | Docker Documentation

ich habe swap komplett deaktiviert weil es keinen sinn macht einen langsamen buffer dranzuhängen der im blödesten fall niemals mehr frei wird. steck lieber echten RAM nach oder schau das deine applikationen anständiger laufen.
 
@AsatothAbaddon, schau dir mal das an, da wird tmux m.E. ganz nett erklärt: tmux. Fenster aufteilen ist eigentlich nur ein extra Feature, die eigentliche Funktion von tmux (und dem älteren screen) ist es, eine Terminalsitzung in den Hintergrund zu schicken und dann später wieder nach vorne holen zu können.
 
Hi,
Kann mir jemand helfen? Ich möchte ein Startup-Script, was mir ein Terminal mit 4 Fenstern öffnet (70/30 breit, 60/40 hoch), wo die Anwendungen laufen.

nein das möchtest du nicht.
nutzt du osx oder linux?

habe tmux unter osx in der zshell am laufen, mit ein wenig configaufwand ist das super easy und ziemlich hübsch.
du startest tmux einfach mit "tmux" aufm CLI. kannst dazu n sessionnamen geben oder auch nicht. innerhalb der session kannst du neue fenster öffnen. innerhalb der fenster kannst du jeweils soviele terminals starten wie du willst (splitscreens).

also hast du vielleicht 2 sessions: home und work
unter home hast du 3 raspberrys und unter work hast du 20 server du die managen willst.
auf jeden host willst du mit 4 terminals sitzen und dinge beobachten, schreiben, listen, whatever.

was du halt machen kannst ist dir die finger brechen bei den krüppeligen shortcuts, aber was du lieber machen solltest ist ne eigene config zu bauen. hier mal ein auszug von meiner:

### set ctrl+a as standard
unbind C-b
set-option -g prefix C-a

### ctrl+a r for reloading the config
bind r source-file ~/.tmux.conf \; display "Reloaded!"

### easy splitting (ctrl+a y/x)
bind x split-window -h
bind y split-window -v

### activate scroll0r
set -g mouse on

### command delay
set -s escape-time 0

### Start windows and panes at 1, not 0
set -g base-index 1
setw -g pane-base-index 1

### use wrapper
set-option -g default-command "reattach-to-user-namespace -l zsh"

mit ctrl+b gehts also ins menü und x oder y trennt beispielsweise das terminal horizontal oder vertikal. die fenstergröße kannst du hier verschieben so wie du sie brauchst. sie fest zu definieren entzieht dem vorhaben den sinn. deswegen willst du das nicht :)
 
Hi,

@AsatothAbaddon, schau dir mal das an, da wird tmux m.E. ganz nett erklärt: tmux. Fenster aufteilen ist eigentlich nur ein extra Feature, die eigentliche Funktion von tmux (und dem älteren screen) ist es, eine Terminalsitzung in den Hintergrund zu schicken und dann später wieder nach vorne holen zu können.

Danke. :)

nein das möchtest du nicht.
nutzt du osx oder linux?

Warum möchte ich das nicht? Verwende Linux.

was du halt machen kannst ist dir die finger brechen bei den krüppeligen shortcuts, aber was du lieber machen solltest ist ne eigene config zu bauen. hier mal ein auszug von meiner:

mit ctrl+b gehts also ins menü und x oder y trennt beispielsweise das terminal horizontal oder vertikal. die fenstergröße kannst du hier verschieben so wie du sie brauchst. sie fest zu definieren entzieht dem vorhaben den sinn. deswegen willst du das nicht :)

Danke. :)
 
Hi,
Warum möchte ich das nicht? Verwende Linux.

ein startup script das dir dein terminal teilt ist halt nicht flexibel und insgesamt eher sperrig als nützlich. manchmal braucht man halt nur 3 fenster oder eben 6.
fang lieber an dir tmux beizubringen, das macht langfristig sinn. habe es versucht weiter unten zu verdeutlichen, hast die passage auch zitiert :)

wenn du linux nutzt, nimm tmux. unter osx kannst du iterm2 auch noch irgendwie teilen, hat aber dann nicht die komplette tmux bandbreite an features. die brauchts auch nicht, aber es wäre ne simple lösung. paar meiner kollegen nutzen das weil ihnen tmux zu kompliziert erscheint. isses aber nicht.

hier noch ne kleine hilfeseite:
tmux shortcuts cheatsheet · GitHub
 
Also ich nutze auch seit einiger Zeit tmux und finde es klasse, obwohl ich tiling​ nie über tmux, sondern mein Window Manager (BSPWM) mache. Tmux hat einfach sehr hilfreiche Funktionen, die man sehr zu schätzen lernt, wenn man viel auf der Kommandozeile unterwegs ist.
Eine einfachere Alternative, die nicht die Möglichkeiten von tmux bieten, aber quasi Gnome Terminal + Tiling ist, ist z.B. tilix/terminix oder terminator.
 
Zuletzt bearbeitet:
Jungs, habe gerade nicht die Möglichkeit das zu testen, aber wenn ich als user "www-data" über Apache einen Cronjob starte, mich dann von der Kiste komplett abmelde, läuft der cronjob job dann trotzdem?
Der ruft alle X stunden ein PHP Script, welches auf dem Apache liegt, auf.
 
Äh... Ein PHP-Script liegt nicht auf einem Apache. Das kann auch ohne Webserver ausgeführt werden. Und ja, das ist der Sinn von Cronjobs,.
 
Hm ja, ich denke das Skript speziell könnte auch woanders liegen aber ich habe von der Ferne aus Zugriff durch den Apache um alle Daten einsehen zu können.
Ich werte Zugriffe etc. über die Apachelog aus usw daher liegt aktuell das ganze "Projekt" in einem Verzeichnis dort, mit htaccess vor Fremdzugriff geschützt. Ist denke ich mal einfacher als jetzt zu überlegen welches von den etlichen Sachen nicht unbedingt da liegen muss oder?
 
erstmal: alles containerisieren ;)
und dann kümmerst du dich um die containerressourcen.
Limit a container’s resources | Docker Documentation

ich habe swap komplett deaktiviert weil es keinen sinn macht einen langsamen buffer dranzuhängen der im blödesten fall niemals mehr frei wird. steck lieber echten RAM nach oder schau das deine applikationen anständiger laufen.
Also Docker steht noch recht weit oben auf meiner To-Learn Liste. Das werde ich mir mal in aller Ruhe anschauen wenn mein kleiner ML310 daheim wieder läuft. Aktuell habe ich nur ein fertiges Paket nach Anleitung gestartet. Learning by doing :fresse:

Nur ohne jetzt viel Ahnung zu haben: Wozu sollte ich solch simple Sachen wie Apache2, MySQL und PHP in Docker verpacken? Als Linux-Neuling finde ich die Konfiguration total simpel.

Moby/Docker in Production: A History of Failure The HFT Guy

Docker wird seinen fast vollen RAM nicht gedrückt bekommen. Im Gegenteil. Den Containern kannst du nur noch weniger RAM zur Verfügung stellen, denn per Default können sie sich nehmen was geht.
Ich habe gerade mal draufgeschaut, etwa 1,6 GB Ram sind frei und der Server läuft ganz entspannt und performant.
 
Hi,

danke für die Antworten bzgl. tmux.

Also ich nutze auch seit einiger Zeit tmux und finde es klasse, obwohl ich tiling​ nie über tmux, sondern mein Window Manager (BSPWM) mache. Tmux hat einfach sehr hilfreiche Funktionen, die man sehr zu schätzen lernt, wenn man viel auf der Kommandozeile unterwegs ist.
Eine einfachere Alternative, die nicht die Möglichkeiten von tmux bieten, aber quasi Gnome Terminal + Tiling ist, ist z.B. tilix/terminix oder terminator.

Hui, Tilix sieht gut aus, das reicht eigentlich für meine Zwecke völlig aus... :)
 
Wozu sollte ich solch simple Sachen wie Apache2, MySQL und PHP in Docker verpacken?

Zwei Gründe:

  1. Portabilität. Du kannst einfach auf jedem erdenklichen OS, auch Windows, dein Projekt auschecken, "docker-compose up -d" ausführen und sie rennt auf exakt der gleichen nginx-, PHP- & MySQL-Version weiter. Auch solche Sachen wie ein PHP-Upgrade lassen sich so maximal simpel lösen.
  2. Sicherheit. Der Container ist eine komplett abgeschottete Umgebung und nur händisch definierte Verzeichnisse werden im Container freigeben (z.B. deine Applikation selbst und der Ordner mit der Datenbank). Sollte eine Sicherheitslücke in nginx/PHP/whatever Codeausführung zulassen, dann ist nur dein Container fritte, aber nicht dein Server. Wenn Datenbank und Code sauber sind, dann reicht ein "docker-compose up -d --build" und der Container wird neu gebaut.


Ich habe gerade mal draufgeschaut, etwa 1,6 GB Ram sind frei und der Server läuft ganz entspannt und performant.

Klar, wieso auch nicht? Solange RAM da ist ist alles gut. SWAP rettet dich vor dem Fall, wenn eben kein RAM mehr da ist bzw. versucht diesen Engpass durch die Swappiness gar nicht erst auftreten zu lassen.

Ich werte Zugriffe etc. über die Apachelog aus usw daher liegt aktuell das ganze "Projekt" in einem Verzeichnis dort, mit htaccess vor Fremdzugriff geschützt. Ist denke ich mal einfacher als jetzt zu überlegen welches von den etlichen Sachen nicht unbedingt da liegen muss oder?

Ganz einfach das schön zu lösen: Dein DocumentRoot zeigt nicht auf das Projekt an sich, sondern du erstellst ein "public"-Verzeichnis. In diesem liegt eine "index.php" und dein CSS/JS-Gedöns. Auf dieses Verzeichnis zeigt dann der DocumentRoot. Die index.php ist ein simpler Router, der einfach eine andere PHP-Datei, die NICHT in dem public liegt, sondern bspw. in einem Ordner "src", inkludiert, je nach URL. Und in ein Verzeichnis "bin" packst du dann Scripte, die via CLI ausgeführt werden, bspw. dein Script, welches du periodisch ausführen möchtest.

Die index.php könnte so aussehen:

Code:
<?php

// Ändert das aktuelle Verzeichnis in das Überliegende. Somit sind alle
// Pfadangaben zu Dateien relativ zum Projektverzeichnis und nicht zum
// "public"-Verzeichnis.
chdir(dirname(__DIR__));

// Request-URL ohne Query-String holen und gucken worauf er matcht.
switch (parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH)) {
    case '/':
        require 'src/Home.php';
        break;

    case '/über':
        require 'src/About.php';
        break;

    case '/login':
        require 'src/Login.php';
        break;

    default:
        http_response_code(404);
        require 'src/404.php';
        break;
}

Die .htaccess könnte so aussehen:

Code:
RewriteEngine On
# Wenn Datei existiert (JS/CSS), dann einfach ausliefern
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
# Existiert die Datei nicht, dann index.php ausliefern
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]

Das ist jetzt maximal simpel, aber funktioniert, um das Script von der Öffentlichkeit fernzuhalten.
 
Zuletzt bearbeitet:
Vielen Dank für eure aussagekräftigen Beiträge :bigok:

Mit Docker werde ich mich wie schon geschrieben zu späterem Zeitpunkt weiter auseinander setzen. Stand jetzt sind erst mal die ganzen Linux Basics dran.
 
Heute Nacht war was los im Hause Siegert. Ich hatte gestern Abend um kurz nach 0 Uhr Updates auf meinem Server Updates installiert und hab, wegen einem Kernel-Update, den Server dann neugestartet. Ich kam aber nicht mehr per SSH drauf. Also Hetzner Robot geöffnet, Remote Konsole geöffnet und sehe, dass er beim Booten wegen diesem Bug hängen geblieben ist. Er reagierte weder auf den ACPI-Shutdown-Befehl im Hetzner Robot noch auf ein Strg-Alt-Entf. Also den "Stop"-Button im Robot gedrückt, was dem Server den Strom abdreht. Und bei dem Reboot danach blieb das Teil bei "Welcome to GRUB" stehen. Also Live-USB reingeworfen angefangen rumexperimentieren, aber bei einem "mount /dev/sda1 /mnt" frierte er einfach ein. Ich hab zwei Stunden (ich war müde) gebraucht, um mal auf die Idee zu kommen mit nem fsck über die Partition zu fahren. Danach fuhr die Kiste wieder hoch. Ich dachte das Journaling sollte genau solche Probleme bei plötzlicher Stromunterbrechung verhindern?! :(
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh