Benutzer-Werkzeuge

Webseiten-Werkzeuge


systemadmin

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
systemadmin [2022/06/15 16:51] – [Kommandos] pulsarsystemadmin [2024/03/21 11:08] (aktuell) – [Git] techguru
Zeile 42: Zeile 42:
 Das Heimatverzeichnis des Hauptbenutzer auf Sicherungs-Partition verlegen. Die Verlinkungen können dann entfallen. Bis auf OpenSuse .kde4 und Ubuntu .kde Unterschied Das Heimatverzeichnis des Hauptbenutzer auf Sicherungs-Partition verlegen. Die Verlinkungen können dann entfallen. Bis auf OpenSuse .kde4 und Ubuntu .kde Unterschied
  
-Dann aus Kompatibilitäts- Gründen das Heimatverz. auf der Sicherungs-Partition mit dem Standard Heimatverzeichnis verlinken.+Dann aus Kompatibilitäts-Gründen das Heimatverz. auf der Sicherungs-Partition mit dem Standard Heimatverzeichnis verlinken.
  
   ln -s /media/BackupA/Backup/System/ronni /home/ronni   ln -s /media/BackupA/Backup/System/ronni /home/ronni
Zeile 54: Zeile 54:
 == Neuen Hauptbenutzer anlegen: ronni == == Neuen Hauptbenutzer anlegen: ronni ==
  
-  useradd -c Multimedia -d /media/BackupA/Backup/System/ronni -s /bin/bash -u 2511 ronni+  useradd -c Multimedia -d /home/ronni -m -s /bin/bash -u 2511 ronni
      
   groupadd -g 800 backup   groupadd -g 800 backup
Zeile 82: Zeile 82:
  
 Symbolische links für Ordner im Heimatverz. anlegen. Ordner darf vorher nicht im Verkn. Verz. existieren. Symbolische links für Ordner im Heimatverz. anlegen. Ordner darf vorher nicht im Verkn. Verz. existieren.
-Am besten ist es den Ordner vorher ins Sicher Laufwerk zu verschieben und dann mit Verkn. Verz. Verknuepfen.+Am besten ist es den Ordner vorher ins Sicher Laufwerk zu verschieben und dann mit Verkn. Verz. Verknüpfen.
  
 <code> <code>
Zeile 167: Zeile 167:
 === Beispiele ohne Playbooks und Roles === === Beispiele ohne Playbooks und Roles ===
  
 +Kommando als remote User ansible ausführen, ssh-key vom Remote Nutzer muss im ~/.ssh hinterlegt sein.
  
   ansible all -u ansible -b -a "/usr/bin/zypper lr"   ansible all -u ansible -b -a "/usr/bin/zypper lr"
Zeile 302: Zeile 303:
 Einen Patch auf allen Entwicklungssystemen ausrollen: Einen Patch auf allen Entwicklungssystemen ausrollen:
  
-  ansible all -i inventoryfiles/entwicklung -m shell -b -a 'zypper in -y -t patch SUSE-SLE-SERVER-12-SP4-2020-555=1+  ansible all -i inventoryfiles/entwicklung -m shell -b -a 'zypper in -y -t patch SUSE-SLE-SERVER-12-SP4-2020-555=1'
  
 ==== Ansible Variablen ==== ==== Ansible Variablen ====
Zeile 710: Zeile 711:
   vmstat -2                             =zeigt alle 2 Sekunden eine neue Zeile mit aktualisierten Infos   vmstat -2                             =zeigt alle 2 Sekunden eine neue Zeile mit aktualisierten Infos
  
-  expr 2 + 3 = ERGEBNIS =rechnen auf der Shell:+  echo $((7*4)) =Rechnen direkt mit der Bash ohne Hilfsprogramm. 
 +  expr 2 + 3 =rechnen auf der Shell:
   expr length ZEICHENKETTE        =Länge der ZEICHENKETTE z.B. 200=3 aaaa=4 1=1   expr length ZEICHENKETTE        =Länge der ZEICHENKETTE z.B. 200=3 aaaa=4 1=1
   expr index ZEICHENKETTE I =gibt hier 3 zurück, Index in ZKETTE, wo eines der ZEICHEN auftritt, sonst 0   expr index ZEICHENKETTE I =gibt hier 3 zurück, Index in ZKETTE, wo eines der ZEICHEN auftritt, sonst 0
Zeile 716: Zeile 718:
  
 Kernel Module suchen: Kernel Module suchen:
 +
   find /lib/modules/$(uname -r) -iname "*kvm*" -print   find /lib/modules/$(uname -r) -iname "*kvm*" -print
  
 Suchen nach SUID/SGUID Dateien: Suchen nach SUID/SGUID Dateien:
 +
   find / -type f -perm +6000 -exec ls -l {} \;   find / -type f -perm +6000 -exec ls -l {} \;
   find / -perm /4000   find / -perm /4000
  
 Suchen nach toten Links: Suchen nach toten Links:
 +
   find -L . -type l   find -L . -type l
  
 Modul-Datei *.ko aktivieren/laden: Modul-Datei *.ko aktivieren/laden:
 +
   insmod /lib/modules/$(uname -r)/kernel/net/ipv6/ipv6.ko   insmod /lib/modules/$(uname -r)/kernel/net/ipv6/ipv6.ko
  
