• Erledigen Sie die Anwendungssicherheit auf die richtige Weise! Erkennen, schützen, überwachen, beschleunigen und mehr…
  • Linux bietet unzählige Befehle und Dienstprogramme, mit denen Sie Ihre Systemverwaltungsaufgaben schnell und effizient ausführen können.

    Ihre Arbeit als System Administrator Dazu gehört die Installation und Ausführung von Software, die Kontrolle des Zugriffs, die Überwachung, die Sicherstellung der Verfügbarkeit, Sicherungen, die Wiederherstellung von Sicherungen und natürlich die Brandbekämpfung. 😜

    In diesem Artikel werden einige der Befehle beschrieben, die von Linux-Systemadministratoren bei ihrer täglichen Arbeit häufig verwendet werden.

    uname

    Sofort nach einem Aufprall verwenden und sobald eine Kühlung von Muskeln und Sehnen erforderlich ist. uname Befehl mit dem -a Flag zum Drucken von Systeminformationen. Dieser Befehl zeigt Ihnen den Kernelnamen, die Kernelversion, die Kernelversion, den Hostnamen, den Prozessortyp und Ihre Hardwareplattforminformationen an.

    [email protected]:~$ uname -a
    Linux ubuntu18 5.3.0-1028-azure #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

    Folgendes bedeutet dies:

    kernel name:Linux 
    hostname: ubuntu18 
    kernel release: 5.3.0-1028-azure 
    kernel version: #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 
    machine hardware name: x86_64 
    processor: x86_64 
    hardware-platform: x86_64 
    operating system: GNU/Linux

    df

    Sofort nach einem Aufprall verwenden und sobald eine Kühlung von Muskeln und Sehnen erforderlich ist. df Befehl zum Überprüfen der Größe des Dateisystems und des verfügbaren Speicherplatzes. Dieser von sich selbst verwendete Befehl zeigt die Ausgabe in 1K Blöcke 

    [email protected]:~$ df 
    Filesystem     1K-blocks    Used Available Use% Mounted on
    udev              437208       0    437208   0% /dev
    tmpfs              91100     692     90408   1% /run
    /dev/sda1       30309264 2383952  27908928   8% /
    ....
    

    Option -h Zeigt die Ausgabe in einem für Menschen lesbaren Format an MB und der GB.

    [email protected]:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            427M     0  427M   0% /dev
    tmpfs            89M  692K   89M   1% /run
    /dev/sda1        29G  2.3G   27G   8% /
    tmpfs           445M     0  445M   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           445M     0  445M   0% /sys/fs/cgroup
    /dev/sda15      105M  3.6M  101M   4% /boot/efi
    /dev/sdb1       3.9G   16M  3.7G   1% /mnt
    tmpfs            89M     0   89M   0% /run/user/1001 

    Verwenden Sie flag, um ein Dateisystem zu ignorieren, z. B. tmpfs, dh eine sauberere Ausgabe -x

    [email protected]:~$ df -h -x tmpfs
    Filesystem      Size  Used Avail Use% Mounted on
    udev            427M     0  427M   0% /dev
    /dev/sda1        29G  2.3G   27G   8% /
    /dev/sda15      105M  3.6M  101M   4% /boot/efi
    /dev/sdb1       3.9G   16M  3.7G   1% /mnt

    Verwenden Sie, um nur einen bestimmten Dateisystemtyp aufzulisten -t Flagge. So zeigen Sie beispielsweise nur das ext4-Dateisystem an:

    [email protected]:~$ df -h -t ext4
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1        29G  2.3G   27G   8% /
    /dev/sdb1       3.9G   16M  3.7G   1% /mnt

    Wenn Sie das Total-Flag verwenden, wird eine Zeile mit den Gesamtsummen hinzugefügt:

    [email protected]:~$ df -h -t ext4 --total
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1        29G  2.3G   27G   8% /
    /dev/sdb1       3.9G   16M  3.7G   1% /mnt
    <b>total            33G  2.3G   31G   8% -</b>

    du

    Verwenden Sie, um die Speicherplatznutzung in einem Verzeichnis zu überprüfen du Befehl. Zum Beispiel, um die Speicherplatznutzung im Verzeichnis / var / log anzuzeigen. Verwenden -h Flag für lesbares Format.

    [email protected]:~$ sudo du -h /var/log
    24K	/var/log/Microsoft/Azure/NetworkWatcherAgent/Logs
    28K	/var/log/Microsoft/Azure/NetworkWatcherAgent
    32K	/var/log/Microsoft/Azure
    36K	/var/log/Microsoft
    60K	/var/log/apt
    4.0K	/var/log/samba
    177M	/var/log/journal/0f4f926f583b4691af7de11025b19ff6
    177M	/var/log/journal
    ...
    204M	/var/log

    Um nur die Gesamtnutzung zu sehen, verwenden Sie nur -s (Zusammenfassung) Flagge.

    [email protected]:~$ sudo du -hs /var/log
    204M	/var/log

    free

    Verwenden Sie den Befehl free, um den gesamten, verwendeten und freien Systemspeicher anzuzeigen. Verwenden -h Flag für lesbares Format.

    [email protected]:~$ free -h
                  total        used        free      shared  buff/cache   available
    Mem:           889M        272M        100M        712K        517M        443M
    Swap:            0B          0B          0B
    total - Total installed memory (memtotal + swaptotal)
    used - used memory
    free - unused memory (memfree + swapfree)
    buffers - memory used by kernel buffers
    cache - memory used by page caches
    buff/cache - sum of buffers and cache
    available - Estimated memory available for starting new applications, without swapping

    ps

    Sofort nach einem Aufprall verwenden und sobald eine Kühlung von Muskeln und Sehnen erforderlich ist. ps um Statusinformationen zu Prozessen anzuzeigen, die auf dem System ausgeführt werden. Verwenden Sie, um alle Prozesse anzuzeigen, die dem Benutzer ubuntu gehören -u Flag mit dem Benutzernamen:

    [email protected]:~$ ps -u ubuntu
       PID TTY          TIME CMD
      7804 ?        00:00:00 systemd
      7805 ?        00:00:00 (sd-pam)
      7940 ?        00:00:00 sshd
      7941 pts/0    00:00:00 bash
      8111 ?        00:00:00 sshd
      8112 pts/1    00:00:00 bash
     13868 ?        00:00:00 sshd
     13869 pts/2    00:00:00 bash
     13885 pts/0    00:00:00 man
     13895 pts/0    00:00:00 pager
     18111 pts/2    00:00:00 man
     18121 pts/2    00:00:00 pager
     18485 pts/1    00:00:00 ps

    Um alle Prozesse anzuzeigen, führen Sie ps mit Aux-Flags aus:

    [email protected]:~$ ps aux
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  0.0  0.7 160076  7020 ?        Ss   Jun29   0:34 /sbin/init
    root          2  0.0  0.0      0     0 ?        S    Jun29   0:00 [kthreadd]
    root          3  0.0  0.0      0     0 ?        I<   Jun29   0:00 [rcu_gp]
    root          4  0.0  0.0      0     0 ?        I<   Jun29   0:00 [rcu_par_gp]
    root          6  0.0  0.0      0     0 ?        I<   Jun29   0:00 [kworker/0:0H-kb]
    ....

    woher

    Überschrift Bedeutung
    PID Prozessidentifikationsnummer
    %ZENTRALPROZESSOR Prozentsatz der CPU-Zeit, die der Prozess verwendet
    % MEM Der Prozentsatz des RAM-Prozesses wird verwendet
    VSZ Virtueller Speicher wird in KB verwendet
    RSS Physischer Speicher, den der Prozess in KB verwendet
    TTY Mit dem Prozess verbundenes Terminal
    STAT R - Laufen oder bereit zum Laufen, S - Schlafen, I - Leerlauf, T - Gestoppt, Z - Zombie, D - Warten auf Festplatten-E / A, X - Tot, W - Ausgetauscht, N - Prozess mit niedriger Priorität, <- Prozess mit hoher Priorität

    top

    Während ps Der Befehl zeigt eine Momentaufnahme des Status von Prozessen zu jedem Zeitpunkt an. Oben wird eine kontinuierlich aktualisierte Liste der Systemprozesse (standardmäßig alle drei Sekunden) in der Reihenfolge der Prozessaktivität angezeigt.

    Das top Die Befehlsausgabe besteht aus zwei Hauptteilen: der Systemübersicht oben und der nach CPU-Aktivität sortierten Prozesstabelle.

    top - 14:25:32 up 44 days, 11:37,  1 user,  load average: 0.00, 0.00, 0.00
    Tasks: 114 total,   1 running,  59 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :   910992 total,   101208 free,   274712 used,   535072 buff/cache
    KiB Swap:        0 total,        0 free,        0 used.   458492 avail Mem 
    
       PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND    
     50497 ubuntu    20   0   44528   3944   3368 R  0.7  0.4   0:00.15 top        
         1 root      20   0  160076   7020   4400 S  0.0  0.8   0:34.85 systemd    
         2 root      20   0       0      0      0 S  0.0  0.0   0:00.08 kthreadd   
         3 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 rcu_gp     
         4 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 rcu_par_gp 
         6 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 kworker/0:+
         9 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 mm_percpu_+

    Einige der Felder in der Systemzusammenfassung lauten wie folgt:

    up Betriebszeit. Zeit seit dem letzten Start der Maschine.
    Durchschnittslast Der Lastdurchschnitt bezieht sich auf die Anzahl der Prozesse, die auf ihre Ausführung warten. Ein Wert unter 1.0 bedeutet, dass die Maschine nicht ausgelastet ist. Es gibt 3 Werte. Erstens ist der Durchschnitt der letzten 60 Sekunden, zweitens ist der Durchschnitt der letzten 5 Minuten und der dritte ist der Durchschnitt der letzten 15 Minuten.
    % CPU (s)

     

     

    Diese Zeile beschreibt die Aktivitäten der CPU.

    0.3 us, Benutzer 0.3% CPU werden für Benutzerprozesse verwendet.
    0.0 sy, System 0.0% CPU wird für Systemprozesse verwendet.
    0.0 ni, schön 0.0% CPU wird von Prozessen mit niedriger Priorität (nett) verwendet
    99.7 id, idle 99.7% der CPU ist im Leerlauf
    0.0 wa, IO-Wartezeit 0.0% der CPU wartet auf E / A.
    0.0 hi Zeitaufwand für Hardware-Interrupts
    0.0 und Zeitaufwand für Software-Interrupts
    Jeder 0.0 Zeitstein von dieser VM durch den Hypervisor

    Die Felder der Prozesstabelle lauten wie folgt:

    PID Prozessidentifikationsnummer
    USER Prozessverantwortlicher
    PR Priorisierter
    NI Schöner Wert
    VIRT Vom Prozess verwendeter virtueller Speicher (KB)
    RES Vom Prozess verwendeter physischer Speicher
    SHR Vom Prozess verwendeter gemeinsamer Speicher
    S Prozessstatus. R - Laufen, S - Schlafen, I - Leerlauf, T - gestoppt, Z - Zombie, D - Warten auf Festplatten-E / A, W - Auswechseln, X - Tot
    %ZENTRALPROZESSOR Der CPU-Zeitprozess wird in Prozent verwendet
    % MEM Der physische Speicherprozess wird verwendet
    ZEIT [+] Vom Prozess verwendete Gesamt-CPU-Zeit
    COMMAND Name des Programms

    Während top läuft, können Sie eine Reihe von Befehlen ausgeben. Drücken Sie h or ? um Befehle zu sehen, die ausgeführt werden können, während top ausgeführt wird. Drücken Sie k einen Prozess beenden. Drücken Sie q oben zu beenden.

    dig

    dig ist ein großartiges Tool für DNS-Abfragen. Es wird wie folgt verwendet:

    dig <DNS server> <domain> <query-type>

    woher

    • ist der DNS-Servername, den Sie abfragen möchten
    • ist der Domainname, über den Sie abfragen möchten
    • ist der Name des Datensatzes, den Sie kennen möchten - A, MX, NS SOA usw.

    Verwenden Sie das Flag + short, um eine ausführliche Ausgabe zu unterdrücken.

    So zeigen Sie einen Datensatz für google.com an:

    [email protected]:~$ dig google.com +short
    172.217.164.174

    Um MX-Einträge für google.com anzuzeigen, verwenden Sie:

    [email protected]:~$ dig google.com MX  +short
    50 alt4.aspmx.l.google.com.
    10 aspmx.l.google.com.
    20 alt1.aspmx.l.google.com.
    40 alt3.aspmx.l.google.com.
    30 alt2.aspmx.l.google.com.

    Wenn Sie DNS-Einträge im Internet abfragen müssen, können Sie die verwenden DNS-Nachschlagetool.

    who and w

    who Zeigt Benutzer an, die angemeldet sind.

    [email protected]:~$ who
    ubuntu   pts/0        2020-08-14 17:28 (183.83.211.129)
    ubuntu   pts/1        2020-08-14 17:58 (183.83.211.129)

    w Zeigt die aktuell angemeldeten Benutzer und ihre Prozesse an. Der Header zeigt die aktuelle Zeit, die Systemverfügbarkeit, die Anzahl der angemeldeten Benutzer und die Durchschnittswerte der Systemlast an.

    [email protected]:~$ w
     18:07:33 up 46 days, 15:19,  2 users,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
    ubuntu   pts/0    183.83.211.129   17:28    2.00s  0.10s  0.00s w
    ubuntu   pts/1    183.83.211.129   17:58    9:07   0.05s  0.01s vi

    Der nächste Teil zeigt die Benutzernamen, das Terminal und die Remote-IP, von der aus sie angemeldet sind, die Anmeldezeit, die Leerlaufzeit, die JCPU, die PCPU und das Programm, das sie ausführen. JCPU ist die Zeit, die von allen an die tty angehängten Prozessen verwendet wird, während PCPU die Zeit ist, die vom aktuellen Prozess verwendet wird.

    tar

    Mit GNU tar können Sie mehrere Dateien in einer einzigen Datei archivieren.

    Erstellen Sie als Beispiel ein Verzeichnis myfiles und drei Dateien a.txt, b.txt, c.txt im Verzeichnis myfiles:

    [email protected]:~$ mkdir myfiles ; touch myfiles/{a.txt,b.txt,c.txt}

    So erstellen Sie jetzt ein Archiv mit dem Namen allfiles.tar, das alle Dateien im Verzeichnis myfiles enthält:

    [email protected]:~$ tar -cvf allfiles.tar myfiles
    myfiles/
    myfiles/c.txt
    myfiles/a.txt
    myfiles/b.txt

    Listen Sie alle Dateien im aktuellen Verzeichnis auf. Sie können das Verzeichnis myfiles und das Archiv allfiles.tar sehen:

    [email protected]:~$ ls
    allfiles.tar  myfiles

    Sie können ein Archiv mit dem Flag -x entpacken. Also, um allfiles.tar auszupacken:

    [email protected]:~$ tar -xvf allfiles.tar
    myfiles/
    myfiles/c.txt
    myfiles/a.txt
    myfiles/b.txt

    Sie können dieses Archiv auch mit dem Flag -z komprimieren. Dies würde ein mit gzip komprimiertes Archiv erstellen.

    [email protected]:~$ tar -zcvf allfiles.tar.gz myfiles
    myfiles/
    myfiles/c.txt
    myfiles/a.txt
    myfiles/b.txt
    [email protected]:~$ ls
    allfiles.tar.gz  myfiles

    Um ein komprimiertes Archiv zu entpacken, verwenden Sie -z mit -x Flagge.

    [email protected]:~$ tar -zxvf allfiles.tar.gz 
    myfiles/
    myfiles/c.txt
    myfiles/a.txt
    myfiles/b.txt

    grep

    grep wird verwendet, um nach einem Muster in einer Datei oder einer Reihe von Dateien zu suchen. Es werden alle Zeilen gedruckt, die diesem Muster entsprechen. So suchen Sie beispielsweise in /etc/apache2/apache2.conf nach der Zeile mit "ServerRoot":

    [email protected]:~$ grep ServerRoot /etc/apache2/apache2.conf 
    # ServerRoot: The top of the directory tree under which the server's
    #ServerRoot "/etc/apache2"

    Um in allen Dateien in einem Verzeichnis zu suchen, verwenden Sie *. Um die Suche in Unterverzeichnisse aufzunehmen, verwenden Sie -r (rekursives) Flag. So suchen Sie in allen Dateien in / etc / apache2 nach allen Zeilen, die das Muster "VirtualHost" enthalten:

    [email protected]:~$ cd /etc/apache2
    [email protected]:/etc/apache2$ grep -r VirtualHost *
    apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost>
    apache2.conf:# logged here.  If you *do* define an error logfile for a <VirtualHost>
    conf-available/localized-error-pages.conf:# even on a per-VirtualHost basis.  If you include the Alias in the global server
    conf-available/other-vhosts-access-log.conf:# Define an access log for VirtualHosts that don't define their own logfile
    ports.conf:# have to change the VirtualHost statement in
    sites-available/000-default.conf:<VirtualHost *:80>
    ...
    

    rsync

    rsync ist ein schnelles Befehlszeilentool zum Synchronisieren von Dateien und Verzeichnissen zwischen zwei Speicherorten. Kann sowohl für lokales als auch für Remote-Kopieren verwendet werden und ist schnell, da nur die Unterschiede zwischen den Quelldateien und den vorhandenen Dateien im Ziel gesendet werden.

    Es wird häufig für Sicherungen und als verbesserter Kopierbefehl für den täglichen Gebrauch verwendet.

    Hier ist ein Beispiel:

    So kopieren / synchronisieren Sie alle Dateien aus dem Verzeichnis myfiles in das Sicherungsverzeichnis:

    [email protected]:~$ rsync -avh myfiles/ /backups
    sending incremental file list
    ./
    a.txt
    b.txt
    c.txt
    
    sent 218 bytes  received 76 bytes  588.00 bytes/sec
    total size is 0  speedup is 0.00

    Um alle Dateien vom Verzeichnis myfiles in das Sicherungsverzeichnis auf einem Remote-Host zu synchronisieren, schließen Sie Folgendes ein: remote_user @remote_host im Zielnamen. So synchronisieren Sie den Ordner "myfiles" mit einem Remote-Host mit IP 10.0.0.50:

    [email protected]:~$ rsync -avh myfiles/ [email protected]:/home/vagrant
    [email protected]'s password: 
    sending incremental file list
    ./
    a.txt
    b.txt
    c.txt
    
    sent 230 bytes  received 76 bytes  47.08 bytes/sec
    total size is 0  speedup is 0.00

    ss

    ss Der Befehl wird verwendet, um Socket-Statistiken zu sichern, ähnlich dem alten Dienstprogramm netstat. Verwenden Sie zum Anzeigen von TCP-Sockets -t Flagge.

    [email protected]:~$ ss -t 
    State       Recv-Q        Send-Q                 Local Address:Port                     Peer Address:Port         
    ESTAB       0             0                           10.0.0.4:53852                   168.63.129.16:8037         
    ESTAB       0             0                           10.0.0.4:ssh                    183.83.211.129:64118        
    ESTAB       0             0                           10.0.0.4:33256                 169.254.169.254:http         
    ESTAB       0             1080                        10.0.0.4:ssh                     222.186.30.35:11527        
    ESTAB       0             0                           10.0.0.4:ssh                    183.83.211.129:63049

    Dies würde keine Sockets anzeigen, die gerade lauschen. Um sowohl hörende als auch nicht hörende Steckdosen einzuschließen, verwenden Sie -t und der -a Flaggen.

    [email protected]:~$ ss -t -a 
    State        Recv-Q        Send-Q                Local Address:Port                     Peer Address:Port         
    LISTEN       0             128                         0.0.0.0:ssh                           0.0.0.0:*            
    LISTEN       0             80                        127.0.0.1:mysql                         0.0.0.0:*            
    LISTEN       0             128                   127.0.0.53%lo:domain                        0.0.0.0:*            
    ESTAB        0             0                          10.0.0.4:53852                   168.63.129.16:8037         
    ESTAB        0             0                          10.0.0.4:ssh                    183.83.211.129:64118        
    ESTAB        0             0                          10.0.0.4:33256                 169.254.169.254:http         
    ESTAB        0             1080                       10.0.0.4:ssh                     222.186.30.35:11527        
    ESTAB        0             120                        10.0.0.4:ssh                    183.83.211.129:63049        
    LISTEN       0             128                            [::]:ssh                              [::]:*            
    LISTEN       0             128                               *:http                                *:*

    locate

    Das locate Der Befehl verwendet eine Datenbank zum Suchen nach Dateien und kann tatsächlich viel schneller sein als der Befehl find. Sehr einfach zu bedienen, um nach einer Datei zu suchen, z. B. apache2.conf:

    [email protected]:~$ locate apache2.conf
    /etc/apache2/apache2.conf
    /var/lib/dpkg/info/apache2.conffiles

    Sie können verwenden -c Flag, wenn nur die Anzahl der Dateien mit dem Suchmuster übereinstimmen soll.

    [email protected]:~$ locate -c apache2.conf
    2

    Manchmal müssen Sie möglicherweise die von find verwendete Datenbank aktualisieren, nämlich mlocate. Um die Datenbank zu aktualisieren, verwenden Sie updatedb Befehl. Dies würde Superuser-Berechtigungen erfordern.

    [email protected]:~$ sudo updatedb

    find

    Einer der am häufigsten verwendeten Befehle unter Linux. Verwenden Sie diese Option, um nach Dateien zu suchen, die neben anderen Kriterien auf Dateinamen, Berechtigungen, Benutzer-ID, Gruppen-ID, Größe und Dateityp basieren.

    Verwenden Sie zum Suchen nach einer Datei nach Namen im aktuellen Verzeichnis das Flag -name gefolgt vom Dateinamen für die Suche:

    [email protected]:~$ find . -name a.txt
    ./myfiles/a.txt

    Verwenden Sie zum Suchen nach Verzeichnissen -type d Flagge:

    [email protected]:~$ find . -type d
    .
    ./.ssh
    ./myfiles
    ./.cache
    ./.gnupg
    ./.gnupg/private-keys-v1.d
    ./docker

    Verwenden Sie zum Suchen nach Dateien nach Größe, z. B. Dateien mit einer Größe von mehr als 20 MB -size Flagge:

    [email protected]:~$ find . -size +20M
    ./docker/docker-ce-cli_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb
    ./docker/docker-ce_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb

    systemctl

    Nun systemd hat den SysV-Init-Prozess in den meisten Linux-Distributionen ersetzt systemctl Befehl zum Verwalten von systemd-Diensten und -Einheiten.

    So starten Sie einen Dienst, zum Beispiel apache2:

    [email protected]:~$ sudo systemctl start apache2.service

    Sie können das Service-Suffix verlassen.

    So stoppen Sie einen Dienst:

    [email protected]:~$ sudo systemctl stop apache2

    Verwenden Sie, um den Servicestatus anzuzeigen systemctl Statusbefehl. Das folgende Beispiel zeigt den Status von Apache2 während der Ausführung:

    [email protected]:~$ sudo systemctl status apache2
    ● apache2.service - The Apache HTTP Server
       Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
      Drop-In: /lib/systemd/system/apache2.service.d
               └─apache2-systemd.conf
       Active: active (running) since Wed 2020-08-19 11:34:04 UTC; 2s ago
      Process: 25346 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
      Process: 18202 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
      Process: 25536 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
     Main PID: 25555 (apache2)
        Tasks: 55 (limit: 1024)
       CGroup: /system.slice/apache2.service
               ├─25555 /usr/sbin/apache2 -k start
               ├─25558 /usr/sbin/apache2 -k start
               └─25559 /usr/sbin/apache2 -k start
    
    Aug 19 11:34:04 ubuntu18 systemd[1]: Starting The Apache HTTP Server...
    Aug 19 11:34:04 ubuntu18 systemd[1]: Started The Apache HTTP Server.

    ufw command

    UFW - unkomplizierte Firewall ist ein einfach zu verwendendes Frontend für iptables. Es ist standardmäßig auf Ubuntu-basierten Distributionen verfügbar. Unter CentOS können Sie installieren ufw aus dem EPEL-Repository.

    So aktivieren Sie ufw:

    $ sudo ufw enable

    Überprüfen Sie den Firewall-Status mit dem UFW-Status:

    $ sudo ufw status
    Status: active

    Standard-UFW-Richtlinien erlauben den gesamten ausgehenden Verkehr und blockieren den gesamten eingehenden Verkehr.

    Der folgende Befehl ermöglicht eingehenden Datenverkehr am HTTP-Port:

    $ sudo ufw allow http
    Rule added
    Rule added (v6)

    Sie können den Datenverkehr an jedem Port verweigern. Hier ist ein Beispiel zum Blockieren des Datenverkehrs auf Port 21:

    $ sudo ufw deny 21
    Rule added
    Rule added (v6)

    journalctl

    Sofort nach einem Aufprall verwenden und sobald eine Kühlung von Muskeln und Sehnen erforderlich ist. journalctl um von systemd gesammelte Protokolle anzuzeigen. systemd sammelt das Protokoll an einem zentralen Ort in einem Binärformat. So zeigen Sie diese Protokolle an:

    [email protected]:~$ sudo journalctl
    -- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:07:59 UTC. --
    Jun 29 02:48:31 ubuntu kernel: Linux version 5.3.0-1028-azure ([email protected]) (gcc version 7.5.0 (Ubuntu
    Jun 29 02:48:31 ubuntu kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.3.0-1028-azure root=UUID=b0dd9d06-536e-41
    Jun 29 02:48:31 ubuntu kernel: KERNEL supported cpus:
    Jun 29 02:48:31 ubuntu kernel:   Intel GenuineIntel
    ...

    Meistens möchten Sie die Protokolle in umgekehrter Reihenfolge anzeigen, dh zuerst die neuesten Protokolle:

    [email protected]:~$ sudo journalctl -r
    -- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:10:16 UTC. --
    Aug 19 15:10:16 ubuntu18 sudo[31263]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
    Aug 19 15:10:16 ubuntu18 sudo[31263]:   ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc
    Aug 19 15:10:11 ubuntu18 sudo[31213]: pam_unix(sudo:session): session closed for user root
    Aug 19 15:07:59 ubuntu18 sudo[31213]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
    Aug 19 15:07:59 ubuntu18 sudo[31213]:   ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc
    Aug 19 15:07:56 ubuntu18 sudo[31183]: pam_unix(sudo:session): session closed for user root
    Aug 19 15:06:47 ubuntu18 sudo[31183]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
    ...

    Zum Anzeigen von Protokollen eines bestimmten Dienstes, z. B. mysql -u Flagge:

    [email protected]:~$ sudo journalctl -u mysql
    -- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:11:34 UTC. --
    Aug 16 12:30:02 ubuntu18 systemd[1]: Starting MySQL Community Server...
    Aug 16 12:30:03 ubuntu18 systemd[1]: Started MySQL Community Server.
    Aug 19 15:03:27 ubuntu18 systemd[1]: Stopping MySQL Community Server...
    Aug 19 15:03:29 ubuntu18 systemd[1]: Stopped MySQL Community Server.

    kill and killall

    Möglicherweise müssen Sie einen außer Kontrolle geratenen Prozess beenden oder einige Systemressourcen freigeben. töte mit -l Das Flag zeigt alle Signale an, die Sie an einen Prozess senden können.

    [email protected]:~$ kill -l
     1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
     6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
    11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
    16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
    ....

    Zwei am häufigsten verwendete Signale sind SIGTERM UND SIGKILL. Sie können auch -9 für SIGKILL und -15 für SIGTERM verwenden. Mit SIGTERM kann ein Prozess abgeschlossen werden, bevor er beendet wird, und wird daher als Soft Kill bezeichnet. SIGKILL beendet den Vorgang sofort. Hier ist ein Beispiel:

    Listen Sie alle Apache2-Prozesse auf

    [email protected]:~$ ps aux|grep apache2
    root      45521  0.0  0.5  78188  4688 ?        Ss   Aug08   0:03 /usr/sbin/apache2 -k start
    www-data  45524  0.0  0.5 830480  4816 ?        Sl   Aug08   0:00 /usr/sbin/apache2 -k start
    www-data  45525  0.0  0.7 830480  6856 ?        Sl   Aug08   0:00 /usr/sbin/apache2 -k start
    ubuntu    70374  0.0  0.1  14852  1040 pts/0    S+   07:45   0:00 grep --color=auto apache2

    So beenden Sie den Apache2-Prozess mit der Prozess-ID 45525:

    [email protected]:~$ sudo kill -9 45525

    Zeigen Sie erneut die Liste der Apache2-Prozesse an:

    [email protected]:~$ ps aux|grep apache2
    root      45521  0.0  0.5  78188  4688 ?        Ss   Aug08   0:03 /usr/sbin/apache2 -k start
    www-data  45524  0.0  0.5 830480  4816 ?        Sl   Aug08   0:00 /usr/sbin/apache2 -k start
    ubuntu    70525  0.0  0.1  14852  1052 pts/0    S+   07:52   0:00 grep --color=auto apache2

    Verwenden Sie killall, um ein Programm mit Namen zu beenden. Dies bedeutet, dass killall den Kontrollprozess (übergeordnet) und alle untergeordneten Prozesse beendet. So beenden Sie alle Instanzen des Apache2-Prozesses im obigen Beispiel:

    [email protected]:~$ sudo killall apache2

    Sofort nach einem Aufprall verwenden und sobald eine Kühlung von Muskeln und Sehnen erforderlich ist. kill und der killall mit Vorsicht. Diese Befehle können das System in einem instabilen Zustand belassen.

    IP

    Das ip Befehl ersetzt ifconfig in den neueren Linux-Distributionen. Verwenden Sie diese Option, um Netzwerkschnittstellen zu konfigurieren und anzuzeigen. Wird auch zum Anzeigen und Ändern von IP-Adressen, Routen und Nachbarobjekten verwendet.

    Informationen zu allen Netzwerkschnittstellen anzeigen:

    [email protected]:~$ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:0d:3a:9b:88:d6 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.4/24 brd 10.0.0.255 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::20d:3aff:fe9b:88d6/64 scope link 
           valid_lft forever preferred_lft forever

    Um eine Schnittstelle nach oben oder unten zu bringen, verwenden Sie ip link set dev gefolgt vom Gerätenamen. So schalten Sie beispielsweise die Schnittstelle eth0 online:

    [email protected]:~$ ip link set eth0 up

    Und um es runter zu bringen:

    [email protected]:~$ ip link set eth0 down

    date

    Ein sehr häufig verwendeter Befehl. Hier untersuchen wir einige interessante Möglichkeiten, diesen Befehl zu verwenden.

    [email protected]:~$ date
    Tue Aug 11 07:42:49 UTC 2020

    Um das Datum des nächsten Sonntags zu sehen:

    [email protected]:~$ date -d 'next sunday'
    Sun Aug 16 00:00:00 UTC 2020

    Um das Datum des letzten Sonntags zu sehen:

    [email protected]:~$ date -d 'last sunday'
    Sun Aug  9 00:00:00 UTC 2020

    Sie können auch –date anstelle des Flags -d verwenden:

    [email protected]:~$ date --date='last sunday'
    Sun Aug  9 00:00:00 UTC 2020

    Um das Datum vor 6 Tagen zu sehen:

    [email protected]:~$ date --date='6 days ago'
    Wed Aug  5 08:06:37 UTC 2020

    Datum in 6 Tagen:

    [email protected]:~$ date --date='6 days'
    Mon Aug 17 08:08:37 UTC 2020

    Sie können das Datumsausgabeformat einfach steuern. Hier ist ein Beispiel:

    [email protected]:~$ date '+%d-%B-%Y'
    11-August-2020

    Zusammenfassung

    Sie als Systemadministrator behalten die Welt Computerinfrastruktur Laufen. Sie müssen Probleme lösen, die Systeme warten und optimal laufen lassen und gleichzeitig die Sicherheit gewährleisten.

    Ich hoffe, diese Befehle sind nützlich und helfen Ihnen, Ihre Arbeit besser zu machen.