Pertanyaan Bagaimana cara saya mencatat semua input dan output dalam sesi terminal?


Bagaimana cara menyimpan catatan dari semua pekerjaan yang dilakukan melalui terminal? Sebagai contoh, saya ingin catatan semua pekerjaan yang dilakukan pada database melalui terminal.


40
2017-07-10 10:58


asal


Ini juga dibangun menjadi sudo. - Wilhelm Erasmus
Saya telah menambahkan jawaban saya yang dapat Anda tinjau - Mansur Ali


Jawaban:


Ketika Anda siap untuk mulai merekam file log, ketik:

script screen.log

Sekarang, sampai Anda menghentikan skrip, semua input dan output di Terminal akan disimpan di screen.log. Setelah selesai, ketikkan saja:

exit

File screen.log Anda akan disimpan di direktori lokal. Jika Anda ingin mengalihkannya, gunakan nama path absolut seperti ~/screen.log. Ini akan melakukan apa yang Anda cari.

Sumber:  Panduan Ubuntu - Cara Memerintahkan Log Terminal


51
2017-07-10 11:21



Hai, terima kasih atas jawabannya. Tetapi ini akan berfungsi jika saya login ke database mysql dari shell menggunakan urutan berikut: - 1) skrip screen.log 2) mysql -u <user> -p <database> 3) beberapa pekerjaan di database 4) keluar; Saya melihat bahwa file screen.log dibuat tetapi tidak berisi log untuk database. Saya akan membagikan file secepatnya. Terima kasih Ankt - Ankit
itu harus bekerja dengan semua yang berjalan di konsol membaca dari "input standar" (biasanya keyboard Anda) dan menulis ke output standar (biasanya jendela terminal Anda). Jadi itu harus menyertakan klien baris perintah mysql. Halaman manual (man script) bahkan menyebutkan vi (editor)... - Izzy


Anda mungkin ingin mencoba Asciinema. Selain hanya membuat rekaman Anda mendapatkan kemampuan untuk membagikannya dan menanamkan pemain di blog Anda, artikel atau dalam pembicaraan konferensi.


9
2017-11-15 16:04





Saya memiliki cara yang lebih baik untuk menggunakan syslog untuk mendata setiap perintah shell ini dapat bervariasi pada distribusi linux tetapi metode akan tetap sama

Anda harus mengikuti beberapa langkah:

Langkah # 1 (Buat layanan Syslog)

# vim /etc/rsyslog.d/bash.conf

local6.*    /var/log/commands.log

Langkah # 2 (Buka bashrc dan masukkan perintah di bawah)

# vim /root/.bashrc

# Enable CLI Logging by Mansur 08-12-2016 
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

Ste # 3 (Restart Syslog Service)

# /etc/init.d/rsyslog

Berikut ini contoh log:

7 Des 22:13:00 validationdb2 mahasan: root @ export [13291]: tail -f /var/log/mysql/mysql.log [0]
7 Des 22:13:09 validationdb2 mahasan: root @ export [13291]: ls-lh [0]
7 Des 22:13:27 validationdb2 mahasan: root @ export [13291]: perintah uji sentuh [0]

6
2017-12-08 07:17



taktik nakal !!! - Tom H
Hai Mansur, Bisakah Anda jelaskan apa yang Anda lakukan dengan perintah-perintah itu, yang sulit dimengerti, setidaknya bagi saya. - Jasser
Pada Langkah 1 saya menamai sebuah layanan untuk logging perintah yang akan digunakan oleh proses untuk mengirim log ke dalamnya "local6" akan menjadi titik akhir untuk layanan untuk logging In Step 2 saya mengatur hal-hal apa yang sebenarnya saya inginkan "PROMPT_COMMAND = 'RETRN_VAL = $? " bagian ini akan mencatat input pengguna dan "logger -p local6.debug" ini akan mengirim file log ke layanan yang merekam data log dengan proses bantuan syslog - Mansur Ali