Aqui está um script que eu uso para distribuir meus arquivos de configuração do shell; é facilmente adaptado.
#!/bin/sh
# copy selected files to other machines
FILES=".cshrc .login .profile"
HOSTS="kipling khan nag smith wolf"
h=${HOSTS}
if [ $1x != x ] ; then
h=$1
fi
for i in $h ; do
echo ${i}:
for f in ${FILES}; do
(cd ~; scp ${f} ${i}:.)
done
done
Você pode obviamente alterar a origem e o destino precisos, conforme necessário. Observe que, se for dado um argumento, o (s) arquivo (s) será (ão) enviado (s) para aquele host especificado. Use:
FILES=$(cat file-containing-list-of-files)
se você quiser ter essa lista em um arquivo e dissociá-la do script. O mesmo poderia se aplicar à lista de hosts.
Hoje em dia, eu provavelmente usaria rsync
em vez de scp
, pois isso preservaria o modo de arquivo, etc.