Liste historique des scripts exécutés sur une machine Linux
0
Je m'attends à ce que ce soit un voeu pieux mais mon travail (serveur Linux) contient beaucoup de scripts pas très bien organisés. Je suis nouveau sur Linux, existe-t-il une liste historique des scripts récemment exécutés?
Géré par un utilisateur ou par le système? Et si par un utilisateur, le compte est-il partagé par les administrateurs du serveur?
Alessandro Dotti Contra
Vous pouvez suivre le syslog et voir ce qui se passe régulièrement. Et il y a des chances que les scripts soient exécutés dans le cadre d'un cronjob et qu'il existe des scripts capables d'analyser les tâches cron dans le système, de sorte que vous puissiez voir ce qui se passe. pourrait courir quand et où. Mais cela ne prend pas en compte les scripts susceptibles, par exemple, d’être exécutés par un non-utilisateur ou par une tâche dont vous n’êtes pas au courant.
JakeGould
Réponses:
0
le history La commande listera les commandes exécutées par un utilisateur donné, ce qui devrait inclure tous les scripts exécutés.
dans bash la history commande est une commande intégrée du shell (voir man bash ou help history en courant bash ) la variable d'environnement HISTFILE, si défini, spécifie l'emplacement de la liste d'historique; si non défini, une valeur par défaut intégrée est utilisée ( $HOME/.bash_history sur mon système). history lui-même ne vous montrera pas l'historique des autres utilisateurs, mais vous pourrez inspecter leur /home/otheruser/.bash_history fichier si c'est lisible.
quixotic
0
Je ne sais pas pourquoi Hardillb a été rejeté, il a raison. Vérifiez la commande .bash_history ou history. Si vous avez la racine, consultez l'historique des autres utilisateurs. Vous pouvez utiliser last pour voir quel utilisateur s'est connecté, quand et consulter l'historique de cet utilisateur. Cela ne va pas aider avec les commandes système cron.
A sa réponse, j'ajouterai:
Utilisation find ./ type -f -atime -7 -iname "*.sh" (ou * .pl, ou toute autre extension de script à laquelle vous pouvez penser.). Cela vous indiquera les fichiers qui ont été consultés au cours de la dernière 7 jours en fonction de la valeur de temps d'accès FS. Cela ne fonctionnera pas si le système de fichiers a été monté avec noatime.
Vérifiez / var / log / cronlog ou syslog s'il n'enregistre pas les événements cron.
Si vous ajoutez -executable à cette commande de recherche ci-dessus, au lieu de chercher " .sh "ou" .pl ", alors il devrait trouver les fichiers avec un bit exécutable auxquels on a accédé en 7 jours. Tous les scripts n’étant pas exécutables, l’option -iname est également utile.
La liste fournie par "find" ne sera pas triée par le temps d'accès, mais vous pouvez la pseudo-accomplir en testant avec -1, puis -2, puis -3 ... -7 jours, au moins ils seront regroupés par journée.
syslog
et voir ce qui se passe régulièrement. Et il y a des chances que les scripts soient exécutés dans le cadre d'un cronjob et qu'il existe des scripts capables d'analyser les tâches cron dans le système, de sorte que vous puissiez voir ce qui se passe. pourrait courir quand et où. Mais cela ne prend pas en compte les scripts susceptibles, par exemple, d’être exécutés par un non-utilisateur ou par une tâche dont vous n’êtes pas au courant.Réponses:
le
history
La commande listera les commandes exécutées par un utilisateur donné, ce qui devrait inclure tous les scripts exécutés.la source
bash
lahistory
commande est une commande intégrée du shell (voirman bash
ouhelp history
en courantbash
) la variable d'environnementHISTFILE
, si défini, spécifie l'emplacement de la liste d'historique; si non défini, une valeur par défaut intégrée est utilisée ($HOME/.bash_history
sur mon système).history
lui-même ne vous montrera pas l'historique des autres utilisateurs, mais vous pourrez inspecter leur/home/otheruser/.bash_history
fichier si c'est lisible.Je ne sais pas pourquoi Hardillb a été rejeté, il a raison. Vérifiez la commande .bash_history ou history. Si vous avez la racine, consultez l'historique des autres utilisateurs. Vous pouvez utiliser
last
pour voir quel utilisateur s'est connecté, quand et consulter l'historique de cet utilisateur. Cela ne va pas aider avec les commandes système cron.A sa réponse, j'ajouterai:
find ./ type -f -atime -7 -iname "*.sh"
(ou * .pl, ou toute autre extension de script à laquelle vous pouvez penser.). Cela vous indiquera les fichiers qui ont été consultés au cours de la dernière 7 jours en fonction de la valeur de temps d'accès FS. Cela ne fonctionnera pas si le système de fichiers a été monté avec noatime.-executable
à cette commande de recherche ci-dessus, au lieu de chercher " .sh "ou" .pl ", alors il devrait trouver les fichiers avec un bit exécutable auxquels on a accédé en 7 jours. Tous les scripts n’étant pas exécutables, l’option -iname est également utile.La liste fournie par "find" ne sera pas triée par le temps d'accès, mais vous pouvez la pseudo-accomplir en testant avec -1, puis -2, puis -3 ... -7 jours, au moins ils seront regroupés par journée.
HTH.
la source