Layar GNU: cetak sesi terpisah ke stdout

17

Saya hanya ingin memiliki gambaran singkat tentang screensesi GNU saya yang terpisah . Apakah mungkin untuk membuang konten saat ini ke stdout? Sesuatu seperti

screen --print SESSION_NAME > file.txt
Pierre
sumber

Jawaban:

17

Anda dapat membuang satu jendela dari sesi layar dengan screen -X hardcopy /some/file, yang akan menyimpan dump layar dari jendela saat ini /some/file.

Anda dapat membuang jendela tertentu dengan:

screen -X at 3 hardcopy /some/file

Dan semuanya dalam satu file dengan:

screen -X eval 'hardcopy_append on' 'at \\# hardcopy /some/file'

Anda juga dapat membuang satu file per jendela, dengan menentukan direktori mana yang akan dibuang (jika Anda tidak menentukannya, maka mereka akan dibuang dalam direktori screenyang dimulai) dengan

screen -X eval 'hardcopydir /some/dir' 'at \\# hardcopy'

(akan dibuang dalam file yang disebut hardcopy.<n>)

Lihat -hopsi hardcopyuntuk memasukkan buffer gulir.

Gunakan screen's -Spilihan seperti biasa untuk menentukan sesi untuk menjalankan perintah di. ⁣ ⁣ ⁣ ⁣

Stéphane Chazelas
sumber
2
Jika sesi layar tidak pernah dilampirkan, memilih jendela dengan -patau atdiperlukan . Jadi, jika screen -X hardcopy /some/filetidak berhasil, coba screen -X at 0 hardcopy /some/fileatau screen -p 0 -X hardcopy /some/file.
Gilles 'SO- berhenti menjadi jahat'
2
Apakah ada cara untuk menyalin ke stdout di luar dari keluaran ke file sementara, catting itu, lalu hapus file sementara?
Claudiu
1
@Claudiu: Pertanyaan Anda sudah berusia 3 tahun ke atas tetapi jawabannya tetap relevan: tidak; Saya baru tahu menggunakan stracelayar "klien" mengirimkan perintah hardcopy ke server dan server adalah apa yang memprosesnya. (Halaman manual menyatakan file hardcopy ditulis dalam cwd server, bukan client.) Data TTY tampaknya tidak masuk dalam kawat dalam kasus hardcopy.
i336_
6

Mulai screendengan -Lopsi untuk mengaktifkan pencatatan sesi.

Atau, setelah Anda meluncurkan screen, Anda dapat menghidupkan atau mematikan logging di screensesi dengan CTRLa- H.

Log akan dibuat di direktori kerja Anda saat ini dengan nama di screenlog.Xmana X adalah nomor unik.

Output dari daftar jendela saat logging diaktifkan memiliki Ldi kolom Flags.

Num Name           Flags
  0 fedora         $(L)               
  1 sudo           $                                        
  2 fedora         $(L)                                                
George M
sumber