ubuntuusers.de

Tipp: Update-Benachrichtigung schon kurz nach Login erhalten

Status: Gelöst | Ubuntu-Version: Ubuntu
Antworten |

ingo2

Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Im Rahmen meiner Fehlersuche zu "update-notifier benachrichtigt nicht" hier und 356152 bin ich auf ein für "Normal-User" nützliches Feature gestoßen. Dies ist vor allem für Notbook-Nutzer sehr interessant.

Normalerweise läuft der Vorgang zur Update-Prüfung (und Benachrichtigung) so ab:

  • nach dem Einschalten, bzw. Verbinden des Laptops mit dem Ladegerät, wird 5 Minuten gewartet, dann läuft der tägliche anacron-job in /etc/cron.daily an. Zu den Skripten gehört u.a. auch apt in dem Verzeichnis.

  • Das Skript apt enthält eine zufällige Zeitverzögerung von bis zu 30 Minuten. Argument dafür: wenn man größere Server-Farmen gleichzeitig startet, fragen ohne diese Verzögerung alle Rechner gleichzeitig nach Updates und können den Ubuntu-Server überlasten.

  • Ich nehme mal an, daß die User hier kaum in diese Situation kommen und es begrüßen würden, gleich (d.h. 5 Minuten) nach dem Hochfahren des Rechners über Updates informiert zu werden 😉

Das ist mit einem einzigen # Zeichen in der Datei /etc/cron.dayly/apt zu machen:

Warnung: am Besten mit nano editieren, damit keine Backup-Kopien im Verzeichnis /etc/cron.daily landen!

Man sucht einfach nach dem 2ten Vorkommen des Ausdrucks random_sleep und stellt der Zeile ein # voran.

Die Zeile Vorher:

random_sleep

Die Zeile Nachher:

# random_sleep

Das ist schon alles. Ab sofort wird man über anstehende Updates ca. 5 Min. nach dem Einschalten des PC's oder Einstecken des Ladekabels in den Laptop benachrichtigt.

Zum Schluß noch ein Tipp:

Wer nicht nur benachrichtigt werden möchte, wenn Sicherheits-Updates verfügbar sind (das ist die default-Konfiguration), sondern generell bei Verfügbarkeit von jeglichen Updates, muß noch die Datei /etc/apt/apt.conf.d/50unattended-upgrades editieren (Achtung, am Besten nano, damit keiene Kopien angelegt werden) und die Kommentarzeichen in dieser Zeile entfernen:

Die Zeile Vorher:

//	"Ubuntu lucid-updates";

Die Zeile Nacher:

	"Ubuntu lucid-updates";

Viel Spaß mit diesen Ideen,

Ingo

Linu74

Avatar von Linu74

Anmeldungsdatum:
26. Oktober 2006

Beiträge: 2218

Wohnort: /home

Mal kurz nen Kommentar hier rein schreiben, damit es in meinen Abonnements auftaucht.

Danke für den Tipp.

Linu74

apollo13 Team-Icon

mondrakete
Avatar von apollo13

Anmeldungsdatum:
29. August 2005

Beiträge: 1521

Linu74 schrieb:

Mal kurz nen Kommentar hier rein schreiben, damit es in meinen Abonnements auftaucht.

*facepalm* Von dem "abonnieren" Button hast noch nix gehört?

Muriella

Anmeldungsdatum:
18. November 2010

Beiträge: 41

Super! Danke für diese Analyse und gute Darstellung, Ingo2!

Linu74

Avatar von Linu74

Anmeldungsdatum:
26. Oktober 2006

Beiträge: 2218

Wohnort: /home

@apollo13 das *facepalm* kannste dir Sparen. Sicherlich hatte ich das hier Abonniert und hab dann eben in meinen Abonnements danach gesucht. Die Abonnements Übersicht ist sowas von für'n A****.

Linu74

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Hier noch eine Möglichkeit, zu checken, wann cron.daily das letzte Mal gelaufen ist:

sudo cat /var/spool/anacron/cron.daily

Schaut mal auf eurem Laptop nach - ihr werdet euch wunden 😉

Ingo

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

So, heute morgen konnte ich das ganze nochmal selbst testen (Lucid):

Ich habe beide Änderungen auf meinem Desktop-PC gemacht. Und prompt kam heute morgen 5 Minuten nach dem Hochfahren die Meldung über 5 "Empfohlene Aktualisierungen" auch ohne Vorliegen von "security updates".

Das ich das "alte Verhalten" mit der Benachrichtigung wieder eingestellt habe, versteht sich von selbst. Hier nochmal die Kurzanleitung:

  • Konfigurationseditor → apps → update-notifier

  • auto_launch de-selected (Häkchen entfernt) und

  • regular_auto_launch_interval 7(days) → 0(days)

