View previous topic :: View next topic |
Author |
Message |
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Sun Oct 08, 2006 10:47 am Post subject: [script] portage-sync, lastlog, GSLA & co |
|
|
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.
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 :
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 |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Mon Oct 09, 2006 9:06 am Post subject: |
|
|
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 . 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 |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Thu Oct 12, 2006 7:22 am Post subject: |
|
|
MickTux wrote: | echo "A problem occurred when trying to sync portage tree. Aborting. C'est balo" |
_________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
PabOu Veteran
Joined: 11 Feb 2004 Posts: 1088 Location: Hélécine - Belgium
|
Posted: Thu Oct 12, 2006 9:07 am Post subject: |
|
|
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 |
|
|
PabOu Veteran
Joined: 11 Feb 2004 Posts: 1088 Location: Hélécine - Belgium
|
Posted: Thu Oct 12, 2006 12:30 pm Post subject: |
|
|
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 |
|
|
PabOu Veteran
Joined: 11 Feb 2004 Posts: 1088 Location: Hélécine - Belgium
|
Posted: Thu Oct 19, 2006 3:15 pm Post subject: |
|
|
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 |
|
|
_Seth_ Guru
Joined: 15 Sep 2004 Posts: 539 Location: encore paumé dans un labo ;)
|
Posted: Fri May 04, 2007 1:31 pm Post subject: |
|
|
Salut,
Je fais un peu de jardinage (je déterre ) 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 |
|
|
Oupsman Veteran
Joined: 19 Jul 2004 Posts: 1042
|
Posted: Fri May 04, 2007 5:53 pm Post subject: |
|
|
_Seth_ wrote: | Salut,
Je fais un peu de jardinage (je déterre ) 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 |
|
|
_Seth_ Guru
Joined: 15 Sep 2004 Posts: 539 Location: encore paumé dans un labo ;)
|
Posted: Sat May 05, 2007 1:27 pm Post subject: |
|
|
Oupsman wrote: | Par défaut, les démons cron envoient à l'utilisateur la stdout du script executé en crontab. |
Effectivement, en cherchant bien :
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 |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Wed Mar 11, 2009 5:51 pm Post subject: |
|
|
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 |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Thu Mar 12, 2009 11:13 am Post subject: |
|
|
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 |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Tue Mar 17, 2009 10:32 am Post subject: |
|
|
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 |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Wed Mar 18, 2009 8:06 am Post subject: |
|
|
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 |
|
|
|
|
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
|
|