หน้าจอ GNU: พิมพ์เซสชันที่แยกออกไปยัง stdout


17

ฉันแค่ต้องการให้ภาพรวมอย่างรวดเร็วของscreenเซสชันGNU ที่แยกออกมาของฉัน เป็นไปได้ที่จะดัมพ์เนื้อหาปัจจุบันไปยัง stdout หรือไม่? สิ่งที่ต้องการ

screen --print SESSION_NAME > file.txt

คำตอบ:


17

คุณสามารถถ่ายโอนข้อมูลหน้าต่างหนึ่งในเซสชั่นหน้าจอที่มีที่จะช่วยให้การถ่ายโอนข้อมูลที่หน้าจอของหน้าต่างในปัจจุบันscreen -X hardcopy /some/file/some/file

คุณสามารถดัมพ์หน้าต่างที่ระบุด้วย:

screen -X at 3 hardcopy /some/file

และพวกเขาทั้งหมดในไฟล์เดียวกับ:

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

คุณสามารถถ่ายโอนไฟล์หนึ่งไฟล์ต่อหน้าต่างโดยระบุไดเรกทอรีที่จะทิ้งไฟล์เหล่านั้นใน (หากคุณไม่ได้ระบุไว้ไฟล์เหล่านั้นจะถูกทิ้งในไดเรกทอรีที่screenเริ่มต้นด้วย) ด้วย

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

(จะถูกทิ้งในไฟล์ที่เรียกว่าhardcopy.<n>)

ดู-hตัวเลือกของhardcopyการรวมบัฟเฟอร์การเลื่อน

การใช้งานscreenของ-Sตัวเลือกตามปกติเพื่อระบุเซสชั่นที่จะเรียกใช้คำสั่งใน. ⁣⁣⁣⁣


2
ถ้าเซสชั่นหน้าจอไม่เคยได้รับที่แนบมาเลือกหน้าต่างที่มี-pหรือatเป็นสิ่งที่จำเป็น ดังนั้นถ้าscreen -X hardcopy /some/fileไม่ทำงานลองหรือscreen -X at 0 hardcopy /some/file screen -p 0 -X hardcopy /some/file
Gilles 'หยุดความชั่วร้าย'

2
มีวิธีใดที่จะคัดลอกยากไปยัง stdout ภายนอกของการส่งออกไปยังไฟล์ชั่วคราว catting แล้วลบไฟล์ชั่วคราว?
Claudiu

1
@Claudiu: คำถามของคุณอายุ 3 ปีขึ้นไป แต่คำตอบนั้นมีความเกี่ยวข้องอยู่ดี: ไม่; ฉันเพิ่งรู้ว่าใช้straceหน้าจอ "ลูกค้า" ส่งคำสั่ง hardcopy ไปยังเซิร์ฟเวอร์และเซิร์ฟเวอร์เป็นสิ่งที่ดำเนินการ (manpage ระบุว่าไฟล์ hardcopy ถูกเขียนใน cwd ของเซิร์ฟเวอร์ไม่ใช่ของลูกค้า) ข้อมูล TTY ดูเหมือนจะไม่ข้ามสายในกรณีของ hardcopy
i336_

6

เริ่มต้นscreenด้วย-Lตัวเลือกเพื่อเปิดใช้งานการบันทึกเซสชัน

อีกวิธีหนึ่งคือหลังจากที่คุณได้เปิดตัวscreenคุณสามารถเปิดการเข้าสู่ระบบของหน้าต่างในส่วนscreenเซสชั่นและปิดด้วย-CTRLaH

บันทึกจะถูกสร้างขึ้นในไดเรกทอรีการทำงานปัจจุบันของคุณด้วยชื่อscreenlog.Xที่ X คือหมายเลขที่ไม่ซ้ำกัน

เอาต์พุตของรายการหน้าต่างเมื่อเปิดใช้งานการบันทึกมีLในคอลัมน์สถานะ

Num Name           Flags
  0 fedora         $(L)               
  1 sudo           $                                        
  2 fedora         $(L)                                                
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.