Ubuntu – Update 18.04 zu 18.10 Cosmic Cuttlefish

  • benötigt ROOT-Privilegien
  1. Update der bestehenden Ubuntu 18.04 Installation:
    • Mittels den bekanten Update Kommandos wird die bestehende Installation auf den neuesten Stand gebracht. Alle nicht mehr benötigten Pakete können anschließend gelöscht werden.
    • $ sudo apt update 
      $ sudo apt upgrade
      $ sudo apt dist-upgrade
      $ sudo apt autoremove
  2. Anpassung des Upgrade Kanals.
    • Ubuntu unterschiedet zwischen den 2x pro Jahr veröffentlichten Releases und den LTS-Versionen (Long Term Support).
    • Für das Update von 18.04 LTS zu 18.10 müssen wir zunächst die Zwischenreleases freigeben.
    • In der Datei /etc/update-manager/release-upgrades muss die Zeile „Promt=lts“ zu „Promt=normal“ angepasst werden:
  3. Update starten.
    • $ sudo do-release-upgrade

Open Source Alternative: Trello -> Wekan

 

Wekan

Im Heise Newsticker ist mir heute ein Artikel besonders aufgefallen, es geht um den Trello-OSS-Ersatz Wekan.

Das Wekan-Board arbeitet sehr ähnlich zu dem Cloud-Vorbild und für die ganz schnellen gibt es natürlich auch schon ein Docker Build.

Meeting Disziplin

Um Meetings disziplinierter und effizienter zu machen gelten folgende Regeln:

Ist das Meeting nötig?

2 mal überlegen, ob man das Problem nicht schneller lösen kann wenn man mit den Leuten direkt drüber spricht.

Agenda und Scope

Jedes Meeting, welches eingestellt wird hat eine Agenda und ein Ziel.
Falls nicht findet es nicht statt.

Ein Meeting braucht einen Moderator/Entscheider

Ist kein Entscheider anwesend, wurde falsch eingeladen. Meeting wird abgesagt.

Jour Fixes und Brainstorming Meetings

brauchen auch einen Moderator

Meeting Größe

Versucht Meetings klein zu halten,
bis max. 8 Leute

Ladet nur relevante Kollegen ein

Nur Kollegen einladen, die dazu beitragen können/müssen

Verhalten

Pünktlichkeit,
keine offenen Notebooks,
keine Mobil-Geräte auf dem Tisch,
rechtzeitig absagen wenn man es nicht schafft.

Meeting minutes

Entscheidungen werden schriftlich festgehalten. Moderator oder Protokollant schickt die Ergebnisse an die Teilnehmer.

Datei per curl vom Console nach Owncloud / Nextcloud hochladen

Wie bekomme ich eigentlich eine Datei per Console vom Server zu einem Owncloud oder Nextcloud hochgeladen?

curl hilft dabei, es geht z.B. so:

curl -X PUT -u username:password "http://myserver/remote.php/webdav/filename.type" --data-binary @"filename.type"

Scan Linux System for Malware and Rootkits

Gerade auf HowToForge einen guten Artikel über 3 Werkzeuge gefunden, mit dem man sein Linux-System auf Schädlingsbefall in Form von Malware und Rootkits überprüfen kann.

chkrootkit – der Linux rootkit scanner – ist der Klassiker unter den Scannern und prüft auf bestimmte Prozesse und Dateien, die bei RK Befall vorhanden sein können.
Aufruf: „~# chkrootkit“ – die Ausgabe auf der Console erklärt sich von selbst.

lynis – ehemals rkhunter – ist ein universelles Rootkit Scanner Tool, welches neben den Infektionsstatus auch noch eine Menge nützlicher Informationen zum Verbessern der Systemstabilität ausgibt. Die Konsolenausgabe ist hier ebenfalls sehr umfangreich und detailliert.
Mit „~# lynis update info“ wird die Definition aktualisisiert.
Den Check startet man mit „~# lynis audit system“.

ISPProtect ist ein Website Malware Scanner, mit dem Schwachstellen in den installierten Systemen aufgedeckt und Infektionen erkannt werden können. Veraltete oder unsichere Versionen von WordPress, MySQL etc werden erkannt.
ISPProtect ist keine freie Software, es gibt aber eine kostenlose Trial-Version.