-Es gibt "insmodum Module hinzuzufügen und "rmmodum Module zu entfernen Der "modprobeBefehl +Es gibt ''insmod'' um Module hinzuzufügen und ''rmmod'' um Module zu entfernen Der ''modprobe'' Befehl 
-vereinigt beide Befehle und ist moderner.+vereinigt beide Befehle 
   modprobe --show-depends nvidia =zeigt Abhängigkeiten vom nvidia Modul   modprobe --show-depends nvidia =zeigt Abhängigkeiten vom nvidia Modul
   modprobe -r modul =Hinzufügen, und entfernen mit -r Modulname   modprobe -r modul =Hinzufügen, und entfernen mit -r Modulname
Zeile 736: Zeile 743:
   depmod -a =überprüft alle vorhandenen Module und aktualisiert die Einträge   depmod -a =überprüft alle vorhandenen Module und aktualisiert die Einträge
   udevinfo -ap /sys/PFAD-NAME =gibt alles SYSFS_attributes für den gewählten Hardware-Pfad aus   udevinfo -ap /sys/PFAD-NAME =gibt alles SYSFS_attributes für den gewählten Hardware-Pfad aus
- Kombinination, zeigt direkt die Informationen für eine Gerätedatei an.+ Kombination, zeigt direkt die Informationen für eine Gerätedatei an.
   udevinfo -a -p $(udevinfo -q path -n /dev/Gerätedatei)   udevinfo -a -p $(udevinfo -q path -n /dev/Gerätedatei)
  
Zeile 767: Zeile 774:
   egrep '192\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' *   egrep '192\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' *
  
-Auf grafischer Oberfläche Programme als root starten 
-KDE mit "kdesu" 
-Gnome mit "gksu" z.B.: 
-  gksu wireshark    wird auch oft standardmäßig mit gksu -u root /usr/bin/wireshark aufgerufen. 
  
 +Auf grafischer Oberfläche Programme als root starten; KDE mit "kdesu" und Gnome mit "gksu" z.B.:
  
-=== Rechner ausschalten ohne root Rechte ohne sudo ===+  gksu wireshark 
 +   
 +wird auch oft standardmäßig mit ''gksu -u root /usr/bin/wireshark'' aufgerufen. 
 + 
 + 
 +=== Konfiguration Rechner ausschalten === 
 + 
 +Ohne root Rechte ohne sudo
  
 Adding suid mode to ''/sbin/shutdown'' oder in meinen test ''/sbin/halt'' Adding suid mode to ''/sbin/shutdown'' oder in meinen test ''/sbin/halt''
Zeile 842: Zeile 853:
   find / -xdev -iname *kde* =durchsucht keine anderen Partitionen, xdev muss vorne stehen   find / -xdev -iname *kde* =durchsucht keine anderen Partitionen, xdev muss vorne stehen
   find . -type f -mtime -1 =findet alle Dateien(-type f) keine Ordner die nicht älter als ein Tag sind   find . -type f -mtime -1 =findet alle Dateien(-type f) keine Ordner die nicht älter als ein Tag sind
 +  find . -type f -mtime +3 ls = Alle Dateien im aktuellen Verz. finden die älter als 3 Tage sind und Auflisten mit allen Informationen
   find /usr/ -print0 | grep -FzZ "tabular/reports" =findet z.B. den Verz.-Baum /usr/tabular/reports   find /usr/ -print0 | grep -FzZ "tabular/reports" =findet z.B. den Verz.-Baum /usr/tabular/reports
   find . -wholename "*benutser/groupxyz*"          =findet z.B. den Verz.-Baum benutser/groupxyz   find . -wholename "*benutser/groupxyz*"          =findet z.B. den Verz.-Baum benutser/groupxyz
Zeile 867: Zeile 879:
  
  
-=== System Informationen ===+=== Befehl als anderer Benutzer ausführen === 
 + 
 +Hin und wieder möchte man einen Befehl als anderer Benutzer als sich selbst oder dem Root ausführen. In diesem Falle hilft die folgende Zeile weiter. 
 + 
 +  sudo -u BENUTZER BEFEHL 
 + 
 +Hat man kein sudo zur Verfügung geht auch die folgende Zeile. 
 + 
 +  su BENUTZER -c BEFEHL 
 + 
 + 
 + 
 +==== System Informationen ====
  
 Informationen über das verwendete System Abrufen. ComputerModel, SerienNr, OS-Version, Kernel... Informationen über das verwendete System Abrufen. ComputerModel, SerienNr, OS-Version, Kernel...
