Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[script] portage-sync, lastlog, GSLA & co
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1894
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Sun Oct 08, 2006 10:47 am    Post subject: [script] portage-sync, lastlog, GSLA & co Reply with quote

Bonjour,

Pas mal de récriminations au sujet de Gentoo portent sur le fait que les mises à jour du système sont incessantes (oui, c'est vrai), et qu'il faut passer son temps à recompiler son système (non, c'est faux). Alors je me suis attelé à la tâche de créer un petit script qui prévient l'utilisateur lorsqu'il faut mettre à jour, entre autres...

1. Configurer le mailer.

NB : si vous avez déjà un mailer fonctionnel sur votre machine, inutile de suivre cette étape.

portage-sync.sh, le script en question, est lancé tous les jours (idéalement), et le résultat des commandes est envoyé par mail à une adresse de votre choix, via ssmtp (issu du projet Debian, merci à la communauté). ssmtp est une sorte de sendmail, en version ultra-light. Vous pouvez trouver un HOWTO détaillé sur ce même forum (en anglais). Pour nos besoins, il n'est pas vraiment nécessaire de faire une configuration de-la-mort.
Code:
emerge ssmtp

Puis, dans le fichier /etc/ssmtp/ssmtp.conf, renseignez les 2 champs suivants (en remplaçant par vos propres paramètres, évidemment) :
Code:
root=anigel@mon_fai.com
mailhub=serveur_smtp_de.mon_fai.com


Pour la cosmétique, on peut aussi renseigner la directive suivante :
Code:
rewriteDomain=votre_choix.com

Remplacez votre_choix.com par le nom qui vous plaira, et les mails que vous recevrez sembleront venir de root@votre_choix.com

Enfin, un petit test s'impose :
Code:
cat /etc/ssmtp/ssmtp.conf | mail -s "test ssmtp" anigel@mon_fai.com

Quelques secondes plus tard, vous devriez avoir dans votre boite aux lettres le fichier de configuration de ssmtp, que vous venez de configurer avec succès ;) ! Passons à la suite.

2. Le démon cron

Avant de mettre en place le script proprement dit, vérifiez que vous avez bien un démon cron qui fonctionne. Il s'agit d'un programme chargé d'exécuter des commandes à intervalle régulier. Personnellement, pour mon usage domestique, j'utilise sys-process/dcron. Vous trouverez plus de renseignements sur l'installation et l'utilisation de cron dans la doc gentoo (version française ici).

3. Mettre le script en place

Code:
mkdir /root/bin
wget http://www.neskaya.free.fr/files/gentoo/scripts/portage-sync.sh -O /root/bin/portage-sync.sh
chmod 700 /root/bin/portage-sync.sh


Vous pouvez jeter un oeil au contenu du script, afin de commenter / décommenter certains "modules" (des blocs de commande, en fait), ou de changer les options des commandes lancées (voir la série de *_CMD en début de fichier).

Un petit test s'impose, pour s'assurer que tout fonctionne bien chez vous :
Code:
/root/bin/portage-sync.sh


Enfin, en root, mettez ce script dans votre crontab, afin qu'il s'exécute tout seul comme un grand :
Code:
crontab -e

Ajoutez en fin de fichier la ligne suivante, qui lancera le script tous les jours, à 06:53 précises :
Code:
53 6 * * * /root/bin/portage-sync.sh


Et voilà, vous disposez maintenant d'un outil qui vous donnera, au jour le jour, la liste des updates disponibles pour votre système, avec, surtout, une liste séparée, et cliquable, pour les failles de sécurité affectant votre système. C'est tout simple, sans prétentions, mais ça facilite la vie de votre serviteur depuis quelques mois déjà ;) !

PS : Comme d'hab, n'hésitez pas à corriger / commenter, et même à ajouter vos petit "modules" au script. Merci dans ce dernier cas de préciser si vous m'autorisez à les ajouter au script "de base" ou non.
_________________
Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres.
Back to top
View user's profile Send private message
Mickael
Advocate
Advocate


Joined: 05 Sep 2005
Posts: 2387
Location: ~Belfort! - France - EU

PostPosted: Mon Oct 09, 2006 9:06 am    Post subject: Reply with quote