Zum HowTo-Forge-Artikel: https://www.howtoforge.com/tutorial/how-to-scan-linux-for-malware-and-rootkits/

curl: show header only / http get

If you only want to show the headers of your http response, you may want to use the following switches:

  • -D = dump headers
  • -s = silent mode
  • -o /dev/null = send all output do dev null

The curl request looks like this:

$ curl -s -D - https://www.path.to/my.file -o /dev/null

The output should looks like this:

HTTP/2 200
last-modified: Tue, 13 Dec 2016 12:08:30 GMT
etag: W/"183836-1481630910000"
server: Apache
x-magnolia-registration: Registered
pragma: no-cache
content-type: application/x-font-otf;charset=UTF-8
content-length: 183836
accept-ranges: bytes
cache-control: public, max-age=8236
expires: Mon, 02 Jan 2017 13:11:32 GMT
date: Mon, 02 Jan 2017 10:54:16 GMT

Magnolia CMS: find references of any assets in all repositories

This Groovy code runs on any Magnolia CMS instance and helps you to find unused assets. It checks if an asset is linked within another repository.

It does not check if you link to an asset by URI. And of course it can not check if the asset is linked from somewhere else in the web.

import info.magnolia.module.dependencies.impl.DefaultDependencies
import info.magnolia.cms.beans.config.ContentRepository
import info.magnolia.cms.core.Content
import info.magnolia.cms.util.ContentUtil
import info.magnolia.cms.util.DumperUtil
import javax.jcr.Node;
session = ctx.getJCRSession("dam")
query = session.getWorkspace().getQueryManager().createQuery("select node.* from [mgnl:asset]", "JCR-SQL2")
// for debugging: start with a small amount if nodes
query.setLimit(100)
nodes = query.execute().getNodes()
dependencies = new DefaultDependencies()
// save the output to a file
File file = new File("/tmp/unusedAssets.txt")
def i = 0
def found = false
nodes.each { Node node ->
 for (workspace in ContentRepository.getAllRepositoryNames()) {
 // this is an optional whitelist of repositories
 if(workspace.startsWith("offer") || workspace.startsWith("product") || workspace.startsWith("website") || workspace.startsWith("rm-") || workspace.startsWith("category") || workspace.startsWith("resources") || workspace.startsWith("data")) {
 if(dependencies.getReferencesTo(node, workspace).isEmpty()) {
 found = true
 i++;
 // sleep every 20 nodes, otherwise the instance may be locked
 if (i % 20 == 0) {
 println(i)
 sleep(1000)
 }
 }
 }
 }
 // write node names to the file for later investigation
 if (found) {
 file << node.getPath()+"\r\n"
 found = false
 }
}
0

JIRA: Search Filter to find issues updates in the last 7 days

The query language in JIRA is able to use relative dates; using the issue properties like „updates“, „created“ etc. minus a numer of days.

project = X AND resolution = Unresolved and updated > -5d ORDER BY priority DESC, updated DESC

The notation „-5d“ is the shorthand for minus 5 days.

Docker auf Kimsufi Server (CentOS 7.1)

Docker Installation per yum:

yum install docker

Bei dem Setup habe ich eine Partition für Docker Images erstellt und unter „/data“ eingehangen. Hierfür muss das Default-Installationverzeichnis von Docker angepasst werden:

vi /etc/sysconfig/docker

Für CentOS lautet die Zeile zum Anpassen des Verzeichnisses:

other_args="-g /data/docker"

Anschließend wird der Docker Daemon neu (bzw erstmals) gestartet:

# systemctl stop docker.service -> oder alternativ mit "service docker stop"
# systemctl start docker.service -> oder alternativ mit "service docker start"

Die Installation kann mit dem Kommando

docker run hello-world

geprüft werden, und mit „docker images“ werden alle installierten Docker Images aufgelistet.

Um die Tests wieder wegzuräumen und die Docker Umgebung wieder in Ausgangslage zurückzusetzen, sind folgende Kommandos hilfreich:

Delete all containers

docker rm $(docker ps -a -q)

Delete all images

docker rmi $(docker images -q)