1.批量发送文件
#!/bin/bash
user=''
pwd=''
dir=''
file=''
ips=''
while [ ${#} -gt 0 ];do
case "${1}" in
-u)
user="${2}"
;;
-p)
pwd="${2}"
;;
-f)
file="${2}"
;;
-i)
ips="${2}"
;;
esac
shift
done
dir="$(cd "$(dirname "${file}")" && pwd)"
file=$(readlink -f "${file}")
local_ip=$(hostname -I | awk '{print $1}')
for ip in ${ips}
do
if [[ "${local_ip}" != "${ip}" ]];then
ssh-keygen -R ${ip} > /dev/null 2>&1
ssh-keyscan -H -p 22 ${ip} >> ~/.ssh/known_hosts 2>&1
echo "sshpass -p '${pwd}' ssh ${user}@${ip} 'mkdir -p ${dir}'"
sshpass -p "${pwd}" ssh ${user}@${ip} "mkdir -p ${dir}"
echo "sshpass -p '${pwd}' scp -r '${file}' ${user}@${ip}:'${dir}/'"
sshpass -p "${pwd}" scp -r "${file}" ${user}@${ip}:"${dir}/"
fi
done