In diesem Sinne,

Ingo

P.S.: Gerade habe ich auch mein Netbook an das Ladegerät gestöpselt - und 7 Minuten danach wurden schon die Updates gemeldet.

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Ich habe übrigens gerade diese Info im Wiki verewigt:

In diesem Beitrag findet Ihr die gleiche Info, auch wenn dieser Thread irgendwann auf Seite 100+ erscheint.

Ingo

Linu74

Avatar von Linu74

Anmeldungsdatum:
26. Oktober 2006

Beiträge: 2218

Wohnort: /home

Klasse ingo2 👍

Linu74

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Hi Linu74,

bei solchen Rückmeldungen macht man das natürlich um so lieber, Danke,

Ingo

wixp

Avatar von wixp

Anmeldungsdatum:
12. Mai 2005

Beiträge: 19

Wohnort: Erlangen

Hallo Ingo2, ich find's klasse, wie du dich bei dem Thema engagiert hast - nur hat es bei mir noch nicht geklappt bisher. Die von dir empfohlenen Änderungen habe ich vorgenommen, trotzdem erscheint das Icon nicht. Erst wenn ich apt-get update im Terminal eingebe. Verdächtig ist anacron, ich bin mir nicht sicher, ob das entsprechende Skript für apt abläuft: Kann ich den Loglevel für anacron irgendwie hochsetzen um zu prüfen, ob das apt-Skript jemals läuft?!

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

wixp schrieb:

Erst wenn ich apt-get update im Terminal eingebe. Verdächtig ist anacron,

Das ist schon mal viel wert. Dann funktioniert wenigstens die eigentliche Benachrichtigung. Den Rest finden wir schon mit ein Bischen Systematik. Es gibt da mehrere Möglichkeiten.

1. Du bist zu ungeduldig. Dir ist bewußt, das cron.daily nur 1x pro Tag läuft? Wenn es z.B. heute gelaufen ist, wird es nicht vor morgen wieder ausgeführt. Du kannst nachschauen, wann es das letzte Mal gelaufen ist (Format yyyymmdd) mit:

sudo cat /var/spool/anacron/cron.daily

Und selbstverständlich gibt es keine Benachrichtigung, wenn keine Updates anstehen 😉 Auch ist das mit den 5 Min. Verzögerung nicht ganz exakt. Im Script "apt" wird vorher noch der Index für die Paketdatenbank neu aufgebaut (xapian-index) und das kann auch je nach CPU-Leistung locker 2 Min. dauern - also sicherheitshalber 10 Minuten warten.

Und ob und wann das apt-Script korrekt gelaufen ist, kannst du auch kontrollieren: poste bitte mal den Output von

ls -l /var/lib/apt/periodic

2. Ich sehe, du hast Maverick auf einem Laptop (ich habe nur Lucid)! Check und poste doch hier mal die anacrontab:

cat /etc/anacrontab

Dann sehen wir, ob es bei dir auch 5 Minuten sein sollten.

3. Ich habe ähnliche Patches auch gestern bei mir in Lenny (läuft auf meinem NAS) angebracht und dabei gesehen, daß das apt-Script bei Debian wieder anders ist, da wird random_sleep 2x aufgerufen (in Lucid nur 1x). Poste also bitte mal den Output von:

cat /etc/cron.daily/apt | grep random_sleep

4. Es könnte sein, daß dein Laptop den Power-status nicht korrekt meldet. Wenn nämlich nicht erkannt wird, ob er am Ladegerät hängt, tut das apt-Script auch nix. Dazu poste bitte mal den Output von:

on_ac_power ; POWER=$? ; echo $POWER

und zwar in beiden Fällen: a) am Ladegerät, b) auf Batterie

Wenn das alles nicht weiter hilft, muß ich mir deine /etc/cron.daily/apt näher ansehen 😉

Das wird schon,

Ingo

wixp

Avatar von wixp

Anmeldungsdatum:
12. Mai 2005

Beiträge: 19

Wohnort: Erlangen

Hallo Ingo2,

nach einer Woche ungeduldigen Wartens, der Abarbeitung aller deiner Tipps und letztendlich dem Anschluss des Netzteils bekomme ich eine Update-Benachrichtigung ☺ - sage und schreibe 53 Patches! Wenn ich /etc/anacrontab ansehe, müsste eigentlich das apt Skript täglich laufen - tut es aber nicht. Ob jetzt die Benachrichtigung mit dem Netztteil zusammenhängt, kann ich nicht sagen ... Der Batterie-Status (in der Variablen $POWER) scheint auch richtig abgebildet zu werden. Nachfolgend ein paar Debuginfos:

