Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

adresses IP dans fichier log

32 réponses
Avatar
maderios
Bonjour
Je voudrais inscrire dans un fichier log l'historique de mes adresses IP.
Ce doit être possible avec /etc/syslog.conf mais je ne vois pas comment
faire.
Merci pour tout renseignement.
M

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

10 réponses

1 2 3 4
Avatar
Thomas Harding
Yves Rutschle wrote:
La commande shell pour accéder à syslog.



Ouais, et j'ai déjà donné une réponse _avec logger_ dans le fil
(modulo le fait que je n'avais pas pensé à DynDNS, et qu'il faudrait
faire 2 appels: un pour l'IP effective, le second pour DynDNS),
et insisté sur le fait qu'on pouvait ajouter une priorité à syslog pour
ranger les logs dans un fichier particulier.

--
Thomas Harding.
La phobie de la connaissance est spécifique à l'informatique.
Curieusement, c'est le seul métier où le néophyte total vous explique
votre boulot dans la minute suivant votre arrivée au chevet du malade.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
maderios
François TOURDE a écrit :
Le 14075ième jour après Epoch,
écrivait:

Yves Rutschle a écrit :
On Mon, Jul 14, 2008 at 02:02:46PM +0200, Serge Cavailles wrote:
ifconfig ppp0 | grep addr >> /var/log/syslog


Heu, écrire directement dans les fichiers de logs ne me
parait pas une bonne idée, mieux vaut utiliser logger(1)

Y.



Une mauvaise idée, pourquoi ?



Parce que c'est le rôle de klogd et syslogd d'écrire dedans. Ce sont
leurs fichiers, pas les tiens :)

Et puis le fait de demander gentiment à [k|sys]logd de faire le boulot
pour toi permet de rester cohérent avec le reste du fonctionnement du
système.

Qu'est ce que "logger" ?



man logger

C'est l'outil à utiliser pour dire à syslogd d'écrire ce que tu veux
dans la log.




Merci à tous pour les réponses

Toutes les solutions proposées me semblent assez compliquées pour le
simple usager que je suis mais pourquoi pas....

Wait and See...

M

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thomas Harding
maderios wrote:


man logger

C'est l'outil à utiliser pour dire à syslogd d'écrire ce que tu veux
dans la log.




Merci à tous pour les réponses




Toutes les solutions proposées me semblent assez compliquées pour le
simple usager que je suis mais pourquoi pas....


Y'a pas de simple ou de compliqué, le tout est d'y aller pas à pas.


Ben, heu:
logger -p machin.info $message

* envoie le message contenu dan sla variable message avec la
facilité machin et la priorité "info".
* Les priorités sont définies "en dur", par contre les facilités
sont personnalisables dans le/les fichier(s) de conf de ton
serveur de logs.
* Par défaut le démon syslog est intallé sur Debian,
=> fichier /etc/syslog.conf (man 5 syslog.conf)
(on peut lui préférer syslog-ng).


À partir de ça, on fait donc:



ifaces=`/sbin/ifconfig -s | tail -n +2 | cut --delimiter=" " -f1`

Cette ligne:
* exécute ifconfig -s[ummary]
* supprime les 2 premières lignes
* (pour chaque ligne) ne garde que le premier champ, séparateur espace
* met le tout dans la variable ifaces

for iface in $ifaces ; do
details=`/sbin/ifconfig $iface | grep inet |
sed -e 's/[[:space:]]*//'`
logger -p info "$iface $details"
done

Cette ligne:
*pour chaque "iface" de la variable ifaces (séparateur=blanc de
longueur quelconque, défaut dans bash (IFS))
* 1
* exécute ifconfig
* y sélectionne les lignes comportant la chaîne inet
* (pour chaque ligne) supprime (le premier) espace blanc
de longueur quelconque
* place le résultat dans la vraiable "details"
* 2
* exécute logger avec la priorité "info" et le message blabla

Toi y'en a comprendre[1] <g>





[1]il y a un X dans la série BD dont cette inénarrable citation est
extraite. Je ne cite pas le nom de la série ni celui de l'album, ils
sont capables de faire un procès ;)
--
Thomas Harding.
La phobie de la connaissance est spécifique à l'informatique.
Curieusement, c'est le seul métier où le néophyte total vous explique
votre boulot dans la minute suivant votre arrivée au chevet du malade.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
mouss
maderios wrote:
Yves Rutschle a écrit :
On Mon, Jul 14, 2008 at 02:02:46PM +0200, Serge Cavailles wrote:
ifconfig ppp0 | grep addr >> /var/log/syslog