Zeile 1003: Zeile 1027:
 rpm -ql groupwise                                        =Inhalt eines installierten Pakets anzeigen rpm -ql groupwise                                        =Inhalt eines installierten Pakets anzeigen
 rpm -qf /usr/share/groupwise.txt =Zu welchen Paket gehört die Datei rpm -qf /usr/share/groupwise.txt =Zu welchen Paket gehört die Datei
 +rpm -qR paketname.rpm                                    =Alle Paket-Abhängigkeiten anzeigen
 rpm -Uvh paketname.rpm          =Installation von Paketen rpm -Uvh paketname.rpm          =Installation von Paketen
 rpm -Uvh http://download.linphone.com/linphone-suse.rpm  =Download und Installations übers Web rpm -Uvh http://download.linphone.com/linphone-suse.rpm  =Download und Installations übers Web
Zeile 1300: Zeile 1324:
  invoke-rc.d nagios start =startet nagios Dienst  invoke-rc.d nagios start =startet nagios Dienst
 </code> </code>
- 
- 
-==== journalctl ==== 
- 
-Diw folgende journalctl Option ist gut damit journalctl nicht alles jeweils per Seite anzeigt sondern alles komplett aufgelistet wird. So wie man es von einer Textdatei kennt. Das ist gut um besser nach bestimmten Schlüsselwörtern zu suchen, da so der gesamte Journal zu Verfügung steht. 
- 
-  journalctl --no-pager 
  
  
Zeile 1329: Zeile 1346:
 Nach Änderungen oder Neuerstellen von ServiceUnits muss einmal ''systemctl daemon-reload'' ausgeführt werden. Nach Änderungen oder Neuerstellen von ServiceUnits muss einmal ''systemctl daemon-reload'' ausgeführt werden.
  
 +Weiteres Beispiel:
 +
 +<code>
 +[Unit]
 +Description=archiva-dienst
 +After=network.target
 +
 +[Service]
 +Type=simple
 +ExecStart=/srv/archiva/bin/archiva.sh start
 +ExecStop=/srv/archiva/bin/archiva.sh stop
 +User=archiva
 +# Group=archiva - Gruppe muss auch existieren! Group=users könnte funktionieren
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +
 +Nach Änderungen oder Neuerstellen von ServiceUnits muss einmal ''systemctl daemon-reload'' ausgeführt werden.
 +
 +
 +
 +==== journalctl ====
 +
 +Die folgende ''journalctl'' Option ist gut damit ''journalctl'' nicht alles jeweils per Seite anzeigt sondern alles komplett aufgelistet wird. So wie man es von einer Textdatei kennt. Das ist gut um besser nach bestimmten Schlüsselwörtern zu suchen, da so der gesamte Journal zu Verfügung steht.
 +
 +  journalctl --no-pager
 +  
 +  
 +Um nur zwischen zwei bestimmten Zeit Abschnitten zu suchen / Von - Bis:
 +  
 +  journalctl --since="2022-07-08 11:17:01" --until="2022-07-08 11:47:01" --no-pager
 +
 +
 +
 +==== ältere Vorgänger InitV ====
  
 Füge Startlinks (die mit “S99…” beginnen) in ''/etc/rc4.d'' und ''/etc/rc5.d'' ein, füge außerdem Stoplinks (die mit “K01…” beginnen) in den anderen rc.xd-Verzeichnissen ein. Apache wird also bei Runlevel-Wechseln zuletzt gestartet und zuerst wieder beendet. Füge Startlinks (die mit “S99…” beginnen) in ''/etc/rc4.d'' und ''/etc/rc5.d'' ein, füge außerdem Stoplinks (die mit “K01…” beginnen) in den anderen rc.xd-Verzeichnissen ein. Apache wird also bei Runlevel-Wechseln zuletzt gestartet und zuerst wieder beendet.
Zeile 1396: Zeile 1449:
   swapoff -a   swapoff -a
  
 +
 +Mit ''parted'' eine SWAP-Partition anlegen, hier ist als File system type **linux-swap** die Richtige Angabe. 
  
 Möchte man die SWAP-Partition vergrößern, funktioniert es genauso mit den Partitionierungs-Tools wie bei einem gewöhnliches Filesystem. Anschließend ist aber kein ''resize'' nötig, sondern lediglich das Kommando ''mkswap'' mit Angabe der swap Partition auszuführen. Möchte man die SWAP-Partition vergrößern, funktioniert es genauso mit den Partitionierungs-Tools wie bei einem gewöhnliches Filesystem. Anschließend ist aber kein ''resize'' nötig, sondern lediglich das Kommando ''mkswap'' mit Angabe der swap Partition auszuführen.
Zeile 1588: Zeile 1643:
 Welche Programme greifen auf die ALSA Geräte Datei ''/dev/snd/'' zu: Welche Programme greifen auf die ALSA Geräte Datei ''/dev/snd/'' zu:
  
