GNU/Linux >> Belajar Linux >  >> Linux

Mengirimkan "ps" Di Beberapa Server, Output Menuju Satu File Teks?

Saya mencoba membuat skrip yang akan menampilkan semua proses yang tidak berfungsi di 66 kotak redhat ke satu file teks. Saya memahami prinsip-prinsip melakukan ini pada satu kotak, tetapi saya tidak yakin bagaimana mengarahkan proses itu menjadi sesuatu yang akan berjalan di satu kotak, tetapi menanyakan beberapa kotak.

Jadi, saya telah menemukan skrip kecil ini:

for host in $(cat hosts.txt); do ssh "$host" "$command" >"output.$host"; done

Saya mengerti bahwa pada dasarnya saya dapat mengirimkan ps -ef | grep "defunct" sebagai $command , tapi menurut saya file keluaran apa pun yang saya buat akan di-drop ke host yang menjalankannya.

Saya perlu menjalankan ini dari satu kotak, menyimpan output pada satu kotak itu, tetapi berisi informasi untuk 65 kotak lainnya?

Saya yakin kami memiliki ssh tanpa kata sandi. Pengetahuan saya tentang Unix agak menengah, saya tahu sedikit karena saya menggunakan SAS.

Jawaban yang Diterima:

Pengalihan terjadi pada mesin pemanggil, bukan pada mesin jarak jauh, sehingga file hasil akan bersifat lokal. Juga, grep tidak perlu dijalankan dari jarak jauh:

while read -r host; do
    ssh "$host" ps -ef | grep "defunct" >"output.$host"
done <hosts.txt

Ini mengeksekusi ps -ef pada setiap host dan grep akan mengekstrak defunct garis keluaran. grep akan berjalan secara lokal, bukan jarak jauh. File hasil, juga, dibuat secara lokal.

Jika Anda menginginkan satu file keluaran:

while read -r host; do
    ssh "$host" ps -ef | grep "defunct"
done <hosts.txt >output.txt

Atau bahkan (untuk satu permintaan grep )

while read -r host; do
    ssh "$host" ps -ef 
done <hosts.txt | grep "defunct" >output.txt

Linux
  1. Output Ke Stdout Dan Pada Saat Yang Sama Grep Ke File?

  2. Bagaimana cara membagi satu file teks menjadi beberapa file *.txt?

  3. Cara meneruskan output perintah sebagai beberapa argumen ke perintah lain

  1. Bagaimana cara gzip banyak file menjadi satu file gz?

  2. Menyinkronkan akun pengguna di beberapa server

  3. File log ekor di beberapa mesin melalui ssh

  1. Bagaimana Cara Memindahkan Garis Dalam File Teks Ke Atas Atau Ke Bawah Dengan Satu Baris?

  2. Bagaimana Cara Menghapus Beberapa Baris Acak Dari File Teks Menggunakan Sed?

  3. Cara Mengkonfigurasi Beberapa Server MySQL Pada Satu Sistem Menggunakan mysqld_multi