Knowledge
Categories:
Aufgrund des Wunsches der Mitglieder, eine lose Sammlung an praktischen Bedienungsdingen für Betriebssysteme und Datenbank, die man selten aber doch immer wieder einmal braucht.
Gedacht ist dies für Menschen, die ihre Systeme selbst administrieren und damit auch wissen was sie tun und die Verantwortung dafür übernehmen können und wollen.
Windows
Windows Defender
Als Virenscanner einrichten, dass so aktuell wie möglich
Signatur Update Intervall
Registry Hive HKEY_LOCAL_MACHINE
Registry Path Software\Policies\Microsoft\Windows Defender\Signature Updates
Value Name SignatureUpdateInterval
Value Type REG_DWORD
Enabled Value 1 1 - 24 Stunden
Disabled Value 0
Bearbeiten und Gruppenrichtlinien Editor /Windowstaste, Gruppenrichtlinie
Computerkonfiguration
Administrative Vorlagen
Windows-Komponenten
Microsoft Defender Antivirus
Aktualisierung der Sicherheitsinformationen
Intervall für die Suche nach Updates der Sicherheitsinformationen
DNS Puffer neu initialisieren
ipconfig /flushdns
Filezugriff
Zugriff von alten Windows-Rechner (XP aber teilweise auch Linux) auf Win7 und höher Freigaben
Auf der Win10 (dorthin wo man den Zugriff möchte) im Systemsteuerung, Windows Programme und Features, Windowsfeatures, Unterstützung für SMB 1.0 suchen und zumindest den SMB 1.0 Server freischalten.
Danach den Rechner neu starten.
laufende Prozesse
netstat -nao
liefert auch die Prozessnumer um damit über den Taskmanager den richtigen Javaprozess killen zu können.
Druckaufträge bleiben hängen.
Passiert komischerweise seit einiger Zeit auf den aktuellen Windows10 usw. Installationen
Ursache, es scheint eine temporäre Datei hängen zu bleiben.
Lösung:
- Spoolerdienst = Druckwarteschlange beenden
- Drucker abschalten
- c:\windows\system32\spool\PRINTERS
alle Dateien entfernen.
Es müssen sich alle Dateien lösche lassen.
Wenn nicht läuft vermutlich der printfilterpipelinesve.exe noch. Dieses über den Taskmanager beenden. - Drucker wieder einschalten
- Druckwarteschlange wieder starten
- Wenn keine Druckjobs anstehen muss dieses Verzeichnis leer sein.
Freigaben
net share liefert alle Freigaben dieses Rechners
sieht man auch in der Computerverwaltung, System, freigegebene Ordner, Freigaben und kann da die Freigaben auch löschen
Kein Zugriff auf Freigaben möglich
Der Status des Netzwerkes hat sich wieder mal bei einem Update auf öffentliches Netzwerk geändert.
Man geht in die Einstellungen und wechselt dort zu “Netzwerk und Internet”.
Unter Status klickt ihr auf “Verbindungseigenschaften ändern”.
Anschließend könnt ihr durch die Aktivierung des jeweiligen Schalters von “Öffentlich” in “Privat” wechseln oder umgekehrt
oft ist das aber nicht genau so, dann kann man
- Status, weiter auf Ethernet
- da findet man dann das verbunde Netzwerk und da dann auf das Symbol klicken
- und das Netzwerkprofil auf Privat ändern
Bei Netzwerkstatus (im Dialog Status) muss dann Privat stehen
Dann geht auch der RDP Zugriff wieder
Schnellzugriff Einstellungen
Mit der Tastenkombination “Windows + I” die Windows 10-Einstellungen und wechselt dort zu “Netzwerk und Internet”.
Aktuelles Datum und aktuelle Uhrzeit in den Dateinamen einsetzen
Manchmal ist es sinnvoll, in einen Dateinamen auch das Datum der Erstellung mit hinein zu nehmen. Damit kann man dann die verschiedenen Versionen der Datei sehr einfach und schnell unterscheiden.
Es gibt im Kommandozeilenmodus von Windows die Variablen
%DATE% = Datum in der FormTT.MM.JJJJ
und
%TIME% = Zeit In der Form HH:MM:SS
Darüber hinaus kann man auch noch das Format und die Reihenfolge der einzelnen Teile des Datums und der Uhrzeit bestimmen:
%DATE:~6,4% = Jahreszahl vierstellig
%DATE:~3,2% = Monatszahl zweistellig
%DATE:~0,2% = Tageszahl zweistellig
%TIME:~0,2%= Stundenzahl zweistellig
%TIME:~3,2% = Minutenzahl zweistellig
%TIME:~6,2% = Sekundenzahl zweistellig
Hier ist ein Beispiel:
ren Test.txt Test"%DATE:~6,4%.%DATE:~3,2%.%DATE:~0,2%-%TIME:~0,2%.%TIME:~3,2%-%TIME:~6,2%".txt
ergibt
Test2011.12.05-21.13-37.txt
Man kann mit diesen Variablen auch Ordner erstellen, kopieren oder oder umbenennen.
Beispiele:
Einen Ordner erstellen md “%date%-%time:~0,2%-%time:~3,2%-%time:~6,2%"
xcopy ordner “%date%-%time:~0,2%.%time:~3,2%-%time:~6,2%"
USB Stick auf Read Only setzen
Method 1. Manually Remove Read-only with DiskPart CMD
Click on your "Start Menu", type cmd in the search bar, then hit "Enter".
Type command diskpart and hit "Enter".
Type list disk and hit "Enter". (
Type the command select disk 0 and hit "Enter".
Type attributes disk clear readonly and hit "Enter".
Zum Setzen: attributes disk set readonly eingeben.
Speichertest integriert
mdsched.exe
Zuordnung MAC Adressen / IP Adressen
arp -a liefert alle seit, … aufgerufenen IP Adressen und deren MAC Adresse dazu
BatchCommandos Übersicht
Autostart abschalten
Autostart auf Win10 abschalten mit Autoruns aus Sysinternals Download von
Als Administrator ausführen
Vorsichtig abhaken der nicht gewünschten Funktionen
Windows Rebooten mit Sprung ins Bios
Ctrl+left+Shift+Windows und dann Reboot mit der Maus
Geht beim Neustart ins Bootmenü
Drucken über Remotedesktop
- Auch Thinstuff druckt normal über den RDP Printer
- geht normalerweise problemlos
- Zum Testen als erstes auf den umgeleiteten Microsoft PDF Drucker drucken
Dieser legt die Dateien im RDP Aufrufverzeichnis ab
Geht auch über mehrere Ebenen dann auf die Wurzel der RDP Verbindung - mit Konica Minolta
- Es muss der SMB Client & Server 1.0 eingerichtet sein
- Es sollten die aktuellsten Treiber von Konica Minolta AT!!! verwendet werden
- Ev. den Drucker LOKAL freigeben
- Win10 / Win11
- getestet auf Win10 mit Thinstuff und lokaler Rechner Win11
Schnelldump der KIESELSTEIN Datenbank
ohne Bilder, Versandaufträge usw.. Also klein und schnell erstellt
“?:\Program Files\PostgreSQL\14\bin\pg_dump.exe” -Fc -h localhost -U postgres –exclude-table-data=public.ww_artikelkommentarspr –exclude-table-data=public.rekla_reklamationbild –exclude-table-data=public.lp_entitylog –exclude-table-data=public.lp_installer –exclude-table-data=public.lp_usercount –exclude-table-data=public.lp_versandauftrag –exclude-table-data=public.lp_versandanhang –verbose -f KIESELSTEIN_SMALL.backup KIESELSTEIN
Linux
allgemein
Zweck | Befehl | Wirkung / Beschreibung |
---|---|---|
File finden | find -iname *hba*.* | findet pg_hba.conf |
Owner ändern | chown –R root report | Ändert ab report und tiefer (-R) den Owner auf root. Danach können z.B. die Reports über den WinScp einkopiert werden |
Direkt Rechte ändern | chmod -R 777 verzeichnis | Bedeutet im verzeichnis dürfen alle alles |
User einer Gruppe hinzufügen | usermod -aG Gruppe User | |
als root arbeiten | su root | und Passwort |
als vollwertiger root arbeiten | su - root | nur damit verhält das OS sich wie wenn man sich als root angemeldet hätte |
Service ein / ausschalten | chkconfig jboss on oder off | Beim Start wird der Service ausgeführt oder eben nicht |
Liste der installierten Services | systemctl list-unit-files | |
Liste filtern | grep xxxx | listet nur Zeilen die xxxx enthalten |
Editor | vi filename | Mühsam zu bedienender standard Linux Editor vi Commandos mit : einleiten, also :q! -> raus ohne änderungen :wq -> raus und schreiben |
Editor | nano filename | ausreichend komfortabler Editor. Ist auf den meisten Linuxen installiert |
Dienste starten / Stoppen | systemctl start/stop/restart Dienstname | übliche Dienstnamen: kieselstein postgresql jeweils mit TAB vervollständigen |
Neues Verzeichnis | mkdir | erzeuge neues Verzeichnis |
Directory Listing | ls -al | Directory Listing mit allen Infos |
Verzeichnis leeren | rm * -R | -> im Ubuntu leere das gesamte verzeichnis |
Verzeichnis löschen | rmdir Verzeichnis | löscht ein leeres Verzeichnis |
Verzeichnis umbenennen | mv old new | old auf new umbenennen |
ausführliches Directory Listing | ls -alh | List Directory alle Attribute Langformat Human Readable |
Freier Plattenplatz | df -hl | zeigt freien Speicherplatz des lokalen Dateisystems |
Welche IP hört auf welchem Port | netstat -anlp | listet alle laufenden IP-Listener und die zugehörigen Programme die da horchen |
Prozesse auflisten | ps -axf | listet alle Prozesse und deren Aufrufparameter z.B. ps -axf | grep -i test liefert den Prozessstatus mit den Aufrufparametern (-i = ignore Case beim Wort danach) |
Prozess beenden | kill -9 PID | Beendet den Prozess (PID) in jedem Falle |
Aufgabenplanung | crontab -e | bei Ubuntu: /etc/crontab (Ist vi, d.h. mit :wq beenden |
File laufend anzeigen | tail Filename -f | zeigt andauernd die aktualisierten Inhalte des (Log-) Files an |
Umgebungsvariablen auslesen | env | |
Umgebungsvariablen auslesen | env | grep JAVA_HOME | Zeigt den Wert (Pfad) von Java_Home |
pg_hba.conf
liegt je nach Betriebssystem / Linux wo anders
- Ubunut etc/p…..
- var/lib/p…
- usr/lib/p…
Installation der MS-Fonts (Arial usw.)
apt-get install ttf-mscorefonts-installer
Anmerkung: Die EULA muss bestätigt werden. Damit man zum OK kommt, mit die TAB-taste drücken und dann Enter bzw. Space
sudo fc-cache -fv
mount
- a.) das Verzeichnis (/mnt/datastore) muss es geben sonst mit mkdir anlegen
- b.) das Filesystem muss es auch geben, muss am Linux verfügbar sein
- c.) wenn im PW !, dann mit \ escapen
- d.) mount -t nfs 192.168.0.40:/opt/kieselstein/postgres_datastore_xxxx/ /mnt/datastore
nfs = Filesystem, der abschließende Slash ist wichtig
WICHTIG: Es muss dies auch freigegeben werden. Dazu im WebMin(Port 10000) unter Netzwerk NFS Exporte eintragen von welchem Rechner zugegriffen wird
Debian
ip adress für ifconfig
apt install htop
shutdown -> systemctl poweroff
Ubuntu
Dateien mit Doppelklick starten
Rechte Maus auf die Datei, unten Eigenschaften, Reiter öffnen mit
nun unter weitere Anwendungen, Anwendung starten auswählen
useradd … neue User anlegen
angelegte User findet man im File /etc/passwd passwd BENUTZERNAME und dann das neue Passwort eingeben
ssh Zugriff nicht eingerichtet (ubuntu 14.04 LTS)
apt-get install openssh-server …. herunterladen
danach starten … /etc/init.d/ssh restart
Netzwerkadressen
ändern über Console (wenn installiert)
- nmtui (ist eine Terminal gui für Netzwerkeinstellungen)
- yum install nmtui
Grafisch
IP-Adresse kann man im Ubuntu über die Einstellungen ändern
Suse
Java liegt gegenüber allen anderen Linux Distributionen unter
CentOS (RedHat)
Datum stellen:
date MMDDhhmm[[CC]YY][.ss]
date MMTThhmmJJ
hwclock -w … schreibt die gesetzte Uhrzeit in die Hardwareclock
yum install htop
Small-Backup der Kieselstein
pg_dump -Fc -h localhost -U postgres –exclude-table-data=public.ww_artikelkommentarspr –exclude-table-data=public.rekla_reklamationbild –exclude-table-data=public.lp_entitylog –exclude-table-data=public.lp_installer –exclude-table-data=public.lp_usercount –exclude-table-data=public.lp_versandauftrag –exclude-table-data=public.lp_versandanhang –verbose -f KIESELSTEIN_SMALL.backup KIESELSTEIN
Backup der Kieselstein
pg_dump -Fc -h localhost -U postgres -f ./KIESELSTEIN.backup KIESELSTEIN
TCPDUMP
TCPDUMP, also wie laufen denn so die Pakete sehr tief unten sudo tcpdump ’tcp port 8280’ -A -l
MAC
Wenn man im Finder verschiedene Devices usw. nicht findet, dann am Desktop auf Gehe Zu (Computer) und dann dieses Device links reinziehen. Ab dem Zeitpunkt ist es da.
Ab OS X Version 8? steht der Launcher zum Starten der Dienste zur Verfügung:
launchctkl start/stop dienst
mit list sieht man alle Dienste und die die eine PID haben laufen
start durch: launchctl load Dienst / Pfad auf plist
stop durch: launchctl unload Dienst / Pfad auf plist
find / -name xxx*.* findet alle Dateien ab Root
Rechtsklick mit der Maus bringt Einsetzen (aus der zwischenablage)
Einrichtung
- Zugriff auf die plist: Im Finder zeigen, Paket Inhalt zeigen, Content, info.plist
- Zugriff auf die Info.plist Rechts auf Icon, Paketinhalt zeigen, Content, info.plist, rechts-Klick, öffnen mit Texteditor
SQL, PostgresQL
Wechsel von pgAdmin 7 auf 8
Es verschiebt sich der Pfad der Runtime. Damit geht gegebenenfalls die nachträglich manuell ergänzte Pfad-Definition nicht mehr Windows, System, erweiterte Systemeinstellungen, Umgebungsvariablen
Restore
pg_restore -c -h localhost -U postgres -d KIESELSTEIN KIESELSTEIN.backup » restore.log Vorher die KIESELSTEIN z.B. über pgadmin oder mit createDB aus ..\database anlegen
noch einsortieren
Postgres reload im laufenden Betrieb, z.B. wenn IP Adressen nicht freigeschaltet sind /etc/postgresql/14/main/pg_hba.conf su postgres /usr/lib/postgresql/14/bin/pg_ctl -D /var/lib/postgresql/14/main reload
aufruf von psql.exe a.) es reicht aus dem pgadmin das runtime Verzeichnis zu kopieren b.) bei der Angabe des Hostnamens entscheidet das führende Slash ob Socket Communication (was im Linux nicht unterstützt wird) wenn –host OHNE / angegeben wird, wird eine TCPIP Kommunikation angenommen, die dann nur mehr über das pg_hba.conf gesteuert wird c.) im Debian und Postgres 14 ist die pg_hba.conf im etc
Postgres Password Reset des Users Postgres Siehe auch
- C:\Program Files\PostgreSQL\12\data\pg_hba.conf
- sichern der pg_hba.conf
- Ändern aller Connection von md5 auf trust
- Restart des Postgres Dienstes über die Dienste oder mit pg_ctl -D “C:\Program Files\PostgreSQL\12\data” restart The “C:\Program Files\PostgreSQL\12\data” is the data directory.
- Connect to PostgreSQL database server using any tool such as psql or pgAdmin: psql -U postgres PostgreSQL will not require a password to login.
- Setzen des neuen Passwords für den User Postgres postgres=# ALTER USER postgres WITH PASSWORD ’new_password';
- Wiederherstellen der original pg_hba.conf
- Restart des Postgres Dienstes
Rest des PGAdmin Master-Passwords Siehe auch
- Beim Anmelde Dialog, bei dem das Master Password abgefragt wird, einfach Reset Master Password anklicken.
Damit werden alle, in einer lokalen SQLite DB abgelegten Passwörter gelöscht.
Datentypen
numeric -> BigDecimal -> Sum liefert immer numeric und damit BigDecimal
Uhrzeit rechnen
Wenn man Uhrzeit1 von Uhrzeit2 abziehen will, und beides sind Timestamp without timezone, dann select extract(epoch from danach.t_zeit) from pers_zeitdaten liefert nur Sekunden als numeric, mit denen kann man dann aber einen Sum machen
mehrere Fields mit Trennzeichen zusammenhängen
SELECT string_agg(c_lagerplatz::text, ‘,’) AS Name FROM ww_artikellagerplaetze inner join ww_lagerplatz on ww_lagerplatz.i_id=ww_artikellagerplaetze.lagerplatz_i_id where artikel_i_id=(select i_id from ww_artikel where c_nr=‘ABCD1234’)
suchen
Symbol Meaning LIKE ‘5[%]’ 5% LIKE ‘[_]n’ _n
Null-Werte auf definierten Wert setzen
COALESCE
coalesce geht nur wenn ein Ergebnis kommt, kommt keines, also im PGadmin keine Zeile, dann wirkt dies nicht. Daher immer so aufbauen, dass ein Null-Ergebnis überhaupt theoretisch kommen kann.
Z.B mit left outer join
Zu Datum Tage dazuzählen
date+1 geht nicht immer
Daher besser:
(ww_artikelreservierung.t_liefertermin - interval ‘1’ day * COALESCE(part_kunde.i_lieferdauer,2)) as t_liefertermin verwenden
Es geht auch aus einem Timestamp
select DATE(pers_zeitdaten.t_zeit) || ’ 00:00:00’, * from pers_zeitdaten where i_id = 4003090 select to_char(t_zeit, ‘YYYY-MM-DD 00:00:00’), * from pers_zeitdaten where i_id = 4003090
Mit dem to Char kann noch wesentlich mehr gemacht werden siehe
UND WICHTIG: Will man z.B. zwei Timestamps vergleichen ob sie am gleichen Tag sind, dann einfach
DATE(pzd.t_zeit) = DATE(pers_zeitdaten.t_zeit)
Wochentagsnamen aus einem Timestamp
select to_char(t_datum, ‘Day’), * from pers_betriebskalender
gibt man als Formater nur Dy an, so kommen die Tagesnamen mit den ersten beiden Buchstaben. In der Regel in englisch.
Mit substring(to_char(t_datum, ‘Day’),1,1) != ‘S’ dann das Wochenende herausfiltern
Tabellen zusammenhängen
Union all
die Spaltennamen durch das as müssen alle gleich sein
Anzahl der unterschiedlichen Einträge der Maschinen_I_ID’s zählen
“select count(distinct(MASCHINE_I_ID)) from PERS_MASCHINENZEITDATEN where LOSSOLLARBEITSPLAN_I_ID="+$F{lossollarbeitsplan_i_id}+” “+
Anzahl der unterschiedlichen Artikel
z.B. im Los
select count(distinct artikel_i_id) from fert_lossollmaterial
inner join fert_los on fert_los.i_id=fert_lossollmaterial.los_i_id
inner join ww_artikel on ww_artikel.i_id=fert_lossollmaterial.artikel_i_id
where fert_los.c_nr like ‘24%’
and ww_artikel.artikelart_c_nr = ‘Artikel’;
Anzahl der unterschiedlichen Stücklisten in den Losen verwendet
select count(distinct stueckliste_i_id) from fert_los where fert_los.c_nr like ‘24%’;
Felder in der Datenbank finden
Man hat immer wieder die Herausforderung, dass man in einer Installation vor zig Jahren, Felder übersteuert hat. Und dann will man auch noch wissen, in welcher Tabelle, denn das gesuchte Feld ist.
In diesem Falle wollte der Anwender die Mindesthaltbarkeit, die man wunderbar im Artikel sieht, auf verschiedenen Formularen angedruckt haben. Es gibt aber diese Mindesthaltbarkeit in der Datenbank nicht. Wie also finden.
- Suchen der Übersteuerung des Textes
select * from lp_text where c_text like 'Mindest%' -->> garantiezeit
- Suchen in welchem Datenbankfeld das nun tatsächlich enthalten ist
SELECT table_name, * FROM information_schema.columns where column_name LIKE '%garant%' and table_name like 'ww_%'
Report
Libre Office, Calc
Interessante Funktionen und deren Namen
Funktion | Beschreibung |
---|---|
Abrunden | Rundet immer die angegebenen Stellen ab |
Runden | Rundet mathematisch, vermutlich nicht Bankers Rounding |
Aufrunden | Rundet immer auf |
VRunden | klingt wie Modulo |
suchen | Suchzeichen und Zelle. Wenn nichts gefunden liefert #WERT! |
wennfehler | Zelle die zu lesen ist, steht hier ein Fehler (#WERT!) dann wird die Zahl/Wert.. dahinter ausgegeben Z.B. wenn bei Suchen das Zeichen nicht kommt, dann z.B. 0 (=wennfehler(E2;0)) entweder der Wert aus E2, wenn aber Fehler, dann 0 |
Teil | Substring mit Zelle; Beginn; Länge |
Verketten | Zusammenhängen mehrerer Stringfelder zu einem String. Nutze ich gerne um SQL Strings zu erzeugen |
KI, AI
Die sogenannte künstliche Intelligenz
Der Versuch, Menschen in einen Datensatz zu verwandeln, ist Teil einer Kultur des Todes, die alles, was Leben ausmacht
Spontaneität, fühlendes Erleben, Selbstorganisation und Kreativität,
durch Abstraktion und Berechnung ersetzt.
Ihr Fluchtpunkt ist ein wüstenartiger Planet, auf dem einsam im dunklen Weltall ein blinkender Riesenrechner steht, der anzeigt, wie viel Geld er gerade verdient.
Fabian Scheidler
Der Stoff aus dem wir sind
2.Auflage 2021