Saya memiliki banyak kotak linux dengan serangkaian perintah dan ruang disk yang sangat terbatas. Tetapi ada telnet
perintah di atasnya.
Saya terhubung dari jarak jauh ke masing-masing probe ini (secara terprogram) dan mengeluarkan satu perintah linux baris melalui SSH.
Saya perlu menjalankan satu perintah untuk terhubung ke mesin tertentu, menggunakan telnet, dan kemudian putuskan segera .
Saya bisa melakukan semua itu, tetapi pemutusan bagian segera . Telnet membuka semacam konsol, atau terminal dan saya tidak dapat menemukan perintah satu baris untuk menjalankan perintah telnet dan kemudian memutuskan sambungan segera.
Jika saya melakukan itu, saya dapat dengan mudah mengurai output tekstual untuk pesan kesalahan karena tidak dapat terhubung ke mesin pada port yang ditentukan dan itulah yang saya cari.
Jadi bagaimana saya bisa menjalankan perintah satu baris untuk terhubung ke mesin menggunakan telnet dan putuskan sambungan setelahnya?
Jawaban:
Anda harus dapat mengirimkan
exit
perintah ke STDINtelnet
. Mencoba:dan lihat apakah itu berhasil. (tampaknya berfungsi di server web saya, tetapi YMMV).
sumber
Metode paling sederhana dan termudah diberikan di bawah ini.
n - Waktu tunggu dalam detik sebelum keluar otomatis. Bisa jadi fraksional seperti 0,5. Perhatikan bahwa beberapa output yang diperlukan mungkin tidak dikembalikan dalam waktu tunggu yang ditentukan. Jadi kita mungkin perlu meningkatkannya.
server - IP server target atau nama host.
port - Targetkan nomor port layanan.
Anda juga dapat mengarahkan output ke file seperti ini,
sumber
Dalam kasus saya ini berfungsi. (CentOS 7):
sumber
Saya pikir alat yang lebih baik untuk mengirim perintah secara langsung dan hanya mendapatkan output adalah netcat. Ini hanya alat sederhana, tetapi kuat untuk menempatkan perintah melalui port. Anda dapat melihat contoh penggunaan dalam pertanyaan pengguna super ini: /superuser/261900/how-can-i-pipe-commands-to-a-netcat-that-will-stay-alive - penanya memberikan contoh yang berfungsi di mana koneksi ditutup setelah beberapa detik.
Dan jika Anda hanya ingin menguji konektivitas gunakan ini: http://terminalinflection.com/use-netcat-not-telnet-to-test-network-connectivity/
sumber
&& exit
melihat apakah skrip terputus (setidaknya dalam ssh sudah cukup).&& exit
tidak bekerja Jika glibc harus ada dan saya percaya itu ada. Mengapanc.traditional
mengeluh tentang hal itu seolah hilang?Ini adalah versi lain dari jawaban di atas yang membuatnya bertindak sedikit lebih seperti sintaks telnet "normal". Jika Anda menyukai jawaban saya, tolong beri upvote bukan untuk ini, tetapi untuk yang asli.
sumber
Inilah solusi yang saya temukan di Internet:
Ini bekerja untuk saya di SunOS & HP-UX
sumber
Mencoba
Bagian terbaik di atas adalah Anda mendapatkan status keluar juga. Jika telnet berhasil kode keluar akan menjadi 0 atau yang lain 1
sumber
Hindari netcat jika Anda memiliki rute khusus, karena tidak mematuhi aturan perutean. Mirip dengan caranya
nslookup
,dig
&host
abaikan file / etc / hosts ( nslookup, gali, firefox mengabaikan / etc / hosts entri file ).yaitu: tidak seperti aplikasi dan alat-alat seperti
telnet
dan/dev/tcp
( Menguji port TCP jarak jauh menggunakan telnet dengan menjalankan perintah satu baris ) yang mengikuti aturan perutean sistem,nc
menggunakan gateway default kecuali jika secara khusus diperintahkan untuk menggunakan alamat IP sumber dengan-s
:Saya perlu menguji apakah aplikasi dapat mencapai sumber daya, dan jika rute turun,
netcat
melaporkan bahwa semuanya baik-baik saja karena alamat sumber telah ditentukan dalam tes. Saya beralih menggunakan/dev/tcp
.sumber