GNU/Linux >> Belajar Linux >  >> Linux

Cara Menjalankan Perintah Tunggal Pada Beberapa Sistem Jarak Jauh Sekaligus

Beberapa waktu yang lalu, kami menerbitkan panduan untuk "menyalin file ke beberapa direktori di baris perintah di Linux" . Dalam artikel itu, kami mengajari Anda berbagai metode untuk menyalin satu file ke beberapa direktori sekaligus. Hari ini, kita akan melihat bagaimana menjalankan satu perintah pada beberapa sistem jarak jauh sekaligus dalam sistem operasi mirip Unix. Seperti yang sudah Anda ketahui, kita dapat mengakses dan berkomunikasi dengan sistem jarak jauh menggunakan ssh. openSSH memungkinkan kita untuk melakukan segala macam tugas administrasi dalam sistem jarak jauh. Salah satu batasan dengan openSSH adalah kita tidak dapat menjalankan satu perintah pada beberapa sistem jarak jauh sekaligus. Tidak masalah. Di sinilah PSSH datang untuk mengisi celah ini.

Unduh - Panduan Gratis:"Panduan Pemrograman Modul Kernel Linux"

PSSH , atau P arallel SSH , adalah rangkaian baris perintah yang membantu Anda melakukan ssh secara paralel di sejumlah host. Paket PSSH terdiri dari  perintah berikut:

  • pssh - SSH ke beberapa sistem jarak jauh secara paralel,
  • pscp - Salin file secara paralel ke sejumlah host,
  • prsync : Menyalin file secara paralel ke sejumlah host,
  • pnuke : Membunuh proses secara paralel di sejumlah host,
  • pslurp :Menyalin file secara paralel dari sejumlah host.

Dalam tutorial ini, kita akan melihat bagaimana menjalankan satu perintah pada beberapa host sekaligus menggunakan PSSH.

Instal PSSH

Kita dapat dengan mudah menginstal PSSH menggunakan PIP , pengelola paket python.

Untuk menginstal PIP di Arch Linux dan turunannya, jalankan:

$ sudo pacman -S python-pip

Di RHEL, Fedora, CentOS:

$ sudo yum install epel-release
$ sudo yum install python-pip

Atau,

$ sudo dnf install epel-release
$ sudo dnf install python-pip

Di Debian, Ubuntu, Linux Mint:

$ sudo apt-get install python-pip

Untuk detail selengkapnya tentang mengelola paket python menggunakan PIP, lihat tautan berikut.

  • Cara Mengelola Paket Python Menggunakan Pip

Setelah PIP terinstal, jalankan perintah berikut untuk menginstal PSSH.

$ sudo pip install pssh

PSSH telah diinstal! Mari kita lanjutkan dan lihat cara menggunakannya.

Jalankan Perintah Tunggal Pada Beberapa Sistem Jarak Jauh Sekaligus Menggunakan PSSH

Penting: Untuk menggunakan PSSH (hanya untuk tujuan tutorial ini), semua sistem jarak jauh Anda harus memiliki nama pengguna yang sama dengan kata sandi yang sama . Jika tidak, metode ini tidak akan membantu. Katakanlah misalnya, saya telah membuat pengguna bernama sk dengan sandi ostechnix di semua host jarak jauh saya. Anda juga harus memiliki pengguna yang sama dengan kata sandi yang sama di semua sistem jarak jauh Anda.

Sekarang, mari kita lihat bagaimana menjalankan satu perintah pada beberapa host jarak jauh menggunakan PSSH. Buka sistem lokal tempat Anda ingin menjalankan perintah dan buat file teks bernama remotehosts.txt . Anda dapat menamainya sesuai keinginan.

$ vi remotehosts.txt

Tambahkan alamat IP host jarak jauh Anda dengan nomor port satu per satu persis seperti yang ditunjukkan di bawah ini.

192.168.1.103:22
192.168.1.104:22

Dimana, 192.168.1.103 dan 192.168.1.104 adalah alamat IP dari sistem jarak jauh saya. 22 adalah nomor port ssh. Anda perlu menyebutkan nomor port yang benar jika Anda sudah mengubahnya. Selain itu, pastikan Anda dapat mengakses semua host jarak jauh dari sistem lokal Anda melalui ssh.

Sekarang, mari kita periksa waktu aktif kedua host jarak jauh dari sistem lokal kita. Untuk melakukannya, jalankan:

$ pssh -h remotehosts.txt -l sk -A -i "uptime"

Di sini,

  • remotehosts.txt - Berisi alamat IP dari kedua sistem jarak jauh.
  • sk - nama pengguna kedua sistem jarak jauh

Masukkan sandi pengguna "sk" .

Contoh keluaran:

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 20:51:15 [SUCCESS] 192.168.1.103:22
 20:50:50 up 8 min, 1 user, load average: 0.05, 0.11, 0.10
[2] 20:51:15 [SUCCESS] 192.168.1.104:22
 20:50:52 up 12 min, 1 user, load average: 0.00, 0.07, 0.12

Seperti yang Anda lihat di atas, kami telah menjalankan perintah "uptime" pada dua host jarak jauh dan mendapatkan hasilnya sekaligus.

Bagaimana dengan versi kernelnya? Untuk memeriksa versi yang diinstal dari kedua host jarak jauh, jalankan:

$ pssh -h remotehosts.txt -l sk -A -i "uname -r"

Contoh keluaran:

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 20:53:09 [SUCCESS] 192.168.1.103:22
3.10.0-327.22.2.el7.x86_64
[2] 20:53:09 [SUCCESS] 192.168.1.104:22
4.4.0-21-generic

Sangat keren, bukan? Bisakah kita membuat direktori di kedua host jarak jauh sekaligus? Ya, tentu saja! Untuk melakukannya, jalankan perintah berikut:

$ pssh -h remotehosts.txt -l sk -A -i "mkdir dir1"

Demikian pula, Anda dapat melakukan apa pun yang ingin Anda lakukan pada beberapa host jarak jauh dari sistem lokal Anda menggunakan PSSH.

Penting: Harap berhati-hati saat menggunakan PSSH. Satu perintah yang buruk akan bekerja secara bersamaan di beberapa host dan merusak semua host. Jadi, berhati-hatilah saat menggunakan metode ini dalam produksi. Saya sarankan Anda untuk menguji ini di mesin virtual. Setelah Anda terbiasa dengan PSSH, Anda dapat menggunakannya pada produksi jika Anda mau.

Bacaan yang disarankan:

  • DSH – Jalankan Perintah Linux Pada Banyak Host Sekaligus
  • Jalankan Perintah Pada Sistem Linux Jarak Jauh Melalui SSH

Semoga membantu.


Linux
  1. Cara Menggunakan Perintah Linux Rsync (Sinkronisasi Jarak Jauh)

  2. Bagaimana cara menjalankan beberapa proses Tor sekaligus dengan IP keluar yang berbeda?

  3. Bagaimana saya bisa menjalankan perintah setelah boot?

  1. Bagaimana Kami Menjalankan Perintah yang Disimpan Dalam Variabel?

  2. Cara Mengganti Nama Banyak File Sekaligus di Linux

  3. Bagaimana cara mengganti nama banyak file dalam satu perintah atau skrip di Unix?

  1. Bagaimana cara menjalankan beberapa perintah latar belakang di bash dalam satu baris?

  2. linux:cara menjalankan perintah di direktori tertentu

  3. Bagaimana cara menjalankan perintah berkali-kali, menggunakan bash Shell?