Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 25-03-2016 10:18:29

Severian
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 4.6.0-0.bpo.1-amd64
(G)UI : Openbox 3.6.1-2
Inscription : 13-12-2014

script de mises à jours

bonjour

pour "me simplifier la vie et celle de mon pc" je veux mettre en place une script pour rechercher les mises à jours (oui c'est réinventer la roue, mais je n'ai pas envis de dépendre de l'usine à gaz qu'est packagekit)
en plus ça me permet de mieux comprendre comment fonctionne systemd et ses nouvelles possibilitées tongue

le script en lui même est assez simple
il est placé dans /usr/local/bin/

#!/bin/bash
apt-get update -qq
if [ `aptitude search ~U | wc -l` -ne 0 ]
then
sudo -u **utilisateur** DISPLAY=:0 notyfy-send "Mises à jours dispo" "`aptitude search ~U`"
fi



pour démarrer ce script je mets en place un service systemd
nmaj.service

[Unit]
Description=Mise à jour systeme
OnFailure=status-email-root@%n.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/nmaj

[Install]
WantedBy=default.target



et un .timer
nmaj.timer

[Unit]
Description=Timer de mise à jour système

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=multi-user.target



tout va bien dans le meilleur des monde, quand le système fonctionne dans le meilleur des monde... tongue
mais voila, le meilleur des monde n'est pas pour maintenant...
donc je vois plusieurs soucis
1- au niveau du script, je dois récupérer l'user pour envoyer la notification à l'utilisateur connecté
2- au niveau du timer je dois vérifier que ma conexion internet soit bien active
    si non, retarder ou redémarer le timer quand la conexion sera active (conexion par network-manager)
3- toujours au niveau timer, je dois attendre que l'utilisateur soit connecté, sinon la notification se perd

pistes possibles:
- remplacer la notification par un mail système (peut être plus sûre comme solution)
- placer un icône dans le systray (mais ça je ne sais pas comment faire)

