方式1: scp
该协议采用的是ssh端口,所以如果ssh端口不是默认的22,则要按实际参数使用。
格式:scp -P 25569 wxapp-deploy.sh root@192.168.1.107:/home/
免密
将rsa公钥拷贝到客户机
方式2:expect
机器需要先安装expect。该种方式可以用于文件服务器分发文件给客户机。
#!/usr/bin/expect # # luoqinglong:2019-03-17 # for scp # eg:./expectscp 192.131.11.104 jkryw 1111222233 /var/lib/jenkins/workspace/sss_prod.zip /home/war # set timeout 10 set sshport [lindex $argv 0] set host [lindex $argv 1] set username [lindex $argv 2] set password [lindex $argv 3] set src_file [lindex $argv 4] set dest_file [lindex $argv 5] spawn scp -P $sshport $src_file $username@$host:$dest_file expect { "(yes/no)?" { send "yes\n" expect "*assword:" { send "$password\n"} } "*assword:" { send "$password\n" } } expect "100%" expect eof
方式3:rsync
该方式,可以实现客户机从主服务器拉取同步文件,或者主服务器推送给客户机。可以结合inotify进行实时同步文件。
#客户机拉取文件 rsync -avz --delete --progress --password-file=/etc/rsyncd.passwd rsyncuserprod@192.168.1.111::oracle_dump_bak /home/databak- >> $log_info_file 2>&1 #主机推送文件给客户机 rsync -avz /home/test/ --delete --progress rsyncuserprod@192.168.1.121::test_project --password-file=/etc/rsyncd.passwdrsync + inotify 可以搭建互为主客机,实现双向同步文件。
