svchost.exe verursacht hohe CPU-Auslastung unter Windows 7

Eine ganze CPU ist ausgelastet – es findet keine Aktivität im Speicher statt und auch keine Festplattenzugriffe. Es sind mehr als ein GB reserviert, jedoch finden viel Netzwerktraffic und I/Os auf dem Prozess svchost.exe statt der eine nahezu 100%-ige CPU-Auslastung auf einem gesamten Kern verursacht. Das alles gibt mir der Taskmanager an Informationen heraus, aber auf den erten Blick hatte ich den Zusammenhang noch nicht durchdrungen.

Im Taskmanager ist davon der Prozess mit folgender Befehlszeile betroffen:

C:\Windows\system32\svchost.exe -k netsvcs

Mein Problem hierbei ist, dass die Windows Updates gelgentlich auch als fehlgeschlagen markiert werden. Dies wirkt als sei dies ein generelles Problem bei einem Windows 7 mit Service Pack 1 zu sein, da ich diese Beobachtung wiederholt auf unterschiedlichen Systemen hatte.

Das Problem

Die Ursache für dieses Problem liegt an mehreren Punkten begründet:

  1. Windows 7 SP1 benötigt inzwischen sehr viele Updates. Ohne SP1 sind es sogar noch viel mehr.
  2. Schwache CPU
  3. langsame Internetverbindung

Wer heute im Jahr 2017 noch ein Windows 7 komplett neu installiert hat inzwischen mit mehr als 220 Updates zu rechnen. Und diese Zahl steigt mit jedem Monat weiter an. Diese Menge ist für einen „normalen“ Rechner schon eine ernormes Stück Arbeit an Aktualisierungsarbeit des Betriebssystems.

Die Lösung

Für die Lösung benötigt man viel Zeit, eine gute Internetleitung und ausreichend Geduld. Die Updates liegen bei einigen Giga-Bytes und dauern mit den vielen Neustarts sowie den unzähligen Aktualisierungsoperationen dazwischen locker einen Tag. Um die Sache auf die minimalste Dauer zu begrenzen sollte man regelmäßig den Rechner beobachten und vom System verlangte Neustarts durchführen.

Auch hilft es zum einen sich für die Dauer der Einrichtung einen Adminaccount ohne Passwort anzulegen und der automatisch eingeloggt wird und des weiteren eine Verknüpfung zu Windows Update auf den Desktop zu legen. Diese kann dann nach jedem Neustart immer wieder direkt ausgeführt werden um dann in dem geöffneten Fenster auf „Nach Updates suchen“ zu klicken.

Installierte Grafikkarte unter Windows ermitteln

Um Details zur installierten Grafikkarte zu ermitteln, startet man unter Windows mit WINDOWS-Taste+R eine neue Konsole und den Befehl dxdiag eingibt. Es öffnet sich sodann ein Dialogfenster mit Informationen zu den DirectX Einstellungen des lokalen Computers.

Dort kann man im zweiten Reiter „Anzeige“ Details zur verbauten Grafikkarte einsehen. Es werden dort Informationen zum verbauten Chip, Speichergröße, sowie Speichergröße, Auflösung und Frequenz angegeben.

Spam Ordner in Thunderbird automatisch synchronisieren

Ich befinde mich in Thunderbird bei meinem E-Mail Posteingang immer im Hauptordner des Posteingangs. Dies ist auch der Ordner welcher automatisch synchronisiert wird. Allerdings werden neu erhaltene Emails im Spam-Ordner nicht fett markiert und deren Anzahl dargestellt. Erst beim Klick auf den Ordner „Spam“ erscheint in der Ordnerhierachie die Anzahl der enthaltenen, ungelesenen Mails.

Amazon Echo Dot 2. Generation
Amazon Echo

Lösung

Den Spam Ordner mit der rechten Maustaste anklicken und im Untermenü „Eigenschaften“ auswählen. Dort dann im Reiter „Allgemein“ die Option „Diesen Ordner auf neue Nachrichten überprüfen, wenn Nachrichten für dieses Konto empfangen werden“ aktivieren und mit „OK“ diese Einstellung speichern.

Ab sofort werden neu eingehende Nachrichten in diesem Ordner synchronisiert und bei Nachrichteneingang entsprechend angezeigt.

Umlaute in HeidiSQL werden falsch angzeigt

Bei der Arbeit mit HeidiSQL habe ich das Problem, dass Umlaute je nach Datenbank falsch angezeigt werden und nicht lesbar sind. Diese werden von HeidiSQL standardmäßig in UTF-8 kodiert angenommen. Allerdings ist die Default-Charset meiner Datenbank mit einer anderen Kodierung vorgesehen, nämlich in latin-1.

