Puncte:1

Salvarea datei în fișierul istoric bash real

drapel mx

Când adăugați „HISTTIMEFORMAT” la bashrc, marcajele de timp ale momentului în care a fost executată o comandă sunt disponibile atunci când rulați comanda „history”.

Dar marcajele temporale în sine nu sunt salvate în fișierul bash_history (cel puțin nu în text simplu).

Caut o soluție care să scrie marcajul de timp în fișierul în sine, astfel încât fișierele arhivate .bash_history de la diferite stații de lucru să poată fi vizualizate într-un editor în afara spațiului utilizator și să conțină în continuare marcajele de timp ale când au fost executate comenzile.

Dacă marcajele de timp sunt salvate în fișierul istoric în sine, dar pur și simplu nu pot fi vizualizate într-un editor la deschiderea fișierului bash_history și este totuși posibil să vizualizați aceste marcaje de timp utilizând comanda istorică în sine într-un fișier istoric bash necinstiți, atunci ar fi, de asemenea, suficient.

Mulțumiri

drapel fo
Doar adăugarea variabilei la bashrc nu este suficientă: trebuie să obțineți sursa bashrc în fiecare dintre shell-urile deschise pentru a „activa” variabila.
drapel fo
Și fișierul istoric este scris/adăugat doar atunci când un shell iese.
Puncte:1
drapel lb

Acesta este un exemplu de istoric bash ( când utilizați HISTTIMEFORMAT )

#1625963751
somn 45 ; ssh proxy.lan

numarul 1625963751 este marcajul de timp Unix ( https://en.wikipedia.org/wiki/Unix_time ) .

dacă utilizați Linux, data are o opțiune pentru a afișa această dată în formă umană.

em444$ data -d @1625963751
Sâmbătă, 10 iulie 20:35:51 EDT 2021
OB7DEV avatar
drapel mx
Cum atașez marcajul de timp Unix la fiecare comandă dintr-un fișier bash? Când deschid vechile istorice bash pe care le am, nu există un #număr deasupra fiecărei comenzi, așa cum este în exemplul tău. Deschiderea unui fișier bash_history în vim oferă doar o listă de comenzi. Fiecare linie este o comandă, nu există marcaje de timp deasupra fiecărei linii.
EchoMike444 avatar
drapel lb
dacă nu utilizați HISTTIMEFORMAT, nu veți avea marca temporală.
Puncte:0
drapel vn

Editați | × /etc/bashrc și adăugați această linie în partea de jos:

PROMPT_COMMAND="echo `data +'%F %H:%M'` `whoami` `istory|tail -1` >> ~/history.txt; $PROMPT_COMMAND"

Nu sunt sigur dacă te schimbi ~ la rădăcină, \root\history.txt poate fi încă accesibil tuturor utilizatorilor.

Gerard H. Pille avatar
drapel in
\root\history.txt ???
George Y avatar
drapel vn
`~/history.txt` înseamnă fișierul `history.txt` din directorul principal al utilizatorului curent. `/root/history.txt` înseamnă fișierul din directorul rădăcină. Presupun că doriți să salvați comenzile istorice într-un anumit fișier dacă doriți un marcaj de timp pentru fiecare comandă.
Gerard H. Pille avatar
drapel in
Doar că barele oblice inverse au un înțeles diferit pe Unix. În afară de asta, „istoria -1” poate fi mai ieftină decât trecerea prin coadă.
OB7DEV avatar
drapel mx
Se pare că nu pot obține rezultatul history|tail -1 atașat la history.txt. Totuși, restul comenzii funcționează. Deci history.txt-ul meu are dată, utilizator, dar nicio comandă...
Puncte:0
drapel vn

export HISTTIMEFORMAT='(%Y-%m-%d) (%H:%M:%S) ' Încercați această linie.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.