Git setzt beim Auschecken der Files das Schreibdatum auf die aktuelle Zeit. In der Entwicklung z.B. ist das wohl meist das richtige Vorgehen. In (mindestens) einem meiner Repositories bevorzuge ich es aber, wenn die Files das Datum ihrer letzten Änderung tragen würden. Ein kleines Skript setzt alle Dateien auf das Datum des jeweiligen letzten commits: Read More…
Ubuntu-Upgrade auf 16.04 LTS
Wie mache ich ein System-Upgrade auf 16.04? Weil ich’s nie auswendig weiß, hier mal aufgeschrieben: Ist ein Upgrade direkt von 12.04 auf 16.04 möglich? Das wird nicht unterstützt. Vielleicht geht es trotzdem – ich habe es nicht ausprobiert. Install update-manager-core if it is not already installed: sudo apt-get install update-manager-core Make sure the /etc/update-manager/release-upgrades is Read More…
Docker-Container zum Mailen via sendmail bringen
Hier habe ich einen Tipp gefunden, wie man einem Linux-System (und damit auch einem Docker-Container) das Mailen beibringen kann – viel einfach als mit einem „richtigen“ Mailsystem wie postfix: Paket ssmtp installieren ssmtp.conf füllen: root=dirk@xxx mailhub=mail.xxx:25 AuthUser=uuuu AuthPass=pwpwpwpw UseTLS=YES UseSTARTTLS=YES fertig.
git LFS mit gitblit
Wie verwende ich git lfs zusammen mit gitblit? gibblit habe ich ja hier schonmal begeistert gelobt. Alles was ich hier schreibe, gilt aber vermutlich auch genauso für andere git-Server. So geht’s los: brew install git-lfs git clone … git lfs install git lfs track „*.pdf“ git add .gitattributes git add TestRechnung.pdf git commit -m „add Read More…
JSON formatieren
Online: Da gibt es natürlich viele, ich mag den hier: https://jsonformatter.curiousconcept.com/. Da kann man ganz hübsch z.B. Teil-Bäume mit +/- ausklappen: In der Kommandozeile: Mit jq. Auf dem Mac z.B. via brew install jq. Einfachste Anwendung: echo ‚{„a“:“aa“,“b“:{„c“:[„d“]}}‘ | jq. Ergibt: Mehr im Tutorial.
Verhindern, dass Shell-Skripts mehrfach gleichzeitig laufen
Oft habe ich den Fall, dass ein Shell-Skript im Cron läuft. Manchmal läuft es aber so lange, dass es vom cron ein zweites Mal gestartet wird. Das will ich verhindern. Nun habe ich eine schicke Lösung gefunden: lockfile=/var/lock/.$(basename $0).exclusivelock ( # Wait for lock on $lockfile (fd 200) for 10 seconds if ! flock -x Read More…
Atlassian Confluence als Docker-Container hinter Reverse-Proxy
Meine docker-compose.yml ist einfach straight forward: atlassian-confluence: image: ‚dsteinkopf/confluence-dup:latest‘ environment: – ‚CATALINA_OPTS=-Xms512m -Xmx512m‘ ports: – ‚8090:8090‘ restart: always volumes: – /opt/dockervolumes/atlassian_confluence_home:/var/atlassian/confluence – /opt/dockervolumes/atlassian_confluence_misc/server.xml:/opt/atlassian/confluence/conf/server.xml – /etc/localtime:/etc/localtime – /etc/timezone:/etc/timezone BTW. dsteinkopf/confluence-dup ist ein von mir erstelltes Confluence-Image, bei dem die Breadcumbs oben nicht durch Punkte („…“) gekürzt werden. (Details im docker hub bzw github.) Die /opt/dockervolumes/atlassian_confluence_misc/server.xml von Read More…
Diagramme aus Confluence in „fremder“ Webseite dynamisch einbinden
Manchmal möchte man in einer Umgebung, in der man keine Diagramme erstellen kann (z.B. hier im WordPress) eines einbinden. Die naheliegende Möglichkeit (geht natürlich immer) ist, ein PNG zu erzeugen und entsprechend einzubinden. Dann wird es aber später nicht mehr aktualisiert. Das geht z.B. so: Diagramm erstellen und in einer öffentlichen Seite speichern (ich benutze Read More…
Owncloud-Update auf Version 9: table already exists
Ich habe eine owncloud-Installation auf ubuntu 14.4. Die kleineren Updates werden von „unattanted upgrades“ automatisch und reibungslos installiert Bei Verisonsupdates reicht meistens ein apt-get upgrade owncloud. Diesmal hat er mich aber aufgefordert das Upgrade manuell durchzuführen. Hier habe ich nachgelesen, wie das geht und für mich „übersetzt“: cd /var/www/owncloud && sudo -u www-data php occ Read More…
Meine Docker-Umgebung mit Auto-Update und Mini-Überwachung
Maschinen mit Vagrant oder Kickstart installieren. Dann noch mit Ansible konfigurieren (playbook: s.u.): ansible-playbook -i hosts -u root –extra-vars='{„dstk_hostname“:{„name“:“docker4″,“domain“:“steinkopf.net“}}‘ ansible/baseserver.yml ansible-playbook -i hosts -u root ansible/docker.yml NFS-Share mit den Volumes, gemountet im Docker-Host auf /opt/dockervolumes/. Wird von anderem Host aus ebenfalls gemountet und von dort aus gesichert (Backup). docker-compose: /opt/compose/ enthält je Anwendung ein Verzeichnis. Read More…