Bolehkah Anda Menghapuskan Output Sampah Apabila Menggunakan SSH untuk Mendapatkan Keluaran CLI dengan Paramiko Python?
Apabila menggunakan perpustakaan Paramiko Python ke SSH ke dalam peranti jauh dan mendapatkan output daripada baris arahan, adalah perkara biasa untuk menemui aksara luar di samping output yang dimaksudkan. Ini boleh termasuk kod melarikan diri ANSI dan maklumat lain yang tidak penting.
Walaupun aksara ini mungkin kelihatan seperti sampah, ia sebenarnya mempunyai tujuan. Kod melarikan diri ANSI digunakan oleh pelanggan terminal untuk meningkatkan persembahan output, seperti pemformatan teks dan kedudukan kursor. Oleh itu, ia bukanlah satu kacau ganggu tetapi sebaliknya merupakan komponen penting bagi sesi terminal interaktif.
Apabila menggunakan kaedah SSHClient.invoke_shell Paramiko, yang bertujuan untuk sesi terminal interaktif, perpustakaan secara automatik meminta terminal pseudo. Terminal ini digunakan untuk mentafsir kod melarikan diri ANSI dan memaparkan output dalam format yang boleh dibaca manusia.
Walau bagaimanapun, jika niat anda adalah untuk mengautomasikan pelaksanaan arahan jauh daripada melibatkan diri dalam sesi terminal interaktif, yang sesuai kaedah untuk digunakan ialah SSHClient.exec_command. Kaedah ini tidak memperuntukkan terminal pseudo secara lalai, dengan itu menghapuskan isu aksara luar.
Sebagai alternatif, jika anda memerlukan penggunaan saluran "shell" disebabkan oleh kekangan pelayan tertentu, anda boleh membuat saluran secara manual tanpa terminal pseudo. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa SSHClient.invoke_shell Paramiko tidak menyokong fungsi ini, jadi anda perlu mencipta saluran itu sendiri.
Akhir sekali, awalan "u" yang mungkin anda perhatikan dalam output bukanlah sebahagian daripada nilai rentetan itu sendiri. Sebaliknya, ini menunjukkan bahawa rentetan dikodkan dalam Unicode, yang penting untuk mengendalikan aksara yang berada di luar julat ASCII.
Atas ialah kandungan terperinci Bagaimana untuk Menghapuskan Output Sampah Apabila Mendapatkan Keluaran CLI dengan Paramiko?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!