shell分发文件脚本
配置文件scp.conf
ssh_hosts=("IP") #需要分发机器的所有IP
ssh_ports=("22")
ssh_users=("root")
ssh_passwords=("密码")
except免秘钥脚本
#!/usr/bin/expect #host set scphost "[lindex $argv 0]" #ssh端口 set port "[lindex $argv 1]" #ssh用户名 set scpuser "[lindex $argv 2]" #ssh密码 set scppw "[lindex $argv 3]" #要上传的文件名或者目录 set file "[lindex $argv 4]" #要上传到远程机器的文件名或者目录 set target "[lindex $argv 5]" `scp -r -P $port $file $scpuser@$scphost:$target`
scp分发脚本
#用来通过scp批量上传文件或者目录到目标机器的指定目录
#配置文件格式:
#ssh_hosts=("1.1.1.1" "2.2.2.2")
#ssh_ports=("22" "22")
#ssh_users=("root" "root")
#ssh_passwords=("12" "23")
#执行:sh multi_scp.sh conf_file_path file target
#upload shell script file path
scp_upload=scp_upload.sh
#then upload file path
scp_file=$1
#remote host'target file or dir path
scp_target=$2
conf_file=scp.conf
if [ $# == 3 ]
then
conf_file=$3
fi
#判断conf_file配置文件是存在
if [ ! -e "$conf_file" ]
then
echo "$conf_file is not exists";
exit;
fi
#判断scp_file是文件或者目录
if [ ! -e "$scp_file" ] && [ ! -d "$scp_file" ]
then
echo ""
#echo "$scp_file is not exists";
#exit;
fi
#read configure file
source $conf_file
for((i=0;i<${#ssh_hosts[@]};i++))
do
#remote ssh host
ssh_host=${ssh_hosts[$i]};
#remote ssh port
ssh_port=${ssh_ports[0]};
#remote ssh user
ssh_user=${ssh_users[0]};
#remote ssh password
ssh_password=${ssh_passwords[0]};
while read line
do
target_path=`echo $line | awk '{print $1}'`
#echo "["`date +"%F %T"`"] (scp -r $scp_file $ssh_user@$ssh_host:$ssh_port:$target_path) start"
#`scp -r -P $port $file $scpuser@$scphost:$target`
#scp file or dir
echo "to "$ssh_host":"$target_path
scp -r -P $ssh_port $scp_file $ssh_use@$ssh_host:$target_path
#echo "["`date +"%F %T"`"] (scp -r $scp_file $ssh_user@$ssh_host:$ssh_port:$target_path) end"
#echo ""
done < $scp_target
done
记录下,怕以后找不到了
天天向上,空杯心态。

浙公网安备 33010602011771号