之前公司同事写过rsync加触发nginx reload脚本,适合nginx配置内容完全一致的情况。
今天写一个同步指定文件的脚本,修改完主服务器。使用scp传输到其他nginx服务器上重启NGINX的脚本。
#!/bin/bash file=$1 if [ -z "$file" ];then echo "请使用$0 文件名方式,例如: $? el.conf" exit 1 fi function trans(){ server=("10.0.2.5" "10.0.2.6" "10.0.2.7") cd /etc/nginx/ for s in ${server[@]} do if [ $file == "nginx.conf" ];then scp $file root@${s}::/etc/nginx/ else scp conf.d/$file root@${s}::/etc/nginx/conf.d/ fi ssh root@${s} "nginx -t && nginx -s reload" done } nginx -t && nginx -s reload && trans