Merci Anigel pour ton boulot. Je le testerai dans les jours à venir, et regarder comment y intégrer le update de eix, en remplaçant SYNC_CMD="emerge --sync --quiet" par SYNC_CMD="eix-sync et les options qui vont bien" sans oublier de remplacer les variables emerge sync dans le reste du script :idea: . Oui je sais cela fait pense bête au milieu d'un post, et alors??

Encore merci.

Je crois qu'il n'y que cela à changer dans les boucles :
Quote:

# emerge --sync module ---> update-eix non c'est eix-sync!!
separator "Portage tree synchronization"
${SYNC_CMD} ---> n'oubliez pas de remplacer SYNC_CMD au début du script d'anigel
echo -n "${SYNC_CMD} : "
if [ $? = 0 ] ; then
echo "OK"
else
echo "A problem occurred when trying to sync portage tree. Aborting. C'est balo"
exit 1
fi


EDIT : tu rajoutes ce que tu veux au script ani, sauf ce qui est faux.

_________________
À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo
Back to top
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1894
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Thu Oct 12, 2006 7:22 am    Post subject: Reply with quote

MickTux wrote:
echo "A problem occurred when trying to sync portage tree. Aborting. C'est balo"

:lol:
_________________
Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres.
Back to top
View user's profile Send private message
PabOu
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1088
Location: Hélécine - Belgium

PostPosted: Thu Oct 12, 2006 9:07 am    Post subject: Reply with quote

yop :)

j'ai deux petits soucis :
1)
Code:
root@framboise ~ # cat /etc/ssmtp/ssmtp.conf | mail -s "test ssmtp" pabou@swing.be
bash: mail: command not found

Pourrais-t-on me faire un qfile mail ? siouplait ?

2) j'aimerais envoyer ces emails sur le serveur smtp de mon FAI qui n'accepte que les connexions avec un user/pass.
J'ai trouvé les lignes suivantes à mettre dans le fichier .conf, est-ce que c'est ce qu'il me faut ?
Quote:
# auth user must be your remote email username
AuthUser=<username>

# AuthPass must be your remote email password
AuthPass=<password>

_________________
Mangez du poulet !
Back to top
View user's profile Send private message
PabOu
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1088
Location: Hélécine - Belgium

PostPosted: Thu Oct 12, 2006 12:30 pm    Post subject: Reply with quote

PabOu wrote:
Code:
root@framboise ~ # cat /etc/ssmtp/ssmtp.conf | mail -s "test ssmtp" pabou@swing.be
bash: mail: command not found

Pourrais-t-on me faire un qfile mail ? siouplait ?
Apparement, il faudrait le use flag "mailwrapper" au paquet ssmtp pour construire le binaire "mail". À vérifier.
PabOu wrote:
2) j'aimerais envoyer ces emails sur le serveur smtp de mon FAI qui n'accepte que les connexions avec un user/pass.
J'ai trouvé les lignes suivantes à mettre dans le fichier .conf, est-ce que c'est ce qu'il me faut ?
Quote:
# auth user must be your remote email username
AuthUser=<username>

# AuthPass must be your remote email password
AuthPass=<password>
On dirait que ces lignes sont parfaites. Ne pas oublier un chmod o-r /etc/ssmtp/smtp.conf pour un peu plus de sécurité.


