2

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

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

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

4

1 回答 1

2

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

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

于 2012-05-19T10:45:55.990 回答