Doch alles halb so wild! Denn mit ein wenig Hyper-V und Powershell geht es dann mit VLANs wieder sehr gemütlich und "Microsoft-Konform"!
Sonntag, 14. Januar 2024
VLANs unter Windows 10 und 11
Doch alles halb so wild! Denn mit ein wenig Hyper-V und Powershell geht es dann mit VLANs wieder sehr gemütlich und "Microsoft-Konform"!
Mittwoch, 20. Dezember 2023
Google-Authenticator auf dem Jumpserver
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrbIXwfBzaEOtlyDTXMyM3Oh7Vgb0qMVohUmq5BYl3TaUEZZJsP8yTHy6iKTme4lmFkPQhX13J3zRwVnP6zQ10z0TJ4SnQhPR7ASSNhq_KFKDmESMiJ5xjZ_DKrF8HQoUg6rdiBhKqx8y1gkvATF2XPpq-mN-n08W_EMUYGY1JMj9RhJqpC7cunkzx22nW/w200-h150/yubikey.png)
aber eben auch nicht das das beste Schloss an der Haustür.
Wie konfiguriere ich also Google Authenticator zum Sprung auf eine Bastion?
Montag, 29. August 2022
Wenn Windows 11 nach dem Update nicht mehr mit dem Drucker reden mag
hmmmh... ich kann doch nicht der erste Mensch mit dem Problem sein?
Nein - Google zeigt, dass ich da ganz und garnicht allein mit bin, dass Drucker unter Windows 11 auf einmal nach dem Update ihre Funktion einstellen:
Es finden sich etliche Foreneinträge mit den interessantesten Tips und Lösungen, die man lieber gleich sein lässt...
Es wird wieder Zeit, sich selbst einen Kopf zu machen:
Ein zuletzt funktionierender Lösungsansatz, den ich so an vier verschiedenen Systemen mit Windows 10 und Windows 11 - mit dem gleichen Problem - einmal überprüft habe.
Donnerstag, 19. Mai 2022
Windows 10 auf Windows 11-update im Schnelldurchlauf
Der Rechner quengelt:
Ein Programm möchte jetzt Windows 11 -
Windows 11 quengelt, es will sich hier nicht installieren....
Boah - Keine Zeit für Diskussionen...!
Windows-Update von 10 nach 11 im Durchflug.
Mittwoch, 18. Mai 2022
Wenn der TOTP-Token unter Windows10 nicht mag......oder auch: Wie stelle ich meine Zeit ein?
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjoayn_AKwL86C2bXsRul76n4wxqjiHsNgCcQjW3gA8YjN7Mx8e-UvPPo8QOCBvFNOikTSsp_8SB1H_q2os6b6KHW2khuS8KOlNHCzdjaliU9pZsannvuhk9RpA3YBYKZcbhGH-uZxMrgpXvuGYQTI9XC1RQufHJN9YspT-CVPruG-8i-ciVSeRnSb_w/s320/2022-05-18-ntp-uhr.png)
Auch die Neueingabe bzw. das Generieren eines neuen Tokens klappt dann nicht.
Das Problem ist sehr simpel: Die Zeit zwischen dem lokalen Gerät - welches den Token berechnet - und dem entfernten Server sind nicht synchron.
Bei einem PC mit Windows 10 kann es jedoch schon recht schnell umständlich werden, "mal eben" die lokale Uhrzeit auf den richtigen Stand zu bringen...
Und wie geht das nun?
Montag, 14. März 2022
Wir helfen gern auch mal schnell, unkompliziert und kostenlos -
Was sie tun können.
dafür wollen wir keinen schnöden Mammon!
Wir freuen uns über eine simple Postkarte von Ihnen -
und/oder wenn Sie vielleicht einen kleinen Betrag an die Einrichtung "Raum 58" spenden, bei der Sie uns vielleicht im Verwendungszweck mit "Spende durch die BITFOX an RAUM 58" erwähnen
Die Kontaktdaten sind wie folgt:
Raum 58 - Obdachlosen-Schlaftstelle für Jugendliche
Bank im Bistum Essen
IBAN DE62 3606 0295 0096 8000 70
BIC GENODED1BBE
https://www.raum-58.de/spenden/
Warum tun wir das?
Wir sind der Meinung, das insbesondere "durch das Raster gefallene"
Jugendliche und junge Erwachsene im Alter zwischen 18-21 Jahren
tatkräftige Hilfe benötigen, die nicht gedeckt ist.
Ein klassische Beispiel ist, wenn die grade "volljährigen" Kids von den
Eltern aus Differenzen heraus "vor die Tür gesetzt" werden.
Wo kann man nun schlafen? Wie behält man nun den Ausbildungsjob, die erste Arbeitsstelle - oder den Studienplatz? Gibt es Anspruch auf Überbrückungsleistungen, Unterhalt/BAFöG, etc.
pp.?
Ausgerechnet an dieser Stelle greift auf Grund der Volljährigkeit die staatliche Jugendhilfe in Deutschland eben nicht mehr!
Wir Danken für Ihre Spende.
Samstag, 15. Januar 2022
Erreichbarkeitschaos und Homeoffice:
Wenn man zu wenige Ohren für zu viele Geräte hat.
Es klingelt und bimmelt an gefühlt 20 Geräten mit 30 Kopfhörern und 40 Mikrofonen für 50 Telefonnummern, an die man überall sein Ohr steckt und für die Arbeit, privat und von Callcentern angerufen werden kann...
Sicherlich -
Ein arabisches Sprichwort sagt, Allah habe uns zwei Ohren und einen Mund gegeben, damit wir besser zuhören als zu reden -
aber auch zwei Ohren sind manchmal einfach echt nicht genug.
Geht das alles nicht etwas einfacher und zentralisierter?
Kann man seine Festnetz-Telefonate auf seinen PC schicken?
Und kann ich mich gleichzeitig noch um Skype-Telefonate (...) kümmern?
Für eine ausgefuchste Lösung braucht es eine Fritz!Box, ein wenig OpenSource-Software und ggf. ein Sennheiser EPOS SDW66 DECT Headset-Package...
Aber fangen wir von vorne an.. :-)
Montag, 13. September 2021
gpsd - ja welcher USB-Stick war es denn?
Man hat mich zum letzten Post zum Thema GPS gefragt. welcher USB-Stick das genau gewesen wäre.
dmesg sagt hier folgendes:
Bei eBay findet man ein Gerät was genau so aussieht:
"VK172 G-MOUSE USB GPS/GLONASS USB GPS Receiver for Windows 10/8/7/VISTA/XP (L49)"
Kostenpunkt: 30 Euro.
2D plane: 3.5m [average], has DGPS auxiliary.
Aber ich denke auch die VK-162, welche grade für ca. 20 Euro bei eBay zu erhalten ist, dürfte genau so gut funktionieren.
Montag, 23. August 2021
gpsd und CentOS7
Irgendwie flog nach dem Umzug hier ein kleiner USB-Stick mit der Aufschrift "U-blox7 G-7020" von "U-blox" auf dem Schreibtisch herum. Na was könnte das sein..?
Na komm - dann mache ich "mal eben" wieder Zeit im lokalen Heimnetz. Mal eben die Phux-Ärmel hochkrempeln und den alten Artikel von mir rausgesucht...
https://blog.bitfox.com/2015/06/hands-on-wir-bauen-uns-unter-centos.html
Los gehts.. bestimmt dauert das nur zwei Minuten...?!
Freitag, 9. April 2021
Linux-Quiz:
Böse Fallen mit find
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCKb65ZdoJUNxjcCIvykcdltP37fimskuStl8ZKVKA2VVcYOyiMq12fWh3e8o52opWK3rT3mkWzHiFQvbZ95dEiING5Mh-1YrVuEH9bL4qHEdK1awgbdul82aIGBkWd3r4vXMx5ipxe9Wp/w200-h161/2020-08-07_bash.png)
Einen "bösen lehrreichen Klassiker" hätte ich aber vielleicht noch.
Was ist richtig und warum? :-)
Nicht googlen - und bitte NICHT EINFACH AUSPROBIEREN -
das könnte ggf. schief gehen und die Daten sind weg.... :-)
find /somewhere/ -type f -name foo -exec rm -f {} \; 2>&1 >/dev/null find /somewhere/ -type f -name foo -exec rm -f {} + &>/dev/null find /somewhere/ -delete -name foo -type f &>/dev/null
Montag, 29. März 2021
Windows 10 - Websuche im Startmenü deaktivieren
![Windows-Suchbegriff Windows-Suchbergriff](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJBlNZp9Li4J9jOejUVstRNRRQ1sh0zozOYNJsQVi2FwZ_Uf7CyGZTTyGqsA3kJJZpYM1ODuYnR-vJOC_nCaD3Dpss2s04ttute4T-nB7Vu_6oyDe3CBx8H8t4ZkRhxlfjMHqTdlVH4kIi/w142-h200/2021-03-11_windows_search_vorher.png)
Und auch eher selten möchte ich einen alternativen Vorschlag für etwas vergleichbares aus dem Internet: Dann würde ich den Webbrowser für eine Suchmaschine öffnen.
Samstag, 27. März 2021
Linux-Quiz:
Datenkanäle auf der Bash-Shell
Auf der Arbeit nervte ein Cronjob und löste immer wieder Fehler-Mails aus. "Kein Ding."
crontab -e ... "Alles klar, da fehlt was."
Am nächsten Tag: Wieder eMails.
crontab -e ... Hmh... "Wieso...?!" ...und eine Nacht überlegen...
Autsch! Gemein! KLAR! DER ist guuuuuut! :-)
crontab -e ...."Jetzt aber!"
Ruhe.
Wer also einem Linux-Admin einmal eine wirklich gemeine Alltagsfrage stellen möchte, für den habe ich da was:
Was davon ist richtig - und vor allem: Warum?find /does/not/exist -name foo -exec bar {}\; -print 2>&1 >/dev/null find /does/not/exist -name foo -exec bar {}\; >/dev/null 2>&1 find /does/not/exist -name foo -exec bar {}\; -print &>/dev/null
Nicht googeln - nicht ausprobieren - versucht's mal aus dem Stehgreif zu beantworten. :-)
Samstag, 27. Februar 2021
Windows und die "erleichterte Bedienung" der Maus.
Die Maus hob jedes Fenster beim herüberstreichen in den aktiven Focus und alles an Fenstern "klebte" förmlich an der Maus.
Der Besitzer hatte wohl unter "Systemsteuerung\Erleichterte Bedienung\Center für erleichterte Bedienung\Verwenden der Maus erleichtern" den Haken "Ein Fenster durch Zeigen mit der Maus aktivieren" gefunden -
und zusätzlich noch auf Grund einer "Profi-Empfehlung" ein "exklusives" Konfigurationstool benutzt, das man lieber gleich hätte in das NULL-Device Schieb-en können...
Dieser MouseOver-Effekt ("Focus Follows Mouse") bzw. Fenster allein durch das Überfahren mit dem Mauszeiger zu aktivieren kann sicherlich für Menschen mit Behinderungen in der Hand-Motorik bzw. der Hand-Augen-Koordination eine erleichterte Bedienung sein ---
Wenn ich jedoch als "Tekkie" nicht einmal mehr von links nach rechts eine Datei ziehen kann, ohne dass mir alle dazwischen liegenden Fenster hin und her switchen und ich nach loslassen meiner Maustaste mein altes "Quell"-Fenster verzweifelt suchen muss, wird es einfach nervig und das Gerät ist nicht mehr sinnvoll bedienbar: So kann man einfach nicht helfen.
Also mache ich das ganze "mal eben" wieder rückgängig... "Haken raus und gut, ne?"
....aber klaaaaar doch....! :-)
Natürlich war es nicht so einfach... denn das "ProfiTool" hatte volle Arbeit geleistet und irgendwo in der Registry Einstellungen gesetzt, die nicht mehr zu retten waren.
Mit ziemlichem "Gefummel" konnte ich das Problem mit "Regedit" in der Registry ungefähr in "Computer\HKEY_CURRENT_USER\Control Panel\Desktop" einkreisen.
Also eine Text-Datei als "NoMouseOver.reg" mit folgendem Textinhalt erstellen und doppelt anklicken:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Control Panel\Desktop] "CaretWidth"=dword:00000001 "ClickLockTime"=dword:000004b0 "MouseWheelRouting"=dword:00000002 "UserPreferencesMask"=hex:9e,1e,07,80,12,00,00,00 "Pattern"=- "AutoColorization"=- "ImageColor"=- "WaitToKillAppTimeout"=- "LockScreenAutoLockActive"=- "EnablePerProcessSystemDPI"=- "LogPixels"=- "ScreenSaverIsSecure"=- "ScreenSaveTimeOut"=-
Wenn das nicht klappen sollte, erinnere man sich daran, dass die Schlüssel im Bereich "HKEY_CURRENT_USER" stehen: Es handelt sich dabei um Einstellungen des Users.
Man erstellt im Schlimstfalle also einfach an dem PC ein neues Dummy-Benutzerkonto, logged sich dort ein und exportiert dort einen "frischen" Schlüsselbaum aus der Registry des dann angemeldeten Benutzer.
Das mag eine Holzhammermethode sein, aber wird aber im Zweifelsfalle ganz sicherlich funktionieren.
P.S.: Für die Benutzer mit englischem Windows:
Die Einstellungen für das MouseOver befinden sich unter "ControlPanel\Ease of Access\Ease of Access Center\Make the Mouse easier to Use" und der Haken heisst hier "Activate a window by hovering over it with the mouse"
Edit: Nach einem kurzen Testlauf konnte ich feststellen, dass es reicht den Wert
mit Regedit wie angegeben zu ändern.[HKEY_CURRENT_USER\Control Panel\Desktop] "UserPreferencesMask"=hex:9e,1e,07,80,12,00,00,00
Montag, 22. Februar 2021
DDNS: DHCPd und die Journal-Files (.jnl)
Nach einiger Zeit sieht das nicht nur ziemlich unschön aus, man kann auch aus den Zonefiles nicht mehr die "aktuelle Realität" ablesen -
und die Journal-Files sind für das menschliche Auge nicht ohne weiteres sprechend.
Bereits im März 2019 hatte ich mich mal wieder damit befasst und hatte ein paar Zeilen geschrieben.
einzufrieren bzw. freizugeben. Das klappt jedoch auch nicht immer so ganz und persönlich fand ich das immer unschön, weil es nicht das "Problem" an der Wurzel packt - dem Synchronisieren der Files.rndc freeze rndc thaw
Eher zufällig bin ich heute durch das Manual gestolpert und habe da eine definitiv schönere Lösung gefunden:
Das ganze als Cronjob auf 30 Minuten - und schon ist das Arbeiten wieder etwas einfacher.rndc sync -clean
Man lernt nicht aus...! Schön! :-)*/30 * * * * rndc sync -clean
Sonntag, 21. Februar 2021
DNS und Root-Adressen updaten
Sonntags um 03:00 Uhr - das eigene Monitoring klingelt:
Internet gibt es nur noch so halb und alles alles an Maschinerie benimmt sich sehr sehr eigenartig.
5 Minuten später ist das Problem erkannt:
Der hauseigene mini-DNSrelay hat versagt und ich schwenke erst einmal voll um auf die Fritzbox bzw. Telekom. Doch was war passiert?
Aus unerklärlichen Gründen hatte sich beim Update der DNS-Rootserer-Einträge die /var/named/named.ca "aufgelöst" und somit konnten keine DNS-Rootserver mehr gefunden werden; was natürlich die entsprechenden Folgen hatte.
Hrm....
Also - ein neues Update-Script für die Ermittlung der DNS-Rootserver....! :-)
Update: 2022-01-16 Typo in der Dateiausleitung nach /dev/null in der wget-zeile.#!/bin/bash # # update-dns-roots # Script zum Aktualisieren der DNS-Root-Adressen # # 2021-02-21 Oliver Lenz # # contab -> # 0 10 1 * * /root/bin/update-dns-roots.bash >/dev/null 2>&1 || echo "Probleme in update-dns-roots.bash" # PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin destination="69.58.179.79" # ftp.rs.internic.net dt=$(date "+%Y%m%d%H%M%S") filter="FILTER:$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" errorlevel=255 echo "Setup Firewall for ftp-Communication with ${destination}" modprobe ip_conntrack modprobe ip_conntrack_ftp iptables -A OUTPUT -p tcp --sport 1024:65535 -d ${destination} --dport 20 -m state --state ESTABLISHED -j ACCEPT -m comment --comment "${filter}" iptables -A OUTPUT -p tcp -m tcp --sport 1024:65535 -d ${destination} --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT -m comment --comment "${filter}" iptables -A OUTPUT -p tcp --sport 1024:65535 -d ${destination} --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "${filter}" iptables -A INPUT -p tcp -s ${destination} --sport 20 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "${filter}" iptables -A INPUT -p tcp -m tcp -m multiport -s ${destination} --sports 21,1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT -m comment --comment "${filter}" echo "Getting ca-File from ${destination}" wget -q --timeout=4 --tries=3 --waitretry=2 --user=ftp --password=ftp ftp://69.58.179.79/domain/db.cache -O /var/named/named.ca.tmp &>/dev/null if [ "$?" == "0" ]; then if cmp -s /var/named/named.ca /var/named/named.ca.tmp; then echo "No changes." rm -f /var/named/named.ca.tmp else cp -f /var/named/named.ca /var/named/named.ca.${dt} mv -f /var/named/named.ca.tmp /var/named/named.ca /usr/bin/systemctl restart named-chroot.service echo "Update ca-file successfully." fi errorlevel=0 else echo "Problems getting new ca-file via /root/bin/update-dns-roots.bash" errorlevel=1 fi echo "Remove Firewall-Rules for ftp-Communication with ${destination}." while read rule; do echo "${rule}" | xargs iptables done< <( iptables-save | grep " --comment \"${filter}\"" | sed "s/-A /-D /g" ) exit ${errorlevel}
Dienstag, 2. Februar 2021
Windows 10 und seine Updates:
Wenn hinter einem Proxy der Windows-Client unerklärlich "stirbt"
Der Taskmanager zeigte an, dass "Windows Update" 90% der CPU-Ressourcen verbrauchen würde -
und ein Blick auf den Netzwerkadapter zeigte ebenfalls, dass da was "im Busch" war:
Der Client versuchte ohne Rücksicht auf Verluste Netzwerkverbindungen zur Außenwelt aufzubauen.
Virenbefall? Hier hätte der Client zumindest ein wenig Probleme durch den authentifizierenden Proxy.
Also schaute ich in das Log des Proxies, wohin die Verbindungen gehen sollten und das Problem wurde sichtbar: Windows Update kann nicht mit authentifizierenden Proxies arbeiten!
Der Client versuchte gar tausende Anfragen nach Microsoft aufzubauen, die vom Proxy gedropped wurden; entsprechend wurden die Ressourcen des Gerätes verschwendet und der Client lief so im wahrsten Sinne des Wortes "heiß".
Und nun?
Pest oder Cholera?
Schalte ich den Update-Service des Clients ab,
oder schalte ich die Authentifizierung des Proxies ab?
Oder installiere ich nun extra einen WSUS-Server für das Update von einigen Windows-Clients....?
Das kann alles nicht die Lösung sein.
Mit einem gehörigen Knirschen habe ich folgende Zeilen in die Squid-Konfiguration eingetragen:
acl windowsupdates dstdom_regex -i (.*\.|)microsoft.com
http_access allow windowsupdates
Jetzt kann ein jeder hinaus auf ein Ziel bei Microsoft, ohne eine Authentifizierung.
......aber der Client läuft nun wieder schnell.... *hust*
Donnerstag, 28. Januar 2021
rpm-Pakete und Versionen
Einfache Benutzer können Root-Zugriff erlangen, sogar wenn diese Benutzer nicht einmal in der /etc/sudoers erwähnt sind. Auch Accounts ohne Shell bzw. lediglich hinterlegtem Kontext sind somit gefährlich.
"Also - mal eben schauen", wie "neu" das sudo auf der Maschine ist.
rpm -qi $( rpm -qf "/bin/sudo" )
Aber geht's noch schöner? Klar - etwas CommandLine-Zauber... :-)
f="/bin/sudo" ; rpm -qf "${f}" --qf '%{name} %{version}-%{release}%{arch} from '; env TZ=Europe/Berlin date -d "@$( rpm -qf "${f}" --qf '%{buildtime}' )" "+%Y-%m-%d %H:%M:%S %Z"
Nachtrag: %{buldtime:date} Zeigt bereits einen Datumsstring, welcher jedoch nicht wirklich ansehnlich ist.
Sonntag, 15. November 2020
BASH und JSON-Strings
Ein Erfahrungsbericht...
Das Problem war eigentlich, nur "mal eben" einen JSON-String ohne zusätzliche Tools "menschlich lesbar" anzuzeigen.
"Da muss doch schon mal wer was ordentliches gemacht haben?"
Nach ca. 2 Stunden suchen hatte ich jedoch immer noch nichts wirklich funktionierendes gefunden, was einen JSON-String "ordentlich" menschlich visualisiert -
oder auch ggf. aus einem JSON-String einen Variablen-Bereich einfach wieder heraus gibt.
Na dann... bau ich da mal halt selbst -
Auf geht's :-)
#!/bin/bash # # Funktionen zum Umgang mit JSON-Strings. # # 2020-11-13 Oliver Lenz Initial # function parse_jsonvar_raw() { # Parse einen JSON-String in menschlich lesbare form. # # $1 JSON-String # $2 Tabulatorenweite (default:4) (optional) # $3 Filtere die Ausgabe anhand eines Variablennamens (optional), z.B. "value.name" # local buchstabe="" letzter_buchstabe="" zeile="" local in_gaensefuesschen=0 umbruch="" local variablenname="" variablenstack=() local ebene=0 anschlag=0 local tabbreite=4 filter="" zurueck=0 if [ $# -gt 1 ]; then [[ "${2}" =~ (^[0-9]*$) ]] && tabbreite=$2 || filter=".${2}" fi [ $# -gt 2 ] && filter=".${3}" function vartest() { local voller_variablenname="" i=0 s [ -n "${variablenname}" ] && variablennamenstack[${ebene}]="${variablenname}" voller_variablenname="" for((i=0;i<=${ebene};i++)){ s="${variablennamenstack[$i]#\"}" s="${s%\"}" voller_variablenname="${voller_variablenname}.${s}" } # printf "%-60s" "${voller_variablenname}" if [[ -z "${filter}" || "${filter}" == "${voller_variablenname}" || "${voller_variablenname:0:$((${#filter}+1))}" == "${filter}." ]]; then [ "${filter}" == "${voller_variablenname}" ] && zurueck=$ebene # korrektur bei Filter (( i=$anschlag-$zurueck*tabbreite )) [ ${i} -gt 0 ] && printf "%${i}s" " " [ -n "${zeile}" ] && echo "${zeile}" fi variablenname="" zeile="" } while read -n1 buchstabe; do if [ "${in_gaensefuesschen}" == "1" ]; then [ "${letzter_buchstabe}" != "\\" ] && [ "${buchstabe}" == "\"" ] && in_gaensefuesschen="0" elif [ "${letzter_buchstabe}" != "\\" ] && [ "${buchstabe}" == "\"" ]; then in_gaensefuesschen="1" else case "${buchstabe}" in '{' | '[' | '(' | ',' ) umbruch="nach_buchstaben";; '}' | ']' | ')' ) umbruch="vor_buchstaben";; ':') variablenname="${zeile}";; ' ') buchstabe="";; esac fi [ "${umbruch}" == "vor_buchstaben" ] && vartest && (( ebene-- )) zeile="${zeile}${buchstabe}" [ "${umbruch}" == "vor_buchstaben" ] && (( anschlag=ebene*tabbreite )) if [ "${umbruch}" == "nach_buchstaben" ]; then vartest [ "${buchstabe}" != "," ] && (( ebene++ )) (( anschlag=ebene*tabbreite )) fi letzer_buchstabe="${buchstabe}" umbruch="" done<<<"${1}" [ -n "${zeile}" ] && vartest } function parse_jsonvar(){ ausgabe="$( parse_jsonvar_raw "${1}" "${2}" "${3}" )" [ -n "${ausgabe}" ] && echo "${ausgabe%,}" } # json_str='value:{"name":"Hello World","myNumArray":{"index0":"Hello","varname":"value","some":"thing"}}' # parse_jsonvar "${json_str}" # parse_jsonvar "${json_str}" 8 # parse_jsonvar "${json_str}" 4 "value" # parse_jsonvar "${json_str}" 4 "value.name" # parse_jsonvar "${json_str}" 4 "value.myNumArray"
Geht doch... :-)
Donnerstag, 12. November 2020
Arrays bzw. Stacks mit der BASH-Shell
Anbei eine Idee, wie man das Problem mit üblichen Funktionen wie
"push" (etwas auf den Stack legen),
"pop" (das letzte Element vom Stack zeigen und löschen),
"delete_from_stack" (ein gezieltes Element vom Stack löschen) und
"print_stack" (gebe einen Stack aus)
lösen kann.
Viel Spaß damit. :-)
Donnerstag, 8. Oktober 2020
BASH und die Zeitzone
Das Remote-System auf dem ich grade eingelogged bin, arbeitet z.B. in UTC.
$ date "+%c"
Wed Oct 7 23:26:47 UTC 2020
Da kann man als Europäer mal gar nichts mit anfangen.
Wie kommt man nun also an die Uhrzeit zu Hause?