(si je fais des contributions au script, j'autorise tout le monde à les ajouter/modifier/questionner/commenter/refuter)

Euh, je me demande si c'est utile de faire "/sbin/nice emerge" au lieu de "emerge" tout court ? Je sais qu'il existe la variable PORTAGE_NICENESS, mais est-ce que ça fonctionne aussi avec --sync ?
_________________
Mangez du poulet !
Back to top
View user's profile Send private message
PabOu
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1088
Location: Hélécine - Belgium

PostPosted: Thu Oct 19, 2006 3:15 pm    Post subject: Reply with quote

Ajout d'une étape pour layman.

La ligne
Code:
LAYMAN_CMD="layman -S"
est à rajouter parmi les commandes au début du script.

Les lignes
Code:
# layman -S module
separator "Layman overlays synchronization"
${LAYMAN_CMD}
echo -n "${LAYMAN_CMD} : "
if [ $? = 0 ] ; then
   echo "OK"
else
   echo "A problem occured when trying to sync layman overlays. Aborting."
   exit 1
fi
sont à rajouter après la function "separator" et avant le module "emerge -uDN(pv)" (moi je l'ai mis juste après le emerge --sync et avant le glsa-check)
_________________
Mangez du poulet !
Back to top
View user's profile Send private message
_Seth_
Guru
Guru


Joined: 15 Sep 2004
Posts: 539
Location: encore paumé dans un labo ;)

PostPosted: Fri May 04, 2007 1:31 pm    Post subject: Reply with quote

Salut,
Je fais un peu de jardinage (je déterre :D ) en cette saison et je suis reparti de la base de ton script pour me faire un petit rapport quotidien. Je te remercie beaucoup pour cette utile contribution.
J'ai une petite question, cela dit. Je ne comprends pas du tout comment le système fait pour envoyer un mail ? Je m'explique : ton script exécute une certain nombre de commande et affiche leur résultat. Quand est ce que le mail est envoyé ? Je n'ai vu nulle part dans le script d'occurence de "mail" ou de "sendmail", idem pour la ligne du cron... et pourtant ce matin, j'ai bien reçu le mail-qui-va-bien :?:
Encore merci !
_________________
no tears to cry, no feelings left
the species has amused itself to death
amused itself to death
Back to top
View user's profile Send private message
Oupsman
Veteran
Veteran


Joined: 19 Jul 2004
Posts: 1042

PostPosted: Fri May 04, 2007 5:53 pm    Post subject: Reply with quote

_Seth_ wrote:
Salut,
Je fais un peu de jardinage (je déterre :D ) en cette saison et je suis reparti de la base de ton script pour me faire un petit rapport quotidien. Je te remercie beaucoup pour cette utile contribution.
J'ai une petite question, cela dit. Je ne comprends pas du tout comment le système fait pour envoyer un mail ? Je m'explique : ton script exécute une certain nombre de commande et affiche leur résultat. Quand est ce que le mail est envoyé ? Je n'ai vu nulle part dans le script d'occurence de "mail" ou de "sendmail", idem pour la ligne du cron... et pourtant ce matin, j'ai bien reçu le mail-qui-va-bien :?:
Encore merci !


Par défaut, les démons cron envoient à l'utilisateur la stdin du script executé en crontab.
_________________
--
L'idéal de nouveauté semble avoir remplacé l'idéal de progrès. C'est bien triste.

----
Unix philosophy: "Do one thing and do it well."
systemd: "Try to do everything and do it wrong."
Back to top
View user's profile Send private message
_Seth_
Guru
Guru


Joined: 15 Sep 2004
Posts: 539
Location: encore paumé dans un labo ;)

PostPosted: Sat May 05, 2007 1:27 pm    Post subject: Reply with quote

Oupsman wrote:
Par défaut, les démons cron envoient à l'utilisateur la stdout du script executé en crontab.


Effectivement, en cherchant bien :
Code:
man 5 crontab

Bon j'ai encore pas mal à apprendre sur les MTA & leur utilisation...

Merc beaucoup.
_________________
no tears to cry, no feelings left
the species has amused itself to death
amused itself to death
Back to top
View user's profile Send private message
Mickael
Advocate
Advocate


Joined: 05 Sep 2005
Posts: 2387
Location: ~Belfort! - France - EU

PostPosted: Wed Mar 11, 2009 5:51 pm    Post subject: Reply with quote

D'après la remarque de Pabou sur le binaire mail, il faudrait le usealg mailwrapper, mais mon petit soucis c'est que ce flag ne semble pas existé ?
Quote:
eix -s ssmtp
[I] mail-mta/ssmtp
Available versions: 2.61-r2 2.62-r3 2.62-r4 (~)2.62-r6 {ipv6 mailwrapper maxsysuid md5sum ssl}
Installed versions: 2.62-r6(08:55:04 25/02/2009)(ipv6 ssl -maxsysuid -md5sum)
Homepage: ftp://ftp.debian.org/debian/pool/main/s/ssmtp/
Description: Extremely simple MTA to get mail off the system to a Mailhub

Quote:
emerge -pv ssmtp

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] mail-mta/ssmtp-2.62-r6 USE="ipv6 ssl -maxsysuid -md5sum" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

hop disparu, what happened?

EDIT : j'ai un début de piste :
Quote:
equery belongs mailq
[ Searching for file(s) mailq in *... ]
mail-mta/ssmtp-2.62-r6 (/usr/bin/mailq -> /usr/sbin/ssmtp)

EDIT' ha ben non...

_________________
À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo
Back to top
View user's profile Send private message
Mickael
Advocate
Advocate


