Artikel mit Tag 16.04

Ubuntu 18.04 - Command not found - Unterschied zwischen tailf und tail -f

Unter Ubuntu gab es bis zur Version 16.04 LTS die Möglichkeit tailf und tail -f zu verwenden. Dies ist mit der neuesten LTS Version nicht mehr der Fall. Nur noch die zweite Möglichkeit wird erkannt, ansonsten wird eine Fehler geworfen.

Wo liegen die Unterschiede dieser zwei Kommandos und warum gibt es eines nicht mehr?

Unterschied tailf und tail -f

tailf

Laut Befehlsdefinition verfolgt tailf das Wachstum einer Logdatei. tailf gibt die letzten 10 Zeilen der angegebenen Datei aus und wartet dann darauf, dass diese Datei wächst. Es ist ähnlich wie tail -f, greift aber nicht auf die Datei zu, wenn sie nicht wächst.

Dies hat den Nebeneffekt, dass die Zugriffszeit für die Datei nicht aktualisiert wird, so dass ein Flush des Dateisystems nicht periodisch stattfindet, wenn keine Protokollaktivität stattfindet.

tailf ist äußerst nützlich für die Überwachung von Protokolldateien auf einem Laptop, wenn die Protokollierung selten ist und der Benutzer möchte, dass sich die Festplatte herunterdreht, um die Akkulaufzeit zu verlängern. (Übersetzt mit www.DeepL.com/Translator)

tail

Für tail lautet die Definition wie folgt:

Das Tail-Utility muss seine Eingabedatei in die Standardausgabe kopieren, beginnend mit einem festgelegtem Ortes.

Das Kopieren beginnt an der Stelle in der Datei, die durch die -c-Nummer oder -n-Nummer gekennzeichnet ist.

Optionen: Die Nummer des Optionsarguments wird in Zeilen- oder Byteseinheiten gezählt, entsprechend der zu den Optionen -n und -c.  Sowohl die Zeilen- als auch die Byteanzahl beginnen bei 1.

Tails in Bezug auf das Ende der Datei können in einem internen Puffer gespeichert werden und sind somit möglich.

Der Originaltext ist hier zu finden.

Tail ist auf allen Ubuntu Varianten installiert, was sich auch überprüfen lässt

dpkg -S $(which tail)

oder

dpkg -L coreutils | grep tail

tail-f

tailf wurde nicht mit den coreutils ausgeliefert, sondern mit util-linux und genau dieses Paket ist seit Version 18.04 nicht mehr dabei.

dpkg -L util-linux |grep tail

Bei 16.04 LTS ist es allerdings noch verfügbar

tailf

Doch wie lässt sich ein alter Befehl weiterhin nutzen?

Tailf unter Ubuntu 18.04 einsetzen


Ein Workaround wäre der Einsatz von alias, damit könnte das alte nicht mehr verfügbare Kommando auf das neue gelegt werden, der Befehl ist einfach gesetzt:

sudo nano ~/.bashrc

alias tailf='tail -f'


Meist wird der tail Befehl für Dateien verwendet, welche erhöhte Rechte benötigen, darum kann es sinnvoll sein, den Alias auch beim root Benutzer zu hinterlegen.

sudo nano /root/.bashrc

alias tailf='tail -f'

Alternativ kann natürlich zusätzlich less eingesetzt werden. tailf selbst ist deprecated und sollte nicht mehr eingesetzt werden..

Ubuntu - Welche der installierten Pakete erhalten eigentlich noch Updates?

Mit der Veröffentlichung von Bionic Beaver (18.04) hat Canonical eine neue Long Term Support (LTS) Version veröffentlicht, welche die bestehende 16.04 LTS Version ablösen soll.

Ein Update muss sicher nicht überstürzt werden, denn Ubuntu 16.04 LTS erhält noch Updates bis ins Jahr 2021. Irgendwann ist allerdings das "End of Life" erreicht.

eol-ubuntu

Wer ältere Versionen einsetzt, dem bietet Ubuntu selbst eine Abfrage an, ob und wie lange Pakete noch unterstützt werden.

