bash - UNIX 中具有正确时间戳的命令历史记录

标签 bash unix ssh history timestamp

我想安排一个程序来显示远程计算机的历史记录并将其存储在带有时间戳的本地计算机的文件中(即何时执行了哪些命令) 我使用的代码是这样的:

ssh -i private_key user@ip 'export HISTTIMEFORMAT=\"%D-%T \" ; \
                            export HISTFILE=/home/$user/.bash_history; \
                            set -o history; history' > myfile.txt

但是它没有给出正确的时间戳,而是将当前时间放在每个命令的前面。因此,如果调度程序在 9 点钟运行,则每个命令的时间戳都是 9 点钟。 我哪里出错了?

最佳答案

如果在 session 中未设置 BASHTIMEFORMAT,则计时信息不会保存到历史文件中(否则会在其中保存为注释)。

因此,除非您尝试登录的用户在他/她的环境中具有该信息,否则您将无法获得计时信息。它根本没有记录,因此无法检索。

关于bash - UNIX 中具有正确时间戳的命令历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10664297/

相关文章:

linux - 动态间接 Bash 数组

go - 如何发送多个命令但单独保存输出

php - 如何使用 drush.ini 文件代替全局 php.ini 文件 - Drush

ubuntu - 如何将ssh指向配置文件

python - vim 和 wc 给出不同的行数

linux - Bash 脚本如果 elif elif 不工作

c - 如何使用 GETOPT 在每个命令行选项后获取指向每个参数的指针

c++ - 一种为在 bash 中调用的程序提供参数的方法

bash - 从文件生成频率表

c - 如果客户端无法应对(buffer++),如何停止写入套接字(AF_LOCAL/UNIX、SOCK_STREAM)?