GNU/Linux >> Belajar Linux >  >> Linux

Gunakan scp untuk menyalin file ke server yang berbeda

Ada berbagai alat yang dapat scp file ke beberapa host (dengan koneksi simultan), seperti pssh dan kanif. Dalam hal kata sandi, saya sarankan menggunakan penerusan agen. Ini memungkinkan Anda untuk menyimpan kunci di mesin lokal Anda, tetapi menggunakannya saat memulai koneksi SSH dari host lain. Jika tidak, --askpass ke parallel-scp perintah dari pssh membuatnya meminta kata sandi untuk digunakan untuk setiap host.

Jika Anda tidak dapat menginstal alat untuk melakukan ini, atur penerusan agen (dengan menambahkan -A opsi untuk ssh saat menghubungkan ke mesin tempat Anda melakukan ini) lalu jalankan scp dalam satu lingkaran seperti ini:

for HOST in server1 server2 server3; do
    scp somefile $HOST:~/somedir/
done

Coba lakukan ini dengan skrip ekspektasi, mis.

#!/bin/bash

HOSTS="h1.lan h2.lan h3.lan"

read -p "Password: " PASSWORD


for HOST in $HOSTS
do
    expect -c "
    spawn /usr/bin/scp file [email protected]$HOST:/destination_path/
    expect {
    "*password:*" { send $PASSWORD\r;interact }
    }
    exit
    "
done

Hal di atas seharusnya cukup mudah untuk disesuaikan dengan kebutuhan Anda.


Linux
  1. Cara Menggunakan Tunneling SSH untuk Mengakses Server yang Dibatasi

  2. Gunakan Scp Untuk Mentransfer File Dari Direktori Lokal X Ke Direktori Jarak Jauh Y?

  3. Gunakan _roff Untuk Menggarisbawahi Kata?

  1. Gunakan tag Server Cloud

  2. Gunakan CloudFlare dengan Rackspace

  3. Cara menyalin file dari mesin Vagrant ke localhost

  1. Bagaimana Cara Menyalin File Dari Server Jarak Jauh Ke Mesin Lokal?

  2. Bagaimana cara menyalin file tanpa menggunakan scp di dalam sesi ssh?

  3. Bagaimana cara menyalin file secara transaksional?