Joined: 05 Sep 2005
Posts: 2387
Location: ~Belfort! - France - EU

PostPosted: Thu Mar 12, 2009 11:13 am    Post subject: Reply with quote

Humm.. je vais surement passer pour un con mais je ne vois pas dans le script l'utilisation de ssmtp.... il est ou le schimilimiblick...

et puisj' faire un lien symbolique entre sendmail et ssmtp pour avoir une commende mail?
Code:
/usr/bin/sendmail
/usr/lib/sendmail
/usr/sbin/sendmail


et oui vous l'aurez compris, je ne comprends rien au réseau..

EDIT : deux infos :
Quote:
ls -l /usr/sbin/sendmail
lrwxrwxrwx 1 root root 15 févr. 25 08:55 /usr/sbin/sendmail -> /usr/sbin/ssmtp*

Quote:
ls -l /usr/bin/sendmail
lrwxrwxrwx 1 root root 15 févr. 25 08:55 /usr/bin/sendmail -> /usr/sbin/ssmtp*

Code:
locate sendmail
/usr/bin/sendmail
/usr/lib/sendmail
/usr/sbin/sendmail

EDIT 2 : En progrès mailx :
Code:
 mail-client/mailx
     Available versions:  8.1.2.20040524-r1 (~)8.1.2.20050715 8.1.2.20050715-r1
     Homepage:            http://www.debian.org/
     Description:         The /bin/mail program, which is used to send mail via shell scripts

_________________
À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo
Back to top
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1894
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Tue Mar 17, 2009 10:32 am    Post subject: Reply with quote

Bonjour,

Mickael wrote:
D'après la remarque de Pabou sur le binaire mail, il faudrait le usealg mailwrapper, mais mon petit soucis c'est que ce flag ne semble pas existé ?


Je ne m'en suis jamais trop soucié : j'installe simplement directement le paquet mail-client/mailx. Tout est inclus dedans.

Mickael wrote:
Humm.. je vais surement passer pour un con mais je ne vois pas dans le script l'utilisation de ssmtp.... il est ou le schimilimiblick...


Il n'y a pas de questions idiotes ;). Explications : sur les systèmes UNIX depuis que l'email existe, on utilise comme MTA (Mail Transport Agent : le programme qui transporte les mails) un truc nommé sendmail. C'est fiable, mais horriblement compliqué à configurer (et encore, c'est rien de le dire !). Ce MTA (ou un autre, car aujourd'hui il en existe d'autres : postfix et exim par exemple) est installé chez ton FAI, et c'est ce serveur que tu désigne dans ton client mail sous le nom "SMTP server". Ton client mail contacte alors ce serveur, et lui confie l'acheminement du message. SSMTP n'est en fait qu'un intermédiaire entre ton système et le serveur de mail de ton FAI : plutôt que de configurer chaque soft chez toi et de leur déclarer ton FAI, tu leur fais croire à tous que tu as installé un MTA chez toi, et tu configure seulement SSMTP pour qu'il sous-traite la gestion de tes mails au serveur de ton FAI. Si tu change de FAI, tu as une seule ligne à changer pour que tout fonctionne ;). Simple question de soupleté ;).

Mickael wrote:
et puisj' faire un lien symbolique entre sendmail et ssmtp pour avoir une commende mail?


A la lumière de l'explication ci-dessus : non. la commande mail n'est ni plus ni moins qu'un thunderbird primitif (MUA : Mail User Agent). sendmail est un MTA en revanche. L'un est client, l'autre serveur.

Mickael wrote:
et oui vous l'aurez compris, je ne comprends rien au réseau..


C'est pas compliqué, suffit d'avoir l'explication ;).

Mickael wrote:
EDIT 2 : En progrès mailx :
Code:
 mail-client/mailx
     Available versions:  8.1.2.20040524-r1 (~)8.1.2.20050715 8.1.2.20050715-r1
     Homepage:            http://www.debian.org/
     Description:         The /bin/mail program, which is used to send mail via shell scripts


Ben tu vois ;).
_________________
Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres.
Back to top
View user's profile Send private message
Mickael
Advocate
Advocate


Joined: 05 Sep 2005
Posts: 2387
Location: ~Belfort! - France - EU

PostPosted: Wed Mar 18, 2009 8:06 am    Post subject: Reply with quote

Merci !
_________________
À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum