Bisakah Anda scp
file ke beberapa lokasi dalam perintah yang sama?
Sebagai contoh:
scp file.txt [email protected]:, [email protected]:
Atau akan lebih praktis untuk membuat skrip bash yang sudah memiliki semua host di dalamnya dan itu hanya akan mengambil file sebagai argumen?
linux
file-transfer
scp
Andrew
sumber
sumber
for
-loop menjadiwhile read dest; do
, itu akan membaca dari input standar. Masukkan ke dalam skrip dan masukkandestfile.txt
ke dalamnya (misalnya,./thescript.sh <destfile.txt
).Tampak seperti pekerjaan untuk parallel-scp (n) (t) - ini mengimplementasikan seperangkat perintah yang memungkinkan perintah scp dijalankan di banyak sistem sekaligus. Ini akan memungkinkan untuk menyalin file secara paralel ke satu set mesin.
sumber
sumber
Alternatif lain (dan satu-liner) adalah sebagai gantinya menggunakan pdsh untuk terhubung ke setiap node target dan memicu get dari sana:
Ini tentu saja memerlukan satu informasi lagi (host lokal) dan hak pengguna yang berbeda, tetapi Anda menghindari perulangan di bash dan menggunakan tipuan untuk membaca file.
sumber
Berikut opsi lain, dengan skrip shell satu baris.
Ia menggunakan dua file, satu untuk loop, dan satu untuk daftar host server. Bunyinya
$1
untuk parameter pertama dari CLI sebagai nama file ke SCPcscp.sh
hosts.txt
Pemakaian
Salin file ke beberapa host:
sumber
Jika Anda memiliki konvensi penamaan yang konsisten untuk beberapa server, Anda dapat melakukan sesuatu yang rapi seperti:
sumber