阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

两台Linux服务器同步目录脚本

113次阅读
没有评论

共计 1262 个字符,预计需要花费 4 分钟才能阅读完成。

在集群环境中,在打补丁,或安装新软件后,经常需要同步目录。

下面我在两台 Linux 服务器下做了一个脚本,用于完成这个过程。

因为没有在两台机器间做 ssh 互信,因此,执行过程中需要输入远程机器密码。

#!/bin/bash
#author:wjf
#date:2015/06/01
#desc: 同步一台机器上的一个文件夹至远程机器,可用于集群环境中的代码同步
# 使用限制:1、同步文件夹路径中不允许出现空格
#  2、远程机器中同步文件夹的上层路径必须手动检查建立

v_tongbu_dir=/tmp/wjf/
#———– 需要同步的文件夹完整路径

v_remote_ip=”10.10.5.185″
#———– 远程机器的 IP

v_remote_user=”root”
#———– 同步过程使用的用户

v_curr_date=`date +%Y%m%d`
v_dir_name=`dirname ${v_tongbu_dir}`
v_base_name=`basename ${v_tongbu_dir}`

cd ${v_dir_name}
echo -ne  “\\n 打包压缩 ${v_tongbu_dir} 目录 \\n\\n”
sleep 2
tar -cvzf ${v_base_name}${v_curr_date}.tar.gz ${v_base_name}/
echo -ne “\\n 上传目录压缩包到远程服务器 \\n”
echo -ne “ 请输入远程服务器(即 ${v_remote_ip})的 ${v_remote_user} 密码 \\n\\n”
scp ${v_base_name}${v_curr_date}.tar.gz ${v_remote_user}@${v_remote_ip}:${v_dir_name}/

echo -ne “\\n 登录到远程服务器执行过程 \\n”
echo -ne “ 请输入远程服务器(即 ${v_remote_ip})的 ${v_remote_user} 密码 \\n\\n”

ssh ${v_remote_user}@${v_remote_ip} <<EOF
if [-d ${v_tongbu_dir} ]
 then
  rm -rf ${v_tongbu_dir}
fi 
if [! -f ${v_dir_name}/${v_base_name}${v_curr_date}.tar.gz ]
 then
  echo “${v_base_name}${v_curr_date}.tar.gz 文件不存在,请检查上传过程 ”
  exit
fi

cd ${v_dir_name}
echo -ne “\\n 解压缩 ${v_base_name}${v_curr_date}.tar.gz\\n\\n”
sleep 2
tar -xvzf ${v_base_name}${v_curr_date}.tar.gz
exit

EOF
echo -ne “\\n 同步代码完成,请检查以上过程是否有报错 \\n\\n”

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-06/118279.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计1262字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中