Dazu muss nur der Befehl ubuntu-support-status aufgerufen werden.

Für eine ausführliche Ausgabe kann der Schalter "--show-unsupported" oder "--show-supported" verwendet werden.

g@ubuntu:~$ ubuntu-support-status --show-unsupported
Support status summary of 'ubuntu':

You have 1 packages (0.1%) supported until April 2019 (3y)
You have 11 packages (1.4%) supported until January 2023 (5y)
You have 689 packages (85.6%) supported until April 2021 (5y)

You have 1 packages (0.1%) that can not/no-longer be downloaded
You have 103 packages (12.8%) that are unsupported

No longer downloadable:
wkhtmltox

Unsupported:
auditd cgroupfs-mount comerr-dev composer containerd coturn docker
docker.io golang golang-1.6-race-detector-runtime golang-doc
golang-go golang-race-detector-runtime golang-src jsonlint
libapache2-mod-php7.1 libauparse0 libgd3 libhiredis0.13 libjbig-dev
libjbig0 libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libjs-excanvas
liblcms2-dev liblxc1 liblzma-dev libmagic-dev libpcre3 libpng12-dev
libseccomp2 libssl-dev libssl-doc libssl1.1 libwebp-dev libwebp5
libwebp6 libwebpdemux2 libwebpmux3 libxext-dev libxft-dev libxml2
libxml2-dev libxrender-dev libxss-dev libyaml-dev libzip5 lxc-common
lxcfs lxd lxd-client mercurial mercurial-common openssl
php-cli-prompt php-common php-composer-semver
php-composer-spdx-licenses php-json-schema php-mongo
php-symfony-console php-symfony-filesystem php-symfony-finder
php-symfony-process php5.6-cli php5.6-common php5.6-curl php5.6-fpm
php5.6-intl php5.6-json php5.6-opcache php5.6-readline php5.6-xml
php5.6-xsl php7.1 php7.1-bcmath php7.1-cgi php7.1-cli php7.1-common
php7.1-curl php7.1-fpm php7.1-intl php7.1-json php7.1-mbstring
php7.1-mysql php7.1-opcache php7.1-readline php7.1-zip
postgresql-server-dev-9.5 pybootchartgui python-pip python-pip-whl
python-software-properties python-wheel runc tcl8.6-dev tk8.6-dev
x11proto-render-dev x11proto-scrnsaver-dev x11proto-xext-dev xdelta3
xmlstarlet

 

Ubuntu - immer Up2date mit unbeaufsichtigten Updates

Die Woche war lang und das Wochenende hat schon einen Fuß in der Tür. 
Dennoch ein kleiner Tipp zum Freitag.

Damit ein System auf einem aktuellen Stand bleibt und keine Sicherheitslücken aufweist, müssen regelmäßig Updates installiert werden.
Dies kann händisch via apt-get upgrade oder mit Orchestrierungs- Lösungen alà Landscape (siehe Artikel), Ansible und Co gelöst werden.


Ubuntu selbst bringt allerdings ebenfalls Funktionen mit, ein System mit den neuesten Updates zu versorgen.
Bei kleinen Netzwerken mit drei bis vier Ubuntu Systemen, bietet sich diese Möglichkeit durchaus an, denn Landscape und Co wären hier zuviel des Guten.

Unattended Updates unter Ubuntu nutzen

Das Paket "unattended-upgrades" ermöglicht die automatische Installation von Updatepaketen.
Aber nicht nur die Installation, sondern auch Neustarts und Prioritäten von Updatepaketen können darüber definiert werden.

unattended-updates-einrichtungBevor das Paktet konfiguriert werden kann, sollte es installiert werden.

sudo apt-get install unattended-upgrades apt-listchanges

Nach der Installation wird eine Config Datei benötigt. Diese kann händisch angelegt werden oder automatisch mit

sudo dpkg-reconfigure -plow unattended-upgrades

Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version

angelegt werden. Hier erscheint eine zusätzliche Abfrage auf dem Bildschirm (siehe Screenshot).

