Sesi BASH shell masuk pada host jarak jauh

8

Apa metode terbaik untuk mencatat sesi BASH shell ke file di mesin host?

Format output yang disukai akan setara dengan pengaturan log "printable output" Putty, seperti yang dilihat oleh pengguna termasuk input dan eksklusif dari data karakter kontrol ncurses.

Andy
sumber
Penasaran ingin tahu shell mana yang Anda gunakan.
dr.pooter

Jawaban:

4

Mungkin layak untuk melihat program audit sistem atau shell seperti rootsh atau sudosh .

gharper
sumber
rootsh ternyata paling dekat dengan apa yang saya inginkan, terima kasih.
Andy
1
Anda juga dapat mempertimbangkan acct / psacct (akuntansi BSD) atau mengintip. Mereka tidak mencatat output, tetapi mereka juga kurang bertele-tele. Lihat: cyberciti.biz/tips/… dan sourceforge.net/projects/snoopylogger
Mircea Vutcovici
The rootshapp sekarang usang dan sudoshtampaknya terawat. Kami menerapkan bungkus sekitar kertas-tipis sudountuk memungkinkan sudountuk digunakan sebagai shell login untuk tujuan sesi logging. Lihat di sini: github.com/cloudposse/sudosh
Erik Osterman
2

Anda dapat memulai layar gnu dan menggunakan fitur log. Saya tidak tahu apa pun yang akan memberi Anda log yang sangat bagus untuk aplikasi ncurses seperti top.

layar pria

log [on|off]

Start/stop writing output of the current window to a file "screenlog.n"
in the window's default directory, where n is the number of the current
window. This filename can be changed with the `logfile' command. ...

logfile filename
logfile flush secs

Defines the name the log files will get. The default is "screenlog.%n".
The  second  form changes the number of seconds screen will wait before
flushing the logfile buffer to the file-system. The default value is 10
seconds.
Sakit kepala
sumber
Output layar setara dengan script - penanganan ncurses tampaknya tidak didukung.
Andy
1

The scriptProgram akan mengambil log lengkap sesi shell Anda. Tidak tahu apakah itu setara dengan hal Putty.

womble
sumber
Terima kasih, tetapi ini tidak cocok karena saya menghabiskan waktu di shell dengan open top, yang layar merekam sebagai: [andy @ 165 ~] $ top ESC [HESC [2JESC (BESC [mtop - 23:34:49 hingga 19 hari, 17 : 42, 1 pengguna, rata-rata memuat: 0.11, 0.07, 0.01ESC (BESC [mESC [39; 49mESC [K
Andy
0

Saya tidak yakin apa yang ingin Anda capai di sini. Apakah ini untuk pelatihan atau forensik? Jika Anda menginginkan sesuatu yang menghasilkan file log yang bagus dan mudah dibaca, Anda mungkin kurang beruntung. Jika Anda ingin melakukan sesi pemutaran ulang, ttyrec adalah yang Anda cari. Anda dapat menjalankannya sebagai bagian dari skrip login untuk menangkap sesi pengguna, tetapi pastikan Anda menggunakan 'jebakan' untuk menghentikan pengguna keluar dari ttyrec dan kembali ke shell.

goo
sumber
Audit pribadi dan pencatatan teks biasa; pemutaran sesi tidak diperlukan.
Andy
2
skrip adalah hal yang paling dekat dengan apa yang Anda inginkan, meskipun seperti yang dinyatakan itu tidak dapat menangani ncurses dengan baik. Kami menggunakan skrip untuk mencatat semua sesi dan hanya mencoba melihat melewati kekacauan yang akan dibuat oleh ncurses.
goo
Terima kasih Geoff, sepertinya saya mungkin akan terjebak dengan skrip itu.
Andy
0

Semua perintah yang dimasukkan ditulis ke dalam file .bash_history, biasanya di rumah Anda. Anda dapat mengatur jumlah baris yang disimpan melalui pengaturan HISTFILESIZE.

Namun, tidak ada cap waktu dan keluaran.

Jika ini benar-benar diperlukan, saya akan membuat pembungkus di sekitar bash, menyalin stdin dan stdout ke file dan menyelesaikannya.

slovon
sumber
0

Anda dapat mencoba menggunakan http://xgu.ru/wiki/LiLaLo Ini dibuat di Rusia, jadi dokumentasi juga dalam bahasa Rusia, tetapi Google Terjemahan akan membantu Anda. Ini adalah contoh dari output: (sumber: xgu.ru )teks alternatif

TiFFolk
sumber
Terjemahan agak miring. Apakah ini menangani sesuatu seperti proses top interaktif.
dr.pooter
untuk gambar, itu tidak menangani vi, jadi tidak ada top saya pikir. Tetapi logging cukup menarik.
TiFFolk