Heu, écrire directement dans les fichiers de logs ne me
parait pas une bonne idée, mieux vaut utiliser logger(1)

Y.



Une mauvaise idée, pourquoi ?




parce que le fichier de log a une syntaxe bien connue. il suffit d'en
regarder un pour s'en rendre compte.

de toute façon, je ne vois pas pourquoi tu veux que l'info aille dans un
fichier de logs. pourquoi ne pas utiliser un fichier spécifique?


Qu'est ce que "logger" ?



c'est "girl" en verlan :)

c'est un programme qui permet d'envoyer des messages vers syslog. ça
fait ce que tu veux, mais la synatxe du fichier de logs reste bonne.
regarde la page de manuel (et pas la page d'intellectuel) pour voir les
options, mais tu peux toujours le lancer sans option du tout. de toute
façon, essaye pour voir.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Thomas Harding a écrit, mardi 15 juillet 2008, à 19:51 :
maderios wrote:


[...]
> Toutes les solutions proposées me semblent assez compliquées pour le
> simple usager que je suis mais pourquoi pas....
Y'a pas de simple ou de compliqué, le tout est d'y aller pas à pas.



[...]
ifaces=`/sbin/ifconfig -s | tail -n +2 | cut --delimiter=" " -f1`

Cette ligne:
* exécute ifconfig -s[ummary]
* supprime les 2 premières lignes



Heu, non, seulement la première :

~ $ for n in {1..4};do echo $n;done|tail -n +2
2
3
4

* (pour chaque ligne) ne garde que le premier champ, séparateur espace
* met le tout dans la variable ifaces



Il vaudrait mieux utiliser "$()" au lieu de `` ; il me semble aussi plus
facile d'utiliser Awk :

/sbin/ifconfig -s | awk 'NR>1{print $1}'

Condition : numéro de ligne supérieur à 1.
{Action} : écrire le premier champ de ces lignes.


Avec Sed aussi c'est simple, mais peut-être moins lisible...

ifaces="$(/sbin/ifconfig -s|sed -e '1d;s/ .*//')"

On supprime la première ligne, puis tout ce qui suit le premier espace.

Au cas où il y aurait parfois une marge à gauche et des espaces divers,
l'équivalent du Awk ci-dessus serait plutôt

sed -e '1d;s/^[[:space:]]*//;s/[[:space:]].*//'


for iface in $ifaces ; do
details=`/sbin/ifconfig $iface | grep inet |
sed -e 's/[[:space:]]*//'`
logger -p info "$iface $details"
done



Grep (sans option avancée) est superflu devant sed :

sed -ne '/inet/s/^[[:space:]]*//p'


[...]
Toi y'en a comprendre[1] <g>





[1]il y a un X dans la série BD dont cette inénarrable citation est
extraite. Je ne cite pas le nom de la série ni celui de l'album, ils
sont capables de faire un procès ;)



Pas Goscinny :/
--
Jacques L'helgoualc'h

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
fra-duf-no-spam
Le 14075ième jour après Epoch,
Yves Rutschle écrivait:

On Tue, Jul 15, 2008 at 01:18:12PM +0200, maderios wrote:
Une mauvaise idée, pourquoi ?



En plus des autres infos déjà données, je ne pense pas que
ta méthode garantisse l'atomicité de l'écriture, c'est à  
dire que ton écriture pourrait se mélanger avec l'écriture
de syslog. Tu aurais alors des lignes coupées au milieu et
mélangées, et donc un log inutile.



Si la taille de son texte est inférieure à "PIPE_BUF", alors son
écriture sera atomique. Mais effectivement c'est tellement mieux de
passer par les outils qui vont bien ;)

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
hého
Jacques L'helgoualc'h a écrit, le 14.07.2008 16:45 :

hého a écrit, lundi 14 juillet 2008, à 14:01 :
maderios a écrit, le 14.07.2008 12:17 :

Je voudrais inscrire dans un fichier log l'historique de mes adresses IP.



wget -q -O - http://checkip.dyndns.org/ | grep "Address:" | cut -d< -f7
| awk '{ print $(NF) }'
(en une ligne)



Le grep est inutile, la réponse aussi est uniligne ;)

wget -q -O - http://checkip.dyndns.org/ | sed -re 's/^.*: ([0-9.]+).*/1/'



d'ac ;)

wget ... | awk -F'[ <]' '{print $(NF-2)}'



là j'ai pas compris le coup du double "field separator"

