วิธีการ ssh, เริ่มต้นด้านบน, และปิดเซสชัน ssh ด้วย ~ / .toprc แบบกำหนดเอง


1

ถ้าฉันล็อกอินเข้าสู่รีโมตโฮสต์ของฉันผ่าน ssh และรันบนสุดมันจะเลือกไฟล์การกำหนดค่า ~ / .toprc ฉันยังสามารถรันคำสั่งต่อไปนี้ได้สำเร็จ

ssh -t <user>@<host> "top -b > top.dat"

อย่างไรก็ตามสิ่งนี้ทำให้เซสชัน ssh เปิดตลอดไป ฉันต้องการใช้เซสชัน ssh เพื่อเริ่มกระบวนการ batch สูงสุดและออกจากเซสชัน ssh ปัญหาที่ฉันมีคือทุกสิ่งที่ฉันพยายามอย่างใดอย่างหนึ่งไม่ทำงานหรือไม่ได้รับไฟล์การตั้งค่า ~ / .toprc

นี่คือสิ่งที่ฉันได้ลอง:

ssh <user>@<host> "top -b > top.dat &"
ssh -f <user>@<host> "top -b > top.dat"
ssh -f <user>@<host> "nohup top -b > top.dat &"
ssh <user>@<host> "nohup top -b > top.dat &"
ssh -f <user>@<host> "nohup top -b > top.dat"

ทั้งหมดที่มีผลลัพธ์เหมือนกันคือไม่ได้รับ ~ / .toprc

ssh -t <user>@<host> "top -b > top.dat &"

ออกจากด้านบนเมื่อปิดเซสชัน ssh (ทันที)

ssh -ft <user>@<host> "top -b > top.dat"
ssh -ft <user>@<host> "nohup top -b > top.dat &"
ssh -ft <user>@<host> "nohup top -b > top.dat"

ไม่รับ ~ / .toprc และบ่นว่าหลอกสถานีจะไม่ได้รับการจัดสรรเพราะ stdin ไม่ได้เป็นสถานี

ใครสามารถอธิบายได้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น Top บอกว่าจะอ่าน $ HOME / .toprc ฉันได้ตรวจสอบแล้วว่ามีการตั้งค่า $ HOME ในทุกกรณีและมี $ HOME / .toprc อยู่ อะไรคือความแตกต่างของสองวิธีที่ทำให้การโทรแบบอะซิงโครนัสไม่รับไฟล์การกำหนดค่า

ขอบคุณ

แก้ไข 1

นี่คือ toprc ของฉัน

top's Config File (Linux processes with windows)
Id:i, Mode_altscr=0, Mode_irixps=1, Delay_time=1.0, Curwin=0
Def fieldscur=�������ķ���&')*+,-./012���������FGHIJKLMN��QRSTUVWXYZ[\]^_`abcdefghij
    winflags=193840, sortindx=18, maxtasks=0, graph_cpus=0, graph_mems=0
    summclr=1, msgsclr=1, headclr=3, taskclr=1
Job fieldscur=�����(��Ļ�@<��)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
    winflags=193844, sortindx=0, maxtasks=0, graph_cpus=0, graph_mems=0
    summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=���<�����MBND34��&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghij
    winflags=193844, sortindx=21, maxtasks=0, graph_cpus=0, graph_mems=0
    summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=�����������)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
    winflags=193844, sortindx=3, maxtasks=0, graph_cpus=0, graph_mems=0
    summclr=3, msgsclr=3, headclr=2, taskclr=3
Fixed_widest=0, Summ_mscale=0, Task_mscale=0, Zero_suppress=0

แก้ไข 2

ขออภัย ... ทั้งสองเครื่องไม่ใช่ Redhat 7 ฉันไม่ได้คิดถึงตอนที่พูด ฉันกำลัง sshing จากเครื่อง Redhat ไปยังเครื่องที่ใช้ yocto-linux โดยใช้เซิร์ฟเวอร์ ssh แบบ dropbear ฉันเพิ่งทดสอบ openssh ด้วย อาจเป็นเซิร์ฟเวอร์ ssh ในสูตร yocto ที่เป็นสาเหตุของปัญหา ฉันเพิ่งทดสอบ Redhat to Redhat และใช้งานได้จริง


ssh -ft host -l ผู้ใช้ "nohup top -b> top.out" ทำงานได้ดีบนโฮสต์ debian9 มันอ่าน ~ / .toprc toprc ของคุณเป็นอย่างไร
Raouf M. Bencheraiet

@ RaoufM.Bencheraiet เพิ่งเพิ่มไฟล์ toprc ของฉัน ดูการแก้ไข 1. ฉันไม่ควรลงชื่อเข้าใช้ในฐานะผู้ใช้รูท
jesse_partman

ฉันไม่คิดว่าจะถามสิ่งนี้: จะเกิดอะไรขึ้นถ้าคุณลงชื่อเข้าใช้ตามปกติและแทนที่จะเรียกใช้ 'top -b' เปรียบเทียบกับผลลัพธ์ของ top สิ่งที่ฉันคิดว่าจะเกิดขึ้นก็คือธง -b ปิดการใช้งานหลายสิ่ง จากท็อปส์เอาท์พุท / อินพุต
Raouf M. Bencheraiet

@ RaoufM.Bencheraiet 'top -b' ทำงานเมื่อฉัน ssh และเรียกใช้คำสั่งด้วยตนเอง ขออภัยฉันพลาดก่อนหน้านี้เกี่ยวกับ Redhat -> Redhat ดูแก้ไข 2.
jesse_partman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.