Die TTL von 64 wird von Unix Geräten, wie zum Beispiel Android Telefonen verwendet. Wenn Alle Pakete als direkt von einem Windows Gerät stammend wirken sollen wäre der richtige Wert 128.
Rsync ist ein wunderbares Werkzeug für für mich, denn was die Datensicherung angeht gehöre ich leider zu den leuten die zu faul sind oder besser ihre Zeit lieber mit anderen Dingen zubringen. Es Fehlt immer der Passende Zeitpunkt um ein Backup anzulegen und mache es immer erst nach dem Datenverlust. Das Werkzeug rsync gleicht den Inhalt zweier Verzeichnisse, oder einer Externen Quelle und eines Verzeichnisses, ab.
rsync -uvrh ./Quelle/ ./Ziel/
-u überspringt Dateien die im Ziel neuer sind als in der Quelle -v erhöht die Geschwätzigkeit, rsync gibt mehr Meldungen aus -r (recursive) nimmt Unterverzeichnisse mit -h (human-readable) die Ausgabe soll für Menschen lesbar formatiert werden
iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 10.2.3.4:1235
iptables -t nat -A POSTROUTING -j MASQUERADE
Leite den auf Port 1234 eingehenden Traffic auf einen Dienst um der auf dem Port 1235 auf der IP-Addresse 10.2.3.4 erreichbar ist. Dies kann notwendig sein wenn ein System den Port 1235 oder die IP-Adresse 10.2.3.4 nicht erreichen kann.
Erläuterung
iptables -t nat -A PREROUTING -p tcp –dport 1234 -j DNAT –to-destination 10.2.3.4:1235 Leitet alle eingehenden TCP Pakete aller Netzwerkkarten von Port 1234 auf den Port 1235 zur IP-Addresse 10.2.3.4 um. Es kann jeder beliebige Port und jede beliebige IP-Addresse angegeben werden die von dem aktuellen System aus erreichbar ist.
iptables -t nat -A POSTROUTING -j MASQUERADE Wir setzen MASQUERADE so, dass die IP-Adresse des Verbindungssystems maskiert wird und verwenden stattdessen die Gateway-IP-Adresse. Dies ist erforderlich um die Kommunikation mit dem Gateway und folgend mit dem Client zu ermöglichen.
Nach einiger erfolglosen Suche im Internet und wühlen in der Manpage, biete ich an dieser Stelle, auffindbar, die Lösung zum zurücksetzen von Änderungen in einer einzelnen Datei.
Um eine einzelne Datei aus dem master Brunch in den aktuellen branch zu holen:
git checkout name_der_datei.ext
Um die Datei aus einem anderen Branch zu holen, in meinem Beispiel aus dem Branch „testbranch“. Diese Variante ermöglicht es auch die Datei auszuchecken falls es einen Branch mit dem Dateinamen gibt:
git checkout testbranch name_der_datei.ext
Anschließend kann via „git commit -a“ und „git push“ die Datei im Aktuellen Branch fixiert werden.
Wenn der SSH public-key verloren geht oder ein Webservice einen privaten SSH-Schlüssel generiert, ohne den public-key anzubieten kann dieser auch manuell erstellt werden.
Um den public-key vom private-key zu generieren kann der folgende Befehl verwendet werden:
ssh-keygen -y -f ~/.ssh/id_rsa
Die Option -y gibt den public-key zu dem angegenenen private-key aus. Der public-key kann mit dem Zusatz „> ~/.ssh/id_rsa.pub“ in eine Datei umgeleitet werden.
Um den public-key zu prüfen kann dieser mit dem folgenen Aufruf validiert werden.
Die Ausgabe zeigt die Schlüsselgröße im ersten Textblock, anschließend das Format und den Fingerabdruck des öffentlichen Schlüssels, den im Key gespeicherten Namen und am ende, in Klammern, den q Der Fingerabdruck kann sowohl als MD5 (-E md5) als auch als SHA256 (-E sha256) angezeigt werden.
Leider erlaubt MySQL keine Filter für SHOW PROCESSLIST. Hierdurch wird die Übersicht der laufenden Prozesse schnell unübersichtlich.
Ab PHP 5.1 kann ich die laufenden MySQL Anfragen mit dem folgenden Befehl anzeigen:
SELECT * FROM information_schema.processlist;
Hierbei werden alle Prozesse, genau wie mit SHOW PROCESSLIST angezeigt, es ist aber auch eine Filterung möglich. Mit dem folgenden Befehl können alle laufenden MySQL Anfragen ohne die ruhenden Prozesse angezeigt werden.:
SELECT * FROM information_schema.processlist WHERE command != 'Sleep';
Die Ausgabe kann auch sortiert werden und weiter eingeschränkt werden. Mit dem folgenden Befehl werden dir MySQL Prozesse nach laufzeit sortiert und nur die Prozesse angezeigt die länger als zwei Sekunden laufen.:
SELECT user, time, state, info FROM information_schema.processlist WHERE command != 'Sleep' AND time >= 2 ORDER BY time DESC, id;
Die zur verfügung stehenden Felder sind ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID, INFO_BINARY und TID.
Column
Beschreibung
ID
Verbindungskennung
USER
Der Benutzer der diesen Prozess gestartet hat
HOST
Server von dem die Verbindung eingeht
DB
Benutzte Datenbanbk oder NULL wenn keine
COMMAND
Art des ausgeführten Befehls
TIME
Sekunden, seit der dieser Prozess in seinem aktuellen Zustand ist
STATE
Aktueller Status des Prozesses
INFO
Anweisung, die in diesem Prozess ausführt wird , oder NULL wenn keine
TIME_MS
Zeit in Millisekunden seit dem sich der Prozess im aktuellen Status befindet
STAGE
Die Phase, in der sich der Prozess derzeit befindet
MAX_STAGE
Die maximale Anzahl von Stufen
PROGRESS
Der Fortschritt des Prozesses in der aktuellen Phase (0-100%)
MEMORY_USED
Speicher in Bytes, der von diesem Prozess verwendet wird
EXAMINED_ROWS
Tabellenzeilen die von diesem Prozess gelesen wurden. Nur bei UPDATE-, DELETE- und ähnliche Anweisungen. Bei SELECT- und ähnlichen Anweisungen bleibt der Wert Null
So nutze ich AutoSSH aum meinem Gnubee 2 NAS um von überall an die Daten auf meinem NAS zu gelangen! Die verwendung von autossh wurde auf meinem NAS notwendig da sie sonst nicht mehr über das Internet erreichbar ist. Mein Internetprovider bietet nur noch DS-Light an. 🙁
autossh?
Autossh ist ein Programm das einen Open-SSH Tunnel bei Verbindungsabbrüchen automatisch wiederherstellt.
Verbindung zum Server etablieren
Meine NAS muss eine Passwortlose Verbindung zu meinem Server aufbauen können. Hiezu generiere ich einen SSH-Key und übertrage den Public-Key auf den Server.:
Um den Tunnel beim Systemstart automatisch wieder herstellen zu lassen lege ich die Datei /etc/systemd/system/sshtunnel.service mit dem folgenden Inhalt an:
Ich verwende normalerweise den Linux befehl Time um die Dauer für einen Prozess unter Linux nachzuvollziehen.
time make -j4
real 0m2,587s
user 0m0,001s
sys 0m0,027s
Die Bash führt aber auch die wirklich praktische Variable SECONDS die die vergangenen Sekunden seit dem Start der Shell enthält. SECONDS führt die zählung auch fort wenn die Variable verändert wird. Die Variable enthält nach einer Änderung die zugewiesene Zahl zusätzlich zu der Anzahl Sekunden die nach der Änderung vergangen sind. Wieso also nich eine Null Zuweisen um zu erfahren wie lange ein Prozess braucht.:
SECONDS=0; make; echo $SECONDS
viel Schöner geht es jedoch wenn ich mir in Anschluss noch ausrechne wie viele Minuten und Stunden es wahren.:
SECONDS=0
# Hier kommt die Ausführung des Befehls
DAUER=$SECONDS
echo "$(($DAUER / 3600)) Stunden, $((($DAUER / 60) % 60)) Minuten und $(($duration % 60)) Sekunden vergangen."
In einer Einzigen Zeile, zum Compillieren eines Programms bedeutet dies:
Vor einigen Jahren besaß ich ein „Frezer-Modul für meinen C64. Ich hatte noch, kurz bevor ich den C64 durch einen Amiga 500 ersetzt habe ein Action Replay IV von einem meiner Bekannten für 100 DM gekauft. Zuerst wollte ich mir ein Final Cartridge zulegen, leider kostete es damals noch 146 DM und als Schüler konnte es mir damals noch nicht leisten.
In den wirren der folgenden Jahre und Umzüge habe ich meinen C64 irgendwann weggegeben.
In den frühen 2010er Jahren habe ich mir wieder einen neuen C64, mit 1541-II und Datasette zugelegt. Leider konnte ich auch nach längerer Suche kein Final Cartridge III oder Action Replay-IV finden das meinen Vorstellungen entsprach.
Ich stolperte vor kurzem auf ein YouTube-Video von Greisis Workbench in dem er ein Final Cartridge via Reverse Engeniering wieder zum Leben erweckte. (dieses Video hier!)
Nach einer kurzen Prüfung meiner „Vorräte“ musste ich leider festgestellen das mir, ausser dem C64 selbst und meinem Lötkolben alles fehlte was ich für den Nachbau des The Final Cartridge 3.33 von Greisis Workbench benötige.
1. Vorräte auffüllen
Da Greisis auf seinem Google Drive die Dateien zum Projekt bereitgestellt hat (vielen Dank) brauche ich das PCB nicht aus dem Video nachkonstruieren sondern kann Gerber File und BOM direkt hier herunterladen. zusätzlich benötige ich noch einen EEPROM Brenner.
Auf dem YouTube-Kanal von EEVblog wurde vor wenigen Jahren der MiniPro TL866 Universal Programmer vorgestellt. (Video hier!) Eine kurze Installation des zugehörigen Brenner-Programms zeigte mir das dieser EEPROM Brenner den auf dem Modul verwendeten EEPROM „SST39SF010A PLCC-32“ unterstützt. Bei einem Preis von 50€ und der guten bewertung von EEVBlog ist das Ding gekauft.
11.06.2018 Bestellung des EEPROM Programmers über eBay für 50,67€
14.06.2018 Bestellung der Bauteile bei Conrad für 18,20€
14.06.2018 Bestellung des PCBs bei JLCPCB für 7,04€ (8 US$)
Bei meiner ersten Bestellung bei JLCPCB habe ich zuvor nicht in die XGerber.zip Datei geschaut und diese als Gerberfile hochgeladen.
Hierdurch wurde meine Bestellung nach wenigen Minuten von Seiten des Anbieters wieder Storniert. Die Datei XGerber.zip enthält zusätzlich den Gerber-File namens TFC3_V1_0.zip. Dieser Gerber-File muss bei dem Upload zu JLCPCB angegeben werden!
2. Warten auf die Post
Conrad kündigt die erste Teillieferung der bestellten Bauteile am 15.06.2018 für Samstag den 16.06. an. Da die Lieferung via DHL in Berlin erfolgte hatte ich selbstverständlich erst am 19.06. die Abholkarte für das Päckchen in der Post. Die letzter 4 Logic ICs sollen laut Begleitkarte in zwei Wochen nachgeliefert werden. (das ist dann der der 03.07.) JLCPCB gibt am 17.06.2018 den Versand des PCB bekannt.:
Die zweite Conrad Lieferung, die fehlenden 4 ICs, wurde mir am 26.06. gegen 5:00 Uhr für den aktuellen Tag angezeigt. Gegen 14:50 Uhr erhielt ich die Meldung „Ein Zustellversuch erfolgt am nächsten Werktag“. Das Päckchen wurde mir nicht zugestellt, ich erhielt auch keine Karte, konnte durch die Sendungsverfolgung von Conrad das Päcken am 28.06.2018 bei einem Paketshop in meiner Nähe abholen. Die Päckchen des TL866A ist noch nicht angekommen, das PCB von JLCPCB habe ich leider noch immer nicht am 03.07.2018 von der Post abholen. Das Päckcen aus China mit dem TL866A sollte laut ebay-Anzeige bis spätestens 29.07.2018 geliefert werden. Ich habe jetzt am 08.08.2018 eine EMail über ebay an den händler gesandt um Ihn auf die ausstehende Lieferung hinzuweisen.
Die Bestellung des EEPROM Programmers dauerte insgesamt über 8 Wochen! Ich habe von ursprünglichen Händler das Geld zurück erhalten und am 14.August den EEPROM Programmer via Amazon neu bestellt.
Die lieferung erfolgte am 17.08.2018.
3. The Final Cartridge in Einzelteilen
Jetzt wo alle Teile vorhanden sind geht es an das verlöten der Wiedestände, der Kondensatoren, der Dioden und der Sicherung.
Das löten verlief sehr holperig da die Wiederstände für meine Hände einfach zu klein sind.