用shell脚本实现文件、代码同步上线

step1.首先expect编写一个脚本文件rsync.expect,实现文件同步的脚本。
[root@localhost ~/syncList]#vim syncFile.expect
#!/usr/bin/expect
set host [lindex $argv 0]
set file [lindex $argv 1]
set passwd [lindex $argv 2]
 
#核心命令,同步多个文件
spawn rsync -avR --file-from=$file /  root@$host:/
 
expect{
"yes/no" {send "yes\r"}
"password:" {send "$passwd\r"}
}
expect eof
[root@localhost ~/syncList] #chmod a+x syncFile.expect
 
step2.然后再编辑一个文本文件,这个文件用来放需要同步的文件列表:
[root@localhost ~/syncList]$ cat /tmp/fileList.txt
/usr/local/nginx/conf/vhost/dedecms.com.conf
/usr/local/nginx/conf/vhost/discu.com.conf
/usr/local/nginx/conf/vhost/zrlog.com.conf
/usr/local/sbin/nginx_log_rotate.sh
/var/spool/cron/root
 
step3还需要编辑一个ip.txt文件,用于存放需要同步的目标机器的IP地址,例如我需要将文件都同步这几个机器上:
[root@localhost ~/syncList]$ cat /root/webServerIP.txt
192.168.200.122
192.168.200.123
192.168.200.124
192.168.200.125
192.168.200.126
192.168.200.127
192.168.200.128
192.168.200.129
192.168.200.130
192.168.200.131
 
step4.再编写一个shell脚本syncFile.sh,遍历出ip.list文件内容然后交给syncFile.expect脚本去执行:
#!/bin/bash
ipList="$1"
fileList="$2"
password="$3"
for ip in `cat $ipList`
do
    #第二个参数就是需要同步的文件列表
    ./syncFile.expect $ip $fileList $password
done
 
step5.执行syncFile.sh脚本即可实现批量同步多个文件:
[root@localhost ~/syncList]$ sh ./syncFile.sh "/root/webServerIP.txt" "/tmp/fileList.txt" 

转载于:https://www.cnblogs.com/sisul/p/9033275.html

iOS 静态库自动打包,使用 shellcmd 脚本如何写 # 获取脚本所在目录 filepath=$(cd "$(dirname "$0")"; pwd)"/" cd $filepath cd .. # 工程target,主要配置这个target即可 targetname="SafeToolSDK" # 工程目录(默认工程目录在脚本目录的上一级目录) projectdir=$(pwd)"/" echo $projectdir # 工程名 projectname="SafeToolSDK.xcodeproj" # lib输出目录 buildDir=$filepath echo $buildDir #lib输出名 libname=$targetname iossdknum=$(xcodebuild -showsdks | grep iphoneos | grep -Eo '[0-9.]+' | sed -n '1p') configurationname="Release" mydir=$filepath$libname"/" rm -rf $mydir mkdir $mydir # arm64 archname="arm64" lib64=$libname"64" echo "archname:$archname" xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir clean xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir libpath=$buildDir"/Release-iphoneos/"$libname".framework" lib64path=$mydir$lib64 mv -f $libpath"/"$libname $lib64path # armv7 archname="armv7" libv7=$libname"v7" echo "archname:$archname" xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir clean xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir libpath=$buildDir"/Release-iphoneos/"$libname".framework" libv7path=$mydir$libv7 mv -f $libpath"/"$libname $libv7path # armv7s archname="armv7s" libv7s=$libname"v7s" echo "archname:$archname" xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir clean xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir libpath=$buildDir"/Release-iphoneos/"$libname".framework" lib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值