Connaitre toutes les execution d'une commande

xunil2003 Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   -  
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je voudrais savoir toutes les exécutions effectuer d'une commande situé dans :
/usr/bin/cm15

Y a t'il un moyen de savoir toutes les commande executer via
/usr/bin/cm15
genre comme un log ?

Es-ce que les système linux peut récupérer les commande exécuter et les mettre dans un fichier texte ?

Merci.

A voir également:

4 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
regarder du côté de l'accounting : https://linux-attitude.fr/post/process-accounting
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Qu'entends-tu par "toutes les exécutions effectuer d'une commande " ?
Connaître les appels système effectués par le binaire ?

Si c'est le cas , dirige-toi vers strace
Un exemple: rechercher tous les essaisd'ouverture de la commande mdir n:
johand@osiris: ~/tmp $ strace -o mdir.log mdir n: 
 Volume in drive N is ARCHOS 2    
 Volume Serial Number is E86A-0002 
Directory for N:/ 

PHOTO        <DIR>     1980-00-00   0:00  
MUSIC        <DIR>     2012-05-11  18:12  
VIDEO        <DIR>     1980-00-00   0:00  
RECORD       <DIR>     1980-00-00   0:00  
        4 files          11 663 312 bytes 
                     15 732 834 304 bytes free 

johand@osiris: ~/tmp $ grep open mdir.log  
open("/etc/ld.so.cache", O_RDONLY)      = 3 
open("/lib/x86_64-linux-gnu/libnsl.so.1", O_RDONLY) = 3 
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3 
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3 
open("/etc/mtools.conf", O_RDONLY)      = 3 
open("/etc/default/mtools.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 
open("/etc/mtools.conf", O_RDONLY)      = 3 
open("/home/johand/.mtoolsrc", O_RDONLY) = -1 ENOENT (No such file or directory) 
open("/dev/disk/by-uuid/E86A-0002", O_RDONLY|O_EXCL) = 3 
open("/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 4 
open("/usr/lib/x86_64-linux-gnu/gconv/IBM850.so", O_RDONLY) = 4 
open("/etc/localtime", O_RDONLY)


Donc: man 1 strace
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
0
xunil2003 Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonsoir,

C'est pour un projet.
J'ai besoin de récupèrer toutes les exécution qui ont était réalisé avec la commande
cm15
situé dans
/usr/bin/


Exemple : si un utilisateur tape :
cm15 A1 on
cm15 E1 off
cm15 P16 on

uniquement pour cette commande, je veux pouvoir le voir dans un fichier log
du genre :

03-06-2012 - 07:16:47 - cm15 A1 on
03-06-2012 - 16:16:47 - cm15 E1 off
03-06-2012 - 18:16:47 - cm15 P16 on


la question est comment faire ?

Merci.
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Ecris un script du genre :
johand@osiris: ~/tmp $ cat ls-log.sh    
#!/bin/bash   
CMD=/bin/ls   
LOGFILE=/home/johand/log/$(basename $CMD ).log   
NOW=$(date)
# ou plus rapide  NOW=$(printf '%(%x %X)T' -1)
# puisque printf est une commande interne de bash

cat >> $LOGFILE <<LOGITEM   
$NOW: $@   
LOGITEM   

exec $CMD $@   
johand@osiris: ~/tmp $ cat ls-log.sh    
#!/bin/bash   
CMD=/bin/ls   
LOGFILE=/home/johand/log/$(basename $CMD ).log   
NOW=$(date)   

cat >> $LOGFILE <<LOGITEM   
$NOW: $@   
LOGITEM   

exec $CMD $@   
johand@osiris: ~/tmp $ ./ls-log.sh /tmp /usr > /dev/null    
johand@osiris: ~/tmp $ cat ~/log/ls.log    
dimanche 3 juin 2012, 20:45:11 (UTC+0200): /tmp /usr


Evidemment, si tu possèdes les sources du binaire, rien ne t'empêche d'ajouter une fonction de journalisation.

Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
0