In den Einstellungen von HeidiSQL kann man jedoch keine passende Option dazu finden diese Collation zu ändern. Und das weder in den globalen, noch in den verbindungspezifischen Einstellungen.

Eine Ausgabe in den Ergebnisdaten mit Umlauten sieht dann möglicherweise wie folgt aus:

select lastname from users where id = 1;

> Schröder

Lösung

Nachdem folgende SQL Abfrage abgesetzt wurde werden die Umlaute aller künftigen SQL-Abtragen innerhalb der aktuellen Verbindung  korrekt dargestellt.

SET NAMES 'latin1';

Nachdem diese Query abgesetzt wurde, werden die Umlaute korrekt dargestellt. So sieht die ursprünglich falsche Antwort nun korrekt aus:

select lastname from users where id = 1;
> Schröder

Weiterführende Literatur

Shortcut für Linux-Konsole um Fenster zu leeren

Ich möchte in meiner Linux Konsole alle Ausgaben in meinem aktuellen Fenster leeren. Dies geht mittels dem Befehl

clear

Unter Windows lautet der Befehl hierfür:

cls

Man kann es jedoch auch viel einfacher haben und dafür die Tastenkombination

STRG + L

verwenden ohne diesen langen Befehl einzutippen und ihn dann noch mit Enter zu bestätigen.

Mysql Datenbank kopieren bzw. duplizieren

Möchte man in Mysql eine Datenbank kopieren bzw. duplizieren kann man das leider nicht in einem Schritt. Dies muss man in MySQL in drei Schritten vornehmen. Dazu muss zunächst die Quelldatenbank exportiert werden, dann wird die neue Datenbank erzeugt um abschließend die im ersten Schritt erzeugten Daten in die neue Datenbank zu importieren.

Vorgehensweise im Detail

1. Schritt: Exportieren der vorhandenen Daten aus der Quelldatebank auf der Konsole

[vader@deathstar ~]$ mysqldump SOURCE_DB > dump_db.sql

2. Schritt: Erzeugen der neuen Datenbank im SQL-Client

MariaDB [(none)]> create database TARGET_DB;

3. Schritt: Importieren der im ersten Schritt exportierten Daten in das neue Ziel – ebenfalls auf der Konsole

[vader@deathstar ~]$ mysql TARGET_DB < dump_db.sql

Mit dieser Schritt-für-Schritt-Anleitung kann man nun ganz einfach die Datenbank klonen.

Hat Dir das Tutorial geholfen? Hinterlass mir doch einen Kommentar

Weiterführende Literatur

telnet Verbindung lässt sich nicht beenden

Wenn ich mich via telnet auf einen beliebigen Server verbinde kann ich die Verbindung nicht mehr mittles STRG+C abbrechen und auch nicht mittels STRG+Q beenden.

Dies liegt an der Natur von telnet selber. Es wird erwartet, dass man das Kommandofenster startet. Beim Start wird man schließlich nicht weiter darauf hingewiesen:

[vader@deathstar]$ telnet blog.moderlak.de 80
Trying 88.99.14.229...
Connected to blog.moderlak.de.
Escape character is '^]'.

Lösung 

Man könnte nun hingehen und die SSH Sitzung killen oder auch den Timeout der Gegenstelle abwarten. Aber das ist ja kein ordentlicher Verbindungsabbau. Um nun in den Eingabemodus zu gelangen drückt man in der telnet Konsole die Tastenkombination STRG+“+“. Es öffnet sich umgehend die Eingabekonsole:

^]
telnet> 

Hier kann man nun beliebig Befehle absetzen die auf der Gegenstelle ausgeführt werden. Zum Beispiel den Beenden-Befehl:

telnet> quit
Connection closed.

Weitere Hilfe

In der telent Eingabekonsole kann man nun auch durch die Eingabe von help die Liste an Befehlen anfordern mit denen die Gegenstelle korrespondiert :

telnet> help
Commands may be abbreviated.  Commands are:

close           close current connection
logout          forcibly logout remote user and close the connection
display         display operating parameters
mode            try to enter line or character mode ('mode ?' for more)
open            connect to a site
quit            exit telnet
send            transmit special characters ('send ?' for more)
set             set operating parameters ('set ?' for more)
unset           unset operating parameters ('unset ?' for more)
status          print status information
toggle          toggle operating parameters ('toggle ?' for more)
slc             change state of special charaters ('slc ?' for more)
z               suspend telnet
!               invoke a subshell
environ         change environment variables ('environ ?' for more)
?               print help information

telnet>

Weiterführende Literatur

git remote URL von SSH auf HTTPS ändern