Bei einem Blick auf die nun generierte Datei finden sich ein paar Einträge.

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

 
Hier muss eigentlich Nichts weiter angepasst werden.
Nutzer die bereits apticron in Verwendung haben, könnten die erste Zeile theoretisch entfernen, da über dieses Paket bereits die Listen regelmäßig aktualisiert werden

Konfiguration von unbeaufsichtigten Updates

Jedoch wird eine weitere Datei angelegt, in der diverse Einstellungen gemacht werden sollten.

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
  • In diesem Beispiel werden nur Sicherheitsupdates automatisch installiert.
  • Danach wird eine Mail an root versendet.
  • Im Fehlerfall wird ebenfalls eine Nachricht versendet (der Punkt // Unattended-Upgrade::MailOnlyOnError "true"; sollte auskommentiert bleiben).
  • Nicht mehr verwendete Abhängigkeiten werden mit diesen Einstellungen automatisch entfernt.
  • Um den automatischen Updatevorgang abzuschließen, wird das System um 3:30 Uhr neu gestartet.

Alle aktiven Punkte sind fett markiert.



// Automatically upgrade packages from these (origin:archive) pairs
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";

//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};


// This option allows you to control if on a unclean dpkg exit
// unattended-upgrades will automatically run
//   dpkg --force-confold --configure -a
// The default is true, to ensure updates keep getting installed
//Unattended-Upgrade::AutoFixInterruptedDpkg "false";

// Split the upgrade into the smallest possible chunks so that
// they can be interrupted with SIGUSR1. This makes the upgrade
// a bit slower but it has the benefit that shutdown while a upgrade
// is running is possible (with a small delay)
//Unattended-Upgrade::MinimalSteps "true";

// Install all unattended-upgrades when the machine is shuting down
// instead of doing it in the background while the machine is running
// This will (obviously) make shutdown slower
//Unattended-Upgrade::InstallOnShutdown "true";

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "user@example.com"
Unattended-Upgrade::Mail "root";

// Set this value to "true" to get emails only on errors. Default
// is to always send a mail if Unattended-Upgrade::Mail is set
// Unattended-Upgrade::MailOnlyOnError "true";

// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
Unattended-Upgrade::Remove-Unused-Dependencies "true";

// Automatically reboot *WITHOUT CONFIRMATION*
//  if the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
//  Default: "now"
Unattended-Upgrade::Automatic-Reboot-Time "03:30";

// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";

Viel mehr muss nicht konfiguriert werden. Sollte ein Update gelaufen sein, wird automatisch eine E-Mail versendet, welche über die gelaufenen Updates oder entstandene Fehler informiert.

unattended-updates-linux


 

Eigene Linux Distribution - Tools um Live CDs oder ISO Images von Ubuntu Installationen zu erstellen (Version 2016)

Im letzten Jahr hatte ich verschiedene Varianten vorgestellt, um aus der eigenen Linux Installation ISO Images bzw. Sicherungen zu erstellen. Der ursprüngliche Artikel ist bald ein Jahr alt. Somit ist es Zeit nach dem aktuellen Wasserstand zu schauen.

Zunächst noch kurz was zu eventuellen Altlasten auf der Platte.

Der Artikel über das mittlerweile veraltete Remastersys liegt ja noch länger zurück, sollte es dennoch auf der Platte installiert sein, hilft folgendes um es endgültig zu entfernen.

sudo apt-get purge remastersys

Systemback

Mein Favorit aus dem letzten Jahr ist immer noch verfügbar und erhält regelmäßige Updates. Am Aufbau des Backup und ISO Tools hat sich wenig geändert.

Die aktuelle Version 1.8.402 unterstützt Ubuntu 16.04 LTS, kann mit Snap packages umgehen und beherrscht verschiedene Sprachen.

Eigentlich erübrigt sich die Frage nach anderen Tools, denn Systemback deckt in meinen Augen alles ab, was der Nutzer für das Erstellen einer eigenen Distribution auf Ubuntu benötigt.

Dennoch gibt es inzwischen weitere Möglichkeiten sich der Aufgabe "Linux Images erstellen" zu widmen.

systemback

Installation Systemback auf Ubuntu Systemen

Die Installation des Tools ist dank ppa recht einfach.

   

sudo add-apt-repository ppa:nemh/systemback

sudo apt-get update

sudo apt-get install systemback


Distroshare

Hier sieht die Sache schon etwas anders aus. Die Homepage ist leider nicht mehr erreichbar und das Github Repository wurde zuletzt im Jahr 2015 aktualisiert.

Ob das Script noch mit aktuellen Ubuntu Releases funktioniert ist daher fraglich.


Pinguy Builder

Ein weiterer Fork vom guten alten Remastersys ist der Pinguy Builder. Er ist eigentlich für Pinguy OS gedacht. Da dieses auf Ubuntu basiert, können auch andere Systeme damit erstellt oder gesichert werden.

Momentan existieren zwei Versionen. Ein ältere Version 3 basierend auf Ubuntu 14.04 und Beta Version 4 basierend auf Ubuntu 15.04.

Letztere ist unter Ubuntu 16.04 lauffähig.

pinguybuilder

 

Da es sich um einen Fork handelt unterscheidet sich der Pinguybuilder nicht sonderlich von Remastersys oder Systemback.

Eine ISO Erstellung sollte somit einfach von der Hand gehen.

Fertige ISOs können mit dem Startup Disk Creator auf CD oder USB-Stick gebracht werden.

 

Installation Pinguy Builder auf Ubuntu 16.04 LTS

Das Tool setzt die Installation von xresprobe voraus, welches nicht mehr in den offiziellen Repository von Ubuntu vorhanden ist.

Es muss von Hand installiert werden.

wget https://launchpad.net/ubuntu/+source/xresprobe/0.4.24ubuntu9/+build/1274262/+files/xresprobe_0.4.24ubuntu9_amd64.deb

sudo dpkg -i xresprobe_0.4.24ubuntu9_amd64.deb

 

wget http://downloads.sourceforge.net/project/pinguy-os/ISO_Builder/pinguybuilder_4.3-8_all-beta.deb

sudo dpkg -i pinguybuilder_4.3-*

 

Sollte es zu weiteren Problemen mit Abhängigkeiten kommen hilft ein apt-get install -f eventuell schon aus.


Respin

Beim Aufruf der alten Remastersys URL landen Anwender auf Linux Respin. Die Seite verspricht Custom Distros für Debian, Ubuntu und Mint. Im Prinzip stimmt das , allerdings befindet sich der Fork immer noch in der Entwicklung.

Die Pakete für Ubuntu und Mint werden zwar via Github fleißig gepflegt, leider ist ein GUI noch nicht verfügbar und es bleibt nur das CLI für die Verwendung. Was allerdings nicht schlechter als die Oberfläche und auch für verwöhnte Klicker zu meistern ist.

respin

 

Installation auf Ubuntu 16.04

sudo nano /etc/apt/sources.list.d/respin.list

  deb http://ppa.launchpad.net/sergiomejia666/respin/ubuntu xenial main

  deb-src http://ppa.launchpad.net/sergiomejia666/respin/ubuntu xenial main

sudo apt-get install respin

Respin starten und verwenden

sudo respin

Wichtige Respin Optionen

sudo respin backup (normales backup erstellen)

sudo respin backup mein.iso (normales backup mit iso Erstellung)

sudo respin clean (temporäre dateien löschen)


Fazit

Das erfreulichste an diesem Fazit, ist die Tatsache: Auf dem "Custom Distro Tool" Markt hat sich etwas getan und alle hier vorgestellten Tools (Distroshare ist außen vor) haben im ersten Test ohne Probleme ein Image von Ubuntu 16.04 erstellen können.

Somit bleibt es dem Anwender überlassen, welches Tool er nutzt. Da die Anwendungen Respin oder Pinguy Builder sowieso von Remastersys abstammen, ist die Funktionsweise und Handhabung so oder so ähnlich.

Respin machte einen guten Eindruck auf der Konsole, Systemback erfreut sich regelmäßiger Updates und Bugfixes und der Pinguy Builder bringt mit der Beta Version 4 schon Unterstützung für Ubuntu 16.04 mit.