voila je suis bloqué à ce niveau (bon ça fonctionne, mais ce n'est pas propre et ça plante souvant)
si vous avez des idées, pour faire avancer l'histoire je vous en serais reconnaissant smile


"il est urgent d'attendre" (bendia)
ob3-debian2-150x50.png

Hors ligne

#2 25-03-2016 22:08:48

Firy
Membre
Distrib. : Debian Jessie 8.3
Noyau : 3.16.0
(G)UI : Openbox
Inscription : 22-01-2016

Re : script de mises à jours

$USER ? Une crontab ?

Hors ligne

#3 25-03-2016 22:28:54

Severian
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 4.6.0-0.bpo.1-amd64
(G)UI : Openbox 3.6.1-2
Inscription : 13-12-2014

Re : script de mises à jours

crontab : non car le but est d'utiliser les timers de systemd pour se substituer à cron
$USER me renvois l'user qui lance la commande, dans le cas présent root et c'est l'utilisateur normal que je veux trouver (ou j'ai raté un truc dans l'utilisation de $USER)

peut être une commande qui fonctionne

who | cut -d' ' -f1 | sort | uniq


ce qui donnerait au niveau du script

#!/bin/bash
utilisateur=`who | cut -d' ' -f1 | sort | uniq`
apt-get update -qq
if [ `aptitude search ~U | wc -l` -ne 0 ]
then
for i in $utilisateur
do
sudo -u $i DISPLAY=:0 notyfy-send "Mises à jours dispo" "`aptitude search ~U`"
done
fi


pas certain du tout neutral

Dernière modification par Severian (25-03-2016 22:39:47)


"il est urgent d'attendre" (bendia)
ob3-debian2-150x50.png

Hors ligne

#4 11-08-2016 11:17:32

tuxmika
Membre
Lieu : 35510 Cesson-Sevigné
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-586
(G)UI : xfce
Inscription : 11-07-2016
Site Web

Re : script de mises à jours

Tu es connecté avec quel compte lorsque tu lances ton script et ta commande $USER?

Lorsque tu lances la commande id, cela te retourne quoi?

Dernière modification par tuxmika (11-08-2016 11:19:35)

Hors ligne

#5 11-08-2016 13:49:16

arpinux
Adhérent(e)
Lieu : @home
Distrib. : Debian Jessie
Noyau : 4.7-amd64
(G)UI : dwm, fluxbox, evilwm, vtwm, spectrwm, pekwm
Inscription : 30-06-2016
Site Web

Re : script de mises à jours

bonjour smile
sur handylinux, comme on ne voulait pas de "packages", on a fait notre propre système de notification/vérification/exécution des mises à jour.
voilà comment on fait :
un fichier de conf apt pour petre sûr que la vérification des dépôts se fasse régulièrement : https://git.framasoft.org/handylinux/de … 02periodic
un lanceur .desktop (https://git.framasoft.org/handylinux/de … er.desktop) appartenant au user qui va mater à chaque ouverture les mises à jour : https://git.framasoft.org/handylinux/de … te-checker notifie le user https://git.framasoft.org/handylinux/de … e-notifier
et lance si besoin est le gestionnaire de mise à jour : https://git.framasoft.org/handylinux/de … de-manager

et si tu es un poil patient, tu auras bientôt le modèle pour dflinux, donc sans les mains bleues tongue

Dernière modification par arpinux (11-08-2016 13:50:29)


minibanner.png minibanner-dflinux.png livedf.png bouton3hg.gif

Hors ligne

#6 11-08-2016 19:47:29

Severian
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 4.6.0-0.bpo.1-amd64
(G)UI : Openbox 3.6.1-2
Inscription : 13-12-2014

Re : script de mises à jours

tuxmika a écrit :

Tu es connecté avec quel compte lorsque tu lances ton script et ta commande $USER?

Lorsque tu lances la commande id, cela te retourne quoi?


c'est un script lancé par systemd avec les droits root (pour vérifier les mises à jours)
le but étant de prévenir l'utilisateur "connecté" sur le pc smile


merci Arpi, je vais regarder ça de plus près smile

par contre à première vue je risque d'avoir des soucis, je n'utilise pas zenity et gksu (disons que dans le cas de gksu c'est la volonté de ne pas avoir de gconf donc rien de gnome tongue)


"il est urgent d'attendre" (bendia)
ob3-debian2-150x50.png

Hors ligne

#7 11-08-2016 19:52:21

arpinux
Adhérent(e)
Lieu : @home
Distrib. : Debian Jessie
Noyau : 4.7-amd64
(G)UI : dwm, fluxbox, evilwm, vtwm, spectrwm, pekwm
Inscription : 30-06-2016
Site Web

Re : script de mises à jours

oki Severian, alors en fait le principe reste efficace :
1 script qui vérifie régulièrement, dans notre cas, un simple fichier de préférence dans apt.conf.d et hop smile
1 vérificateur sous $USER qui lit les mises àjour dispo et au cas ou, te l'annonce.
donc en fait, une fois le fichier de pref en place, un script en notify-send dans ton config/autostart suffirait, pas besoin de cron ou d'admin non ?

minibanner.png minibanner-dflinux.png livedf.png bouton3hg.gif

Hors ligne

#8 13-08-2016 12:49:48

phlinux
Membre
Lieu : S-M
Distrib. : Jessie
Noyau : 4.6
(G)UI : Openbox (+Rox+Feh)
Inscription : 10-05-2009

Re : script de mises à jours

Bjr,
Une mini simplification : "sort -u" pour "sort | uniq"

Pages perso : feh, omegat, udisks, sa station de travail comme passerelle

Hors ligne

#9 13-08-2016 13:57:48

Trefix
Adhérent(e)
Lieu : 48
Distrib. : Jessie "en vrac"
Noyau : Linux 3.16.0-4 / amd64
(G)UI : Xfce
Inscription : 15-02-2015

Re : script de mises à jours

Coucou.
Version n00b, on apprend à taper très rapidement et sans erreur la commande

sudo apt-get update && sudo apt-get upgrade

, on la lance le matin ou le soir selon ses propres habitudes et on n'oublie pas de lire le retour de l'émulateur de terminal AVANT de valider avec la touche Entrée...
C'est très efficace tongue

/me sors en courant big_smile


Ma scolarité informatique ? 3 TP de programmation en DOS, calcu. T.I., 1984 tongue
De HL à DF : facile ! // Les cahiers du débutant

Hors ligne

Pied de page des forums