debian@netzbuch:~$ date
Di 7. Dez 20:07:16 CET 2010
debian@netzbuch:~$ sudo cat /var/spool/anacron/cron.daily
[sudo] password for debian: 
20101129
debian@netzbuch:~$ ls -l /var/lib/apt/periodic
insgesamt 0
-rw-r--r-- 1 root root 0 2010-11-13 16:11 update-stamp
-rw-r--r-- 1 root root 0 2010-11-29 22:20 update-success-stamp
debian@netzbuch:~$ on_ac_power ; POWER=$? ; echo $POWER
1
debian@netzbuch:~$ on_ac_power ; POWER=$? ; echo $POWER
0
debian@netzbuch:~$ man on_ac_power
debian@netzbuch:~$ on_ac_power ; POWER=$? ; echo $POWER
0
debian@netzbuch:~$ on_ac_power ; POWER=$? ; echo $POWER
1
debian@netzbuch:~$ cat /etc/cron.daily/apt | grep random_sleep
random_sleep()
# random_sleep
debian@netzbuch:~$ ls -l /var/lib/apt/periodic
insgesamt 0
-rw-r--r-- 1 root root 0 2010-11-13 16:11 update-stamp
-rw-r--r-- 1 root root 0 2010-11-29 22:20 update-success-stamp
debian@netzbuch:~$ ls -l /var/lib/apt/periodic
insgesamt 0
-rw-r--r-- 1 root root 0 2010-12-07 20:28 update-stamp
-rw-r--r-- 1 root root 0 2010-12-07 20:27 update-success-stamp
debian@netzbuch:~$ date
Di 7. Dez 20:30:44 CET 2010
debian@netzbuch:~$ cat /etc/anacrontab 
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# These replace cron's entries
1	5	cron.daily	 nice run-parts --report /etc/cron.daily
7	10	cron.weekly	 nice run-parts --report /etc/cron.weekly
@monthly	15	cron.monthly nice run-parts --report /etc/cron.monthly

debian@netzbuch:~$ 

Ich für meinen Teil werde jetzt mindestens eine Woche wieder warten und das Netzteil _nicht_ im Betrieb einstecken (ist ja auch uncool bei einem Netbook) ...

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Na, das du das alles in Kleinarbeit selbst durcharbeitest, war eigentlich garnicht so vorgesehen - aber Gratulation!

Deshalb jetzt im Nachhinein noch 2 kurze Erklärungen:

a) Die Ausgabe von

on_ac_power ; POWER=$? ; echo $POWER

bedeutet Folgendes:

  • 0 "on ac-power", d.h. hängt am Ladegerät (ist Linux Philosophie: wenn ok/wahr → return 0)

  • 1 "on batterie" d.h. Laptop ist auf Batterie

  • 255 "liefern normale Desktop-PC's" d.h. die keinen Akku haben.

Es kann also schon am Ladegerät gelegen haben.

b) Du hast offenbar nur die Datei '/etc/cron.daily/apt' angepaßt. Das bedeutet: du bekommst nur Updates gemeldet, wenn auch Sicherheits-Updates dabei sind, oder alle 7 Tage.

Wenn du unabhängig davon immer über eventuell verfügbare Updates (egal welcher Art) benachrichtigt werden willst (ich finde das sinnvoll), dann mußt du noch die '/etc/apt/apt.conf.d/50unattended-upgrades' abändern und die 2 Kommentarzeichen (//) in dieser Zeile entfernen:

//	"Ubuntu lucid-updates";

Details s. noch im Wiki.

Viele Grüße, Ingo

wixp

Avatar von wixp

Anmeldungsdatum:
12. Mai 2005

Beiträge: 19

Wohnort: Erlangen

Dummerweise hat sich die Datei 50unattended-upgrades bei Maverick geändert - und ich sehe die Stelle nicht, die ich da ändern könnte. Ausserdem sollte das Verhalten doch wohl über das entsprechende GUI konfigurierbar sein, oder?!

debian@netzbuch:~$ cat  /etc/apt/apt.conf.d/50unattended-upgrades
// Automatically upgrade packages from these (origin, archive) pairs
Unattended-Upgrade::Allowed-Origins {
	"${distro_id} stable";
	"${distro_id} ${distro_codename}-security";
	"${distro_id} ${distro_codename}-updates";
//	"${distro_id} ${distro_codename}-proposed-updates";
};

// List of packages to not update
Unattended-Upgrade::Package-Blacklist {
//	"vim";
//	"libc6";
//	"libc6-dev";
//	"libc6-i686";
};

// 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. The package 'mailx'
// must be installed or anything that provides /usr/bin/mail.
//Unattended-Upgrade::Mail "root@localhost";

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

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


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

Und tatsächlich ist Zeile 5 auch so gestaltet, wie ich es im GUI konfiguriert habe (ich will sofort benachrichtigt werden und nicht nur bei Security Updates).

Antworten |