Ich habe auf meinem GIT Server mehrere Authenifizierungsmöglichkeiten zur Verfügung stehen. Man kann sich auf diesem via HTTP, respektive HTTPS authentifzieren und alternativ ist dies auch über SSH möglich.

Nachdem das Repository einmal mittels HTTPS ausgecheckt wurde und man sich für jede serverbasierte Aktion andauernd mit dem Zugangspasswort authentifizieren muss, möchte ich die wiederholte Passworteingabe unterbinden. Dies kann man indem man die Repositoryquelle auf SSH umstellt.

Die bisherige HTTPS-URL hierfür lautet:

https://vader@nullgit.deathstar.universe/scm/my_project/my_repository.git

Die neue SSH-URL ist erreichbar unter:

ssh://git@nullgit.deathstar.universe:7999/my_project/my_repository.git

Man kann die Bezugsquelle des Repository ändern durch folgenden Befehl:

git remote set-url origin ssh://git@nullgit.deathstar.universe:7999/my_project/my_repository.git

Um die Einstellung zur geänderten URL zu verifizieren kann man diese mittels folgender Abfrage verifizieren:

git remote -v

Hieraus sollte folgende Ausgabe resultieren:

origin ssh://git@nullgit.deathstar.universe:7999/my_project/my_repository.git (fetch)
origin ssh://git@nullgit.deathstar.universe:7999/my_project/my_repository.git (push)

Das ganze läuft bei mir auf meinem Bitbucket-Server und lässt sich einwandfrei einrichten. Es lässt sich auf dem selben Weg auch die Quelle umkehren um auf von SSH auf HTTPS umzustellen.

git remote set-url origin https://vader@nullgit.deathstar.universe/scm/my_project/my_repository.git

Mit dieser Funktionalität kann man natürlich auch sein Repository auch auf einen anderen Quellserver umstellen. Wer sich jetzt nicht vorstellen kann wie das funktioniert der schreibt mir einfach in die Kommentare.

Weiterführende Literatur

Suche nach Inhalten in bestimmten Dateien

Durchsuche rekursiv nach Dateien in einem Verzeichnis nach Inhalten ohne Beachtung der Groß- und Kleinschreibung:

find /var/log/httpd/ type f | xargs grep -iE "cron\.php"

Zunächst suchen wir mittels find all die Dateien die für eine genauere Analyse überhaupt relevant sind. Im zweiten Schritt wird mittels grep in genau diesen Dateien nach dem gewünschten Inhalten gesucht ungeachtet von Groß- und Kleinschreibung

Private Keys in Pagent automatisch beim Start von Windows laden

Ich möchte beim Start von Windows automatisch meine Private Keys in Pagent laden damit ich diese nicht einzeln nach jedem Neustart meines Rechners in Pagent anhängen brauche.

  1. Im Windows Startmenü „Alle Programme“ und anschließend „Autostart“ erweitern und mit der rechten Maustaste das Kontextmenü öffnen und darin dann „Öffnen“ wählen.
  2. In dem geöffneten Ordner mit der rechter Maustaste „Neu“ und darin „Verknüpfung“ wählen.
  3. In dem neu geöffneten Dialog gibt man als Ziel den Pfad zur pagent.exe. Dies ist in der Regel der Pfad „C:\Program Files (x86)\PuTTY\pageant.exe“
  4. Dann klickt man auf „Weiter“, gibt der Verknüpfung einen beliebigen Namen und speichert diese durch Klick auf „Fertig stellen“.
  5. Die nun erzeugte Verknüpfung klickt man mit der rechten Maustaste an und wählt im Kontextmenü „Eigenschaften“.
  6. Dort ergänzt man nun das oben eingegebene Ziel um den zu ladenen Private Key. Dies könnte dann zum Beispiel dann das neu Ziel
    "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\vader\Documents\SSH-Keys\key.ppk"

    sein.

  7. Möchte man mehrere Keys laden so kann man dies durch Aneinanderreihung von mehreren Schlüsseln ermöglichen:
    "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\vader\Documents\SSH-Keys\key-1.ppk" "C:\Users\vader\Documents\SSH-Keys\key-2.ppk" "C:\Users\vader\Documents\SSH-Keys\key-3.ppk"
  8. Optional kann man auch das Arbeitsverzeichnis „Ausführen in“ auf ein beliebiges Verzeichnis setzen – hier zum Beispiel „C:\Users\vader\Documents\SSH-Keys\“, so kann man die Keys auch ohne explizite Pfadangaben anhängen, was dann deutlich kürzer, leichter zu administrieren und somit auch weniger Fehleranfällig ist:
     "C:\Program Files (x86)\PuTTY\pageant.exe" key-1.ppk key-2.ppk key-3.ppk

Weiterführende Literatur