Saya perlu menyimpan seluruh output Layar ke file untuk memeriksa nanti semua konten.
Alasannya adalah bahwa saya membuang memori flash melalui port serial, menggunakan Layar untuk berinteraksi dengannya. Saya ingin menyimpannya di file untuk memeriksa struktur memori.
Saya sudah mencoba:
$: screen /dev/ttyUSB0 115200 >> foo.txt
$: screen /dev/ttyUSB0 115200 | tee foo.txt
Dan saya juga mencoba menggunakan bufferfile dari layar, tetapi saya tidak mengerti bagaimana cara menggunakannya.
Apakah ada cara mudah?
logging
buffer
dump
gnu-screen
Edoardoo
sumber
sumber
Jawaban:
Ada opsi baris perintah untuk masuk. Output disimpan ke file screenlog.n, di mana n adalah sejumlah layar. Dari halaman manual layar:
sumber
find / -name "screen*log"
yang tidak menemukan apa pun.Anda juga dapat menggunakan Control-a + H untuk menyimpan penebangan ke file screenlog.n. Satu lagi Control-a + H untuk mematikan.
Ca H: Memulai / mengakhiri logging dari jendela saat ini ke file "screenlog.n".
sumber
a
+:
dan ketik misalnyachdir /home/foobar/baz
Jawaban yang dipilih tidak bekerja dengan baik dengan beberapa sesi dan tidak memungkinkan untuk menentukan nama file log kustom.
Untuk beberapa sesi layar, ini adalah rumus saya:
Buat file konfigurasi untuk setiap proses:
Jika Anda ingin melakukannya "on the fly", Anda dapat mengubahnya
logfile
secara otomatis.\012
berarti "baris baru", karena menggunakan\n
akan mencetaknya di file log: sumber .Mulai perintah Anda dengan bendera "-c" dan "-L":
Itu dia. Anda akan melihat "test.log" setelah flush pertama:
Saya menemukan bahwa "-L" masih diperlukan bahkan ketika "masuk" ada di file konfigurasi.
Saya tidak dapat menemukan daftar variabel format waktu (seperti% m) yang digunakan oleh layar. Jika Anda memiliki tautan format itu, silakan kirim di bawah.
Tambahan
Jika Anda ingin melakukannya "on the fly", Anda dapat menggunakan skrip ini:
Untuk menggunakannya, simpan (screen.sh) dan set + x izin:
... dan akan menjalankan ./test.pl dan membuat file log di /var/log/TEST.log
sumber
on-the-fly
bagian ini sangat berguna.screen -r
dengan"Unable to open "/tmp/log.conf"
. Juga, layar berubah dari[detached]
keadaan tidak ada. Apa yang bisa menjadi masalah?screen bash
. Jika ada proses lain yang membunuh layar Anda, itu harus terdaftar sebagai 'mati', tetapi tidak hilang. Saya tidak yakin apa itu.Perintah berikut berfungsi untuk Layar versi 4.06.02:
Dari halaman manual Layar :
Anda dapat memeriksa versi layar yang ada menggunakan versi layar . Anda dapat mengunduh dan menginstal versi Layar terbaru dari https://www.gnu.org/software/screen/ .
sumber
Untuk terminal Mac:
Detail
script
: Aplikasi bawaan untuk "membuat naskah naskah sesi terminal"-a
: Tambahkan ke file output-t 0
: Waktu antara menulis ke file output adalah 0 detik, jadi out.txt diperbarui untuk setiap karakter baruout.txt
: Apakah hanya nama file outputscreen /dev/ttyUSB0 115200
: Perintah dari pertanyaan untuk menghubungkan ke perangkat eksternalAnda kemudian dapat menggunakan ekor untuk melihat bahwa file sedang diperbarui.
sumber
Ctrl+Akemudian Shift+Hbekerja untuk saya. Anda dapat melihat file
screenlog.0
saat program masih berjalan.sumber
Perintah 'script' di bawah Unix harus melakukan trik. Jalankan saja di awal konsol baru Anda dan Anda akan menjadi baik.
sumber
Ini triknya: bungkus
sh -c
!Di mana
2>&1
pengalihan stderr ke stdout sehinggatee
dapat menangkap dan mencatat pesan kesalahan.sumber
Berikut ini mungkin berguna (diuji pada: Linux / Ubuntu 12,04 (Precise Pangolin)):
Dengan menggunakan di atas, Anda kemudian dapat melakukan semua arahan ulang yang Anda butuhkan. Misalnya, untuk membuang output ke konsol Anda sambil menyimpan ke file Anda, Anda akan melakukan:
sumber
Jawaban berbeda jika Anda perlu menyimpan output seluruh buffer scrollback Anda dari layar yang sudah aktif berjalan:
Ini akan menyimpan seluruh buffer Anda ke / tmp / screen-exchange
sumber
Log layar yang ada dapat disimpan oleh:
Ctrl+A : hardcopy -h nama file
sumber