En gros, je veux obtenir un enregistrement de toutes les commandes exécutées sur mon serveur ssh, avec leurs temps. Les codes que j'ai essayés sont:
ssh user@ip 'export HISTFILE=~/.bash_history; set -o history; history'
J'ai toutes les commandes, mais je n'ai pas d'horodatage avec ce qui est attendu, je suppose.
Lorsque je me connecte pour la première fois, puis que j'utilise la commande history, j'obtiens tous les détails, y compris la date et l'heure. Je voudrais obtenir tous les détails lorsque j'utilise la commande history avec ssh. Comment dois-je m'y prendre? OH oui, et si possible, j'aimerais obtenir l'historique sans avoir besoin d'exporter HISTFILE. (SI POSSIBLE) L' installation de packages n'est pas une option.
Réponses:
Deux choses:
Vous devez également exporter par exemple
pour définir les heures de l'historique des commandes d'affichage.
Si vous n'avez pas défini la
HISTTIMEFORMAT
variable d'environnement lors de l'utilisation d'une session, les temps de commande ne seront pas enregistrés et vous ne pourrez bien sûr pas les voir. Par défaut, l'heure actuelle sera imprimée comme heure de commande pour chaque commande dépourvue d'indicateur d'heure.Si vous consultez le
~/.bash_history
fichier, vous pouvez voir si vous avez activé l'horodatage pour les sessions. Chaque ligne commencera alors par un#
suivi de l' heure de la commande suivante.la source
grep -v "^#"
pour supprimer toutes les lignes commençant par un#
(si vous souhaitez supprimer une ligne complète). C’est le champ d’horodatage de l’époque, comme je l’ai décrit dans mon message.Si vous connaissez le shell
bash
et le fichier d'historique comme.bash_history
une simple récupération, cela devrait suffire.scp user@ip:.bash_history .
Pour les données de temps,
.bash_history
fichier transportera des informations de temps à partir des données d’historique de toutes les sessions exécutées avec unHISTTIMEFORMAT
ordinateur configuré.HISTTIMEFORMAT
configuration à tout moment.bash profile
pour ces connexions d’utilisateur distant avec leexport HISTTIMEFORMAT='some format'
, il vous suffit de tirer le.bash_history
fichier..bash_history
dans un premier temps); il est perdu à la fin de chaque session et seule la liste de commandes est enregistréeJ'espère que le dernier point clarifie la faisabilité d'obtenir des données de temps.
La bonne nouvelle est que, si vous pouvez voir les données horaires des sessions précédentes lorsque vous vous connectez, elles sont configurées et vous n'avez besoin d'aucun changement. Sinon, il suffit d'insérer le
export
dans l'bash profile
installation - aucune installation requise.ps: Je suggère que si votre question porte sur la
bash
coque, vous l'ajoutez sous forme de tag.la source