-  iglu:~> lsof /dev/snd/*+  lsof /dev/snd/*
      
 <code> <code>
Zeile 1600: Zeile 1655:
  
  
-  iglu:~> fuser /dev/snd/*+  fuser /dev/snd/*
  
 <code> <code>
Zeile 1612: Zeile 1667:
 3285 ?        SLl  256:08 rhythmbox 3285 ?        SLl  256:08 rhythmbox
 </code> </code>
- 
  
 ==== Drucker ==== ==== Drucker ====
Zeile 1728: Zeile 1782:
  
  
-==== Shell-Skripte schreiben ====+===== Bash Shell-Skripte =====
  
 +=== Grundlagen ===
 Zur Anzeige aller Variablen dient der Befehl ''env''. Zur Anzeige aller Variablen dient der Befehl ''env''.
 +
 +=== Suchen ersetzen ===
 +
 +Ersetzen in der Ausgabe(RAW_OUTPUT) von MULTIWERT durch REALWERT
 +nacheinander wird jeder der 3 Werte in RAW_OUTPUT durch neue Werte ersetzt.
 +
 +<code>
 +RESULT="${RAW_OUTPUT//$MULTIWERT/$REALWERT}"
 +RESULT2="${RESULT//$MULTIWARN/$REALWARN}"
 +RESULT3="${RESULT2//$MULTIKRIT/$REALKRIT}"
 +</code>
 +
 +
 +=== Eingabe Prombt shebang ===
  
 Kleiner Spaß am Rande für Microsoft DOS/Windows Fans die Linux nutzen. Kleiner Spaß am Rande für Microsoft DOS/Windows Fans die Linux nutzen.
-ein PS1="C:\ " auf der Konsole schafft eine vertraute Atmosphäre, +ein ''PS1="C:\ "'' auf der Konsole schafft eine vertraute Atmosphäre, diesen Spuk kann man wieder leicht rückgängig machen mit: 
-diesen Spuk kann man wieder leicht rückgängig machen mit:+ 
 +<code>
 PS1="${USER}@${HOST}:${PWD}> " PS1="${USER}@${HOST}:${PWD}> "
 PS1="C:\> " =PS1 Variable ändern in DOS-Style PS1="C:\> " =PS1 Variable ändern in DOS-Style
 PS1="\h:\w> " =PS1 Variable Standard PS1="\h:\w> " =PS1 Variable Standard
 +</code>
 +
 +
 +=== Datums Differenz  ===
 +
 +Das Datum am besten zuvor im iso-8601 Format umwandeln
 +
 +  date --iso-8601
 +
 +Dann das Datum berechnen in dem mit dem Schalter %s das angegebene Datum in die Sekunden seit 1970(Unix Startzeit) umgerechnet wird.
 +
 +  date_diff=$(( ($(date -d $DATUMSVARIABLE +%s) - $(date +%s)) / (60*60*24) ))
  
  
Zeile 1808: Zeile 1890:
   find /opt/xprogram/archiv/ -type f -iname "*.gz" | xargs -i gzip -d {}   find /opt/xprogram/archiv/ -type f -iname "*.gz" | xargs -i gzip -d {}
  
 +
 +=== SHELL Variablen bearbeiten ===
 +
 +Im folgenden Beispiel wird innerhalb der Variablen VAR das Wort Kent durch Saajan ersetzt.
 +
 +<code>
 +VAR="Eric and Kent are good friends."
 +RESULT="${VAR//Kent/Saajan}"
 +echo $RESULT 
 +Eric and Saajan are good friends.
 +</code>
 ==== Installationen ==== ==== Installationen ====
 Die Betriebssystem Installation Die Betriebssystem Installation
Zeile 1820: Zeile 1913:
  
 Bootloader wieder herstellen, z.B. nach der Installation von MS Windows. Rechner mit Linux Live CD Bootloader wieder herstellen, z.B. nach der Installation von MS Windows. Rechner mit Linux Live CD
-starten. Die Linux-System Partition mounten "mount /dev/sda4 /media/sda4anschließend das /dev +starten. Die Linux-System Partition mounten ''mount /dev/sda4 /media/sda4'' anschließend das /dev 
-Verzeichnis in die System Partition mounten "mount -o bind /dev /media/sda4/dev+Verzeichnis in die System Partition mounten ''mount -o bind /dev /media/sda4/dev''
 (sda4 kann auch anders heißen, je nachdem wo das Linux System installiert ist.). (sda4 kann auch anders heißen, je nachdem wo das Linux System installiert ist.).
-Dann die System Partition betreten "chroot /media/sda4 und hier die beiden Befehle ausführen:+Dann die System Partition betreten ''chroot /media/sda4''  und hier die beiden Befehle ausführen:
  
 <code> <code>
Zeile 1831: Zeile 1924:
 </code> </code>
  
-evtl. hilfreich von Live CD starten, dort in der Konsole grub eingeben. In der nun geöffneten +evtl. hilfreich von Live CD starten, dort in der Konsole ''grub'' eingeben. In der nun geöffneten 
-Grub-Konsole: find /boot/grub/stage1 --> liefert z.B. (hd0,5) dann eingeben: +Grub-Konsole: ''find /boot/grub/stage1'' --> liefert z.B. (hd0,5) dann eingeben: 
-root (hd0,5) + 
-setup (hd0)+  root (hd0,5) 
 +  setup (hd0)
  
 alt alt
-In der Datei /boot/grub/menu.lst kann man hinter der kernel Zeile +In der Datei ''/boot/grub/menu.lst'' kann man hinter der kernel Zeile 
-des Betriebsystems vga=791 = 1024x768 oder vga=794 = 1024 x 1280 "+des Betriebsystems ''vga=791 = 1024x768 oder vga=794 = 1024 x 1280''
 für die Bildschirmauflöung einstellen, die wärend des bootens oder auf der für die Bildschirmauflöung einstellen, die wärend des bootens oder auf der
 System Konsole angezeigt wird. System Konsole angezeigt wird.
  
 neu neu
-Anpassungen grub2 werde nicht direkt an /boot/grub/grub.cfg vorgenommen, sondern durch das Anpassen +Anpassungen grub2 werde nicht direkt an ''/boot/grub/grub.cfg'' vorgenommen, sondern durch das Anpassen 
-der Datei /etc/default/grub. Anschließend wird update-grub ausgeführt.+der Datei ''/etc/default/grub''. Anschließend wird ''update-grub'' ausgeführt.
  
 GRUB Bootoptionen GRUB Bootoptionen
Zeile 1936: Zeile 2030:
 </code> </code>
  
 +Anschließend nun den Branch (oftmals main oder master) festlegen/ändern mit:
  
-Nun das Projekt auf dem Git-Server anlegen. Oftmals gibt es auf dem Git-Server ein Webinterface wo es einen Menü-Punkt //New Repository// gibt. +  git branch -M main 
 + 
 +Nun das Projekt auf dem Git-Server anlegen. Oftmals gibt es auf dem Git-Server ein Webinterface wo es einen Menü-Punkt //New Repository// oder //New Project// gibt. Hier sollte man am besten ein komplett leeres Projekt ohne Dateien anlegen. Denn sonst meckert git rum das schon Dateien vorhanden sind wenn man ein bestehendes Verzeichnis hoch laden möchte
  
 Auf der Konsole muss dann noch folgendes ausgeführt werden um die Dateien in die Versions Verwaltung zu integrieren. Auf der Konsole muss dann noch folgendes ausgeführt werden um die Dateien in die Versions Verwaltung zu integrieren.
Zeile 1943: Zeile 2040:
   git remote add origin https://git.example.net/ronni/teamcity-role.git   git remote add origin https://git.example.net/ronni/teamcity-role.git
   git push -u origin master   git push -u origin master
 +
 +Alternativ legt man das Projekt mit Dateien auf dem Webinterface des Git-Servers an und clont sich das Projekt dann dorthin wo man es haben möchte.
  
  
Zeile 2028: Zeile 2127:
  
   /usr/bin/kcmshell5 --list   /usr/bin/kcmshell5 --list
 +  
 + 
 +Mit dem Standard Dateimanager ''Dolphin'' ist es einfach auf anderen Rechner im Netzwerk zuzugreifen, zum Beispiel per SSH(sftp/fish). Beim Zugriff auf einem Netzwerkordners eines entfernten Server hatte ich eine Fehlermeldung //"Communication with the local password server failed"//. Mit dem folgenden Kommando kann man einen Überblick bekommen wo der Fehler her kommt:
 +
 +  dbus-monitor --session
 +  
 +Bei diesem Fehler hatte es geholfen mit dem Standard Nutzer den Benutzer Prozess neu-zustarten:
 +
 +  systemctl --user restart dbus.service 
 +  systemctl --user restart dbus.socket
 +  
 ==== Knotes ==== ==== Knotes ====
  
Zeile 2152: Zeile 2262:
   fsck =checkt Dateisystem nach Fehlern!   fsck =checkt Dateisystem nach Fehlern!
   fsck.ext3 =checkt ext2/ext3 Dateisysteme nach Fehlern und behebt diese.   fsck.ext3 =checkt ext2/ext3 Dateisysteme nach Fehlern und behebt diese.
-  e2fsck =checkt ext2/ext3 Dateisysteme nach Fehlern und behebt diese.+  e2fsck =checkt ext2/ext3 Dateisysteme nach Fehlern und behebt diese. 
 + 
 +=== Informationen über die Massenspeicher Medien anzeigen ===
  
   blkid /dev/sda3 --> /dev/sda3: LABEL="SicherA" UUID="265f37e3-be53-4d7b-84ff-b412674d385f" TYPE="ext3"   blkid /dev/sda3 --> /dev/sda3: LABEL="SicherA" UUID="265f37e3-be53-4d7b-84ff-b412674d385f" TYPE="ext3"
 +
 +Viele Anzeige Möglichkeiten mit ''lsblk''. Hier lassen sich die gesuchten Informationen mit ''--output'' filtern und nach Wunsch sortieren.
 +
 +  lsblk --output HCTL,PATH,MOUNTPOINT
 +
 +
 +Oder nur speziel Informationen bezüglich scsi komptibler Geräte anzeigen, ähnlich dem ''lsscsi'' Kommando.
 +
 +  lsblk --scsi
 +  NAME HCTL       TYPE VENDOR   MODEL                     REV SERIAL                   TRAN
 +  sda  0:0:0:   disk ATA      WL160GSA872B             3E01 WOCL25001237066          sata
 +  sr0  3:0:0:   rom  TSSTcorp TSSTcorpDVD-ROM SH-D163C SB02 TSSTcorpDVD-ROM_SH-D163C sata
 +
  
 Setze maximale Mount-Anzahl auf 60 Setze maximale Mount-Anzahl auf 60
Zeile 2195: Zeile 2320:
  
  
-=== Parted von der Kommandozeile ===+=== parted von der Kommandozeile ===
  
 Auch direkt von der Bash lassen sich alle Kommandos aus der ''parted'' Kommando-Shell als Parameter verwenden.  Auch direkt von der Bash lassen sich alle Kommandos aus der ''parted'' Kommando-Shell als Parameter verwenden. 
Zeile 2215: Zeile 2340:
  
  
-Weitere Beispiele direkt von der Bash/Kommandozeile:+Weitere Beispiele direkt von der Bash/Kommandozeile, falls **Partition Table: unknown:** 
 + 
 +  parted -a optimal /dev/sdb mklabel gpt mkpart var_lib_mysql  0% 100% 
 +   
 +Die Angabe vom Dateisystem ist überflüssig:
  
   parted -a optimal /dev/sde mklabel gpt mkpart backup ext4 0% 100%   parted -a optimal /dev/sde mklabel gpt mkpart backup ext4 0% 100%
Zeile 2221: Zeile 2350:
   parted /dev/sdb1 mklabel gpt mkpart P1 ext4 1MiB 429GB   parted /dev/sdb1 mklabel gpt mkpart P1 ext4 1MiB 429GB
   parted /dev/sdb1 mklabel gpt mkpart ZCM42 ext4 1 429GB   parted /dev/sdb1 mklabel gpt mkpart ZCM42 ext4 1 429GB
 +  
 +:!:
 +Hier muss man auch beachten ob nicht schon bereits eine Partition Table existiert **gpt/msdos**. Falls schon eine Partitionstabelle existiert, dann verkürzt sich der Kommando wie folgt: 
 +
 +  parted -a optimal /dev/sdb mkpart backup_hd ext4 0% 100%
      
 Beim folgenden Befehl funktioniert es nicht, wenn ich 100% hinten anhänge, dann fragt er nochmal nach wegen Partitionsgröße: Beim folgenden Befehl funktioniert es nicht, wenn ich 100% hinten anhänge, dann fragt er nochmal nach wegen Partitionsgröße:
Zeile 2232: Zeile 2366:
  
  
-Im folgenden das schrittweise Anlegen einer 300GB Partition mit ''parted'' auf die Festplatte ''/dev/sdb'':+Im folgenden das schrittweise Anlegen einer 300GB Partition mit ''parted'' auf die Festplatte ''/dev/sdb'': //Dieses schrittweise Vorgehen hilft auch wenn man vorher einen Fehler gemacht hat, z.B. bei Start/Anfang 0 eingegeben hat statt 1// :!:
  
   parted /dev/sdb   parted /dev/sdb
  
 <code> <code>
-(parted) mklabel oder mktabel                                                        +(parted) mklabel oder mktable                                                        
 New disk label type? msdos                                                 New disk label type? msdos                                                
 Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue? Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
 Yes/No? Yes Yes/No? Yes
 +(parted) mkpart primary
  
 oder:                                                              oder:                                                             
                                                                                              
 New disk label type? gpt                                                   New disk label type? gpt                                                  
-(parted) mkpart primary                                                   +(parted) mklabel SUSERepo                                                 
 File system type?  [ext2]? xfs                                             File system type?  [ext2]? xfs                                            
 Start?                                                                     Start?                                                                    
Zeile 2355: Zeile 2490:
  
  
 +=== parted rescue ===
 +
 +Das partitionierungs Programm ''parted'' verfügt auch über eine **rescue** Option mit der sich verloren gegangene Partitionen suchen und wiederherstellen lassen. Der Aufruf kann direkt auf der Bash Kommandozeile mit ''parted /dev/sdc rescue 0 100%'' erfolgen oder innerhalb von ''parted''.
 +
 +
 +==== BTRFS Kommandos ====
 +
 +Allgemeine Info über die BTRFS Partitionen
 +
 +  btrfs filesystem show
 +  btrfs subvol list /
 +  btrfs fi usage /
 +
 +Den belegten Speicherplatz einer BTRFS Partition, hier /var anzeigen
 +
 +  btrfs filesystem df /var
 +
 +
 +=== BTRFS Aufräumen/Wartung ===
 +
 +  btrfs filesystem defragment /var
 +  
 +Die Metadaten und Datei-Daten wieder optimiert auf dem Dateisystem anordnen
 +  
 +  btrfs balance start /tmp
 +  
 +Man kann sich den aktuellen Status des balance Vorgangs auf einem 2. Terminal anzeigen lassen
 +
 +  btrfs balance status / eingeben.
 +  
 +
 +  * https://wiki.ubuntuusers.de/Befehle_Btrfs-Dateisystem/
 +  * https://linuxhint.com/defragment-btrfs-filesystem/
 +  
 +  
 +=== BTRFS resize ===
 +
 +Nach dem eine virtuelle Festplatte vergrößert wurde oder auf einer Festplatte eine Partition entfernt wurde und der freie Speicherplatz dem BTRFS zugerechnet werden soll, muss dann auch das BTRFS nachträglich in seiner Größe angepasst werden. Hierfür verwenden wir das Programm ''parted''.
 +
 +  * Server oder VM wird mit einem Livesystem gestartet
 +  * Das Programm ''parted'' starten mit den Aufruf ''parted /dev/xpy''
 +  * Innerhalb von ''parted'' mit **print** die verfügbaren Partitionen und verfügbare Diskgröße anzeigen lassen
 +  * Mit **resize**, die zu erweiternde Partition auswählen, in meinem Fall die Nr.2 welches die Root Partition darstellt.
 +  * Die Partiton um x GB erweitern oder 100% eingeben
 +  * VM normal starten
 +
 +Ist das richtige System wieder gestartet, wird noch der folgende Kommando aufgerufen
 +
 +  btrfs filesystem resize max /
 +  
      
 ==== piCore ==== ==== piCore ====
Zeile 2572: Zeile 2757:
   rsync -auv --exclude=/ISO_Images --exclude=/Multimedia/Spiele --exclude=/Multimedia/Musik --exclude=/Multimedia/Videos --exclude=/Multimedia/Freizeit/Ronald_bearbeitet --exclude=/Anwendungen --delete-excluded --delete --progress /srv/nfs/USBDisk/Sicher/ /mnt/Sicher   rsync -auv --exclude=/ISO_Images --exclude=/Multimedia/Spiele --exclude=/Multimedia/Musik --exclude=/Multimedia/Videos --exclude=/Multimedia/Freizeit/Ronald_bearbeitet --exclude=/Anwendungen --delete-excluded --delete --progress /srv/nfs/USBDisk/Sicher/ /mnt/Sicher
   /   /
 +
 +Hier wird nur das gesichert was ausdrücklich im rsync_include.file enthalten ist:
 +  rsync -auv --delete --include-from=/srv/nfs/USBDisk/rsync_include.file --progress /srv/nfs/USBDisk/Sicher/ /mnt/Sicher/
 +
  
 Für besondere Fälle; Falls das Passwort mit übergeben werden muss. Z.B. wenn etwas Nachts automatisch als root Nutzer kopiert werden muss und man hier keinen SSH-key für konfigurieren mag. Den Kommando schon öfter genutzt in Verbindung mit at-jobs, wenn Nachts einmalig etwas kopiert/synchronisiert werden soll. Für besondere Fälle; Falls das Passwort mit übergeben werden muss. Z.B. wenn etwas Nachts automatisch als root Nutzer kopiert werden muss und man hier keinen SSH-key für konfigurieren mag. Den Kommando schon öfter genutzt in Verbindung mit at-jobs, wenn Nachts einmalig etwas kopiert/synchronisiert werden soll.
Zeile 2845: Zeile 3034:
  
  
-==== Netzwerk Informationen ====+===== Netzwerk Informationen =====
  
 Welche Rechner sind in meinem Netzwerk IP und MAC Adresse? Welche Rechner sind in meinem Netzwerk IP und MAC Adresse?
Zeile 2860: Zeile 3049:
   for ((i=1;i<20;i++));do ping -c2 172.16.19.$i;arp -a | tr "()" " | cut -d" " -f3,6 | sort; done   for ((i=1;i<20;i++));do ping -c2 172.16.19.$i;arp -a | tr "()" " | cut -d" " -f3,6 | sort; done
  
 +
 +==== nmap ====
  
 oder: oder:
Zeile 2983: Zeile 3174:
  
  
-=== Oder einfacher mit netcat (nc) ===+==== Oder einfacher mit netcat (nc) ====
  
   netcat -v 172.18.10.80 1812   netcat -v 172.18.10.80 1812
-  radius1.beta.rodgau.de [172.18.10.80] 1812 (radius) : Connection refused+  radius1.example.net [172.18.10.80] 1812 (radius) : Connection refused
  
 Bei zwei Netzwerkkarten wird die default Route genutzt. Möchte man die Verbindung der anderen Karte prüfen, muss mit dem Schalter ''-s'' die Source IP gewählt werden: Bei zwei Netzwerkkarten wird die default Route genutzt. Möchte man die Verbindung der anderen Karte prüfen, muss mit dem Schalter ''-s'' die Source IP gewählt werden:
Zeile 3047: Zeile 3238:
  
  
-== einfach Informationen über aktuelle tcp Verbindungen: ==+==== ss und netstat ==== 
 + 
 +einfach Informationen über aktuelle tcp Verbindungen:
  
   socklist - Listet die geöffneten sockets   socklist - Listet die geöffneten sockets
  
-  ss - another utility to investigate sockets+  ss - socket statistics
  
-''ss'' ist vergl. mit netstat+''ss'' ist vergleichbar mit ''netstat''
  
 Oft wird ''ss'' mit den folgenden Optionen verwendet -tar, t = TCP, a = Alle Socket anzeigen und -r löst Hostnamen auf. Oft wird ''ss'' mit den folgenden Optionen verwendet -tar, t = TCP, a = Alle Socket anzeigen und -r löst Hostnamen auf.
Zeile 3059: Zeile 3252:
   ss -tar   ss -tar
  
 +Möchte man alle Verbindungen zu einem bestimmten Rechner mit ''ss'' im Auge behalten, so verwendet man die
 +**dst** oder **src** Option:
 +
 +  watch ss dst 11.14.98.43
 +  
 +  ss src 192.168.100.2
 + 
 +Die gleichen Optionen gehen auch für Port Nummern oder Port Namen z.B. ssh:
 +
 +  ss src :56750
 +  
 +Hier werden alle lauschenden https Ports aufgelistet:
 +
 +  ss -l src :https
 +
 +Und sogar eine Kombination ist möglich:
 +
 +  ss -a dst :5228 or src :mysql
 +
 +
 +Weiter geht es mit ''netstat''
 +
 +Anzeigen aller tcp-Verbindungen ohne lauschende TCP-Ports
  
   netstat -t   netstat -t
Zeile 3087: Zeile 3303:
  
  
-=== Verbindungen auflisten mit lsof ===+==== Verbindungen auflisten mit lsof ====
  
 Derzeit sehr übersichtlich :-) Derzeit sehr übersichtlich :-)
  
   lsof -i -n   lsof -i -n
- 
- 
  
 ==== tcpdump ==== ==== tcpdump ====
Zeile 3217: Zeile 3431:
 ==== Netzwerkkarte einrichten: ==== ==== Netzwerkkarte einrichten: ====
  
-Ein Netzwerk kann mit den Kommando ''ip'' temporär konfigurieren werden.+Ein Netzwerk kann mit den Kommando ''ip'' temporär konfiguriert werden.
  
 +aus Arch Linux Wiki:
 +  ip link set up dev eth0
 +  ip link set eth0 up  <-- kürzer :)
 +  ip addr add 139.96.30.100/24 dev eth0
 +
 +aus eigener Erfahrung:
   ip addr add 172.19.0.52/24 dev eth0   ip addr add 172.19.0.52/24 dev eth0
      
Zeile 3536: Zeile 3756:
  
 Wenn der passwortlose Login scheitert, sollte man zuerst überprüfen, ob die Rechte für ''authorized_keys'' richtig gesetzt wurden. Weiterhin könnten die Rechte des Ordners ~/.ssh falsch sein. Dieser sollte keine Schreibberechtigung für 'group' und 'other' haben. Wenn der passwortlose Login scheitert, sollte man zuerst überprüfen, ob die Rechte für ''authorized_keys'' richtig gesetzt wurden. Weiterhin könnten die Rechte des Ordners ~/.ssh falsch sein. Dieser sollte keine Schreibberechtigung für 'group' und 'other' haben.
 +
 +
 +=== Probleme bei Verlust des public Keys ===
 +
 +Falls der SSH public Key verloren geht, kann man sich diesen mit dem Kommando ''ssh-keygen'' neu erstellen lassen. Man benötigt dafür natürlich den private-Key.
 +
 +  ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
 +  
 +Es kann dann manchmal noch erforderlich sein, dass man den neu generierten id_rsa.pub Key noch erweitern muss. Den Public-Key mit einem Editor öffnen und bis an Ende der Zeile springen, nun ganz am Ende ein Leerzeichen und den nutzer@rechnername eintragen.
  
  
Zeile 4349: Zeile 4578:
   tar xfvz archiv.tar.gz "logs/opensuse irc_#suse.log"   tar xfvz archiv.tar.gz "logs/opensuse irc_#suse.log"
  
-Komprimierte tar.gz und tar.bz2 Dateien kann man sich mit zless, zgrep bzw. bzless, bzgrep ansehen.+Komprimierte xz, tar.gz und tar.bz2 Dateien kann man sich mit xzless, zgrep bzw. bzless, bzgrep ansehen.
  
  
systemadmin.1655304703.txt.gz · Zuletzt geändert: 2022/06/15 16:51 von pulsar