标签:
在集群环境中,在打补丁,或安装新软件后,经常需要同步目录。
下面我做了一个脚本,用于完成这个过程。
因为没有在两台机器间做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://blog.csdn.net/jx_jy/article/details/46312697