批量.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