pourquoi awk prend le $(NF-2) sur "<" et pas sur " " ?

cordialement
hého

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thomas Harding
Jacques L'helgoualc'h wrote:

ifaces=`/sbin/ifconfig -s | tail -n +2 | cut --delimiter=" " -f1`

Cette ligne:
* exécute ifconfig -s[ummary]
* supprime les 2 premières lignes



Heu, non, seulement la première :

~ $ for n in {1..4};do echo $n;done|tail -n +2
2


[..]

Exact : il /affiche à-partir de la 2ème ligne/
Perso, je préfère un sed -e 1d ...

* (pour chaque ligne) ne garde que le premier champ, séparateur espace
* met le tout dans la variable ifaces



Il vaudrait mieux utiliser "$()" au lieu de `` ;



bashisme !


for iface in $ifaces ; do
details=`/sbin/ifconfig $iface | grep inet |
sed -e 's/[[:space:]]*//'`
logger -p info "$iface $details"
done



Grep (sans option avancée) est superflu devant sed :

sed -ne '/inet/s/^[[:space:]]*//p'



Merci pour l'option "n", ça va m'économiser pas mal de tirages de
cheveux dans l'avenir ;)


[...]
Toi y'en a comprendre[1] <g>


[1]il y a un X dans la série BD dont cette inénarrable citation est
extraite. Je ne cite pas le nom de la série ni celui de l'album, ils
sont capables de faire un procès ;)



Pas Goscinny :/



Je ne pense pas que ce fut son style, le pb c'est les ayant-droits.
cf. affaire mobilix (et les autres compagnies).

--
Thomas Harding.
La phobie de la connaissance est spécifique à l'informatique.
Curieusement, c'est le seul métier où le néophyte total vous explique
votre boulot dans la minute suivant votre arrivée au chevet du malade.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
hého a écrit, mardi 15 juillet 2008, à 23:22 :
Jacques L'helgoualc'h a écrit, le 14.07.2008 16:45 :


[...]
> wget -q -O - http://checkip.dyndns.org/ | sed -re 's/^.*: ([0-9.]+).*/1/'
>
d'ac ;)

> wget ... | awk -F'[ <]' '{print $(NF-2)}'
>
là j'ai pas compris le coup du double "field separator"

pourquoi awk prend le $(NF-2) sur "<" et pas sur " " ?



Le « FS » est une regexp, la classe des deux caractères encadrant
l'expression à extraire :

$ wget -q -O - http://checkip.dyndns.org/
<html><head><title>Current IP Check</title></head><body>Current IP Address: 92.129.89.113</body></html>

Comme j'ai la flemme de compter les champs à gauche, je vois à droite
deux "<" et aucun espace (NF = nombre de champs).

J'ai eu de la chance, pas d'espace traînant en fin de ligne, mais il
serait plus sûr d'utiliser -F': |<' ... et en remplaçant $(NF-2) par
$8, c'est encore plus court !

wget -q -O- checkip.dyndns.org|awk -F': |<' '{print$8}'

(il y a un champ $1 vide à gauche du premier "<").

Si tu ne veux pas compter jusqu'à huit,
... | awk -F'Address: |</body' '{print$2}'

cordialement



aussi,
--
Jacques L'helgoualc'h

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Thomas Harding a écrit, mardi 15 juillet 2008, à 23:47 :
Jacques L'helgoualc'h wrote:


[...]
[ tail -n +2]
Exact : il /affiche à-partir de la 2ème ligne/



Ce n'est pas très logique, je m'attends aussi que ce soit « tail -n +0 »
qui ne filtre rien.

[...]
> Il vaudrait mieux utiliser "$()" au lieu de `` ;

bashisme !



Pas seulement :
~ $ zsh -c 'echo "$(uname)"'
Linux
~ $ sh -c 'echo "$(uname)"'
Linux

> [...]
>> Toi y'en a comprendre[1] <g>
>>
>>
>> [1]il y a un X dans la série BD dont cette inénarrable citation est
>> extraite. Je ne cite pas le nom de la série ni celui de l'album, ils
>> sont capables de faire un procès ;)
>
> Pas Goscinny :/

Je ne pense pas que ce fut son style, le pb c'est les ayant-droits.



et leurs avocats.

cf. affaire mobilix (et les autres compagnies).



Oui, c'est lamentable --- Mobilix est aussi le nom d'une filiale danoise
de France Télécom, je ne sais pas s'ils l'ont attaquée ...
--
Jacques L'helgoualc'h

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2 3 4