工程.git文件夹脚本批量备份

批量.git文件夹脚本远程备份

1、    首先必须先登录一次备用服务器,才能生效

2、    把脚本放到~/share/执行脚本git_backup.sh(如果你的samba映射的目录不是share的话,只能手动),执行bash  git_backup.sh 用户名  备用服务器IP

 

3、    登录备用服务器,进到~/share,会发现所有的.git的tar包都是里面,然后根据自己的要求,tar –xf  XXXX.tar.gz然后checkout回来

(注意,如果你的编译服务器密码不是默认密码的话,也是执行不成功的)

单个.git文件夹备份

1、  进到服务器上面找到所在的工程目录中:举例

执行命令: tar  –cf  37N.tar.gz  ./.git

          tar  –cf  XXX.tar.gz  ./.git      

打包后的名字,后缀不要变         要打包的.git文件夹

压缩完成后,会在当前目录中出现一个37N.tar.gz的包

2、  scp 到指定服务器 (注意还是当前目录里面操作,然后在192.168.1.37服务器上面新建对应的目录存放压缩包)

执行命令:  scp  37N.tar.gz   denghuayi@192.168.1.37:~/share/37N/  

注意格式是

scp +”包名”+“用户名@服务器IP” + “”+“想要存放的路径目录中

   (注意,这个用户名@服务器IP就是我提供给你们的新服务器账号)

3、  登录目标服务器192.168.1.37 解压,(注意在对应的目录中),解压命令:

 tar –xf  37N.tar.gz

4、  git  checkout 回来

back_up.sh的脚本内容

#!/bin/bash

user=$1

server=$2

cd ~/share/

find ~/share -name .git > gitlist

while read line;

        do

                name=`echo $line|awk -F'/' '{print $(NF-1)}'`

                tar -cf ~/share/$name.tar.gz  $line

done<gitlist

/usr/bin/expect <<-EOF

spawn bash -c "scp *.tar.gz $user@$server:~/share/

expect "password"

send "123456 "

expect eof

EOF

原文地址:https://www.cnblogs.com/to-be-rich/p/7243517.html