Shell一键备份gitolite服务器

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

#!/bin/sh
server=serv_addr
root_dir=`pwd`

echo "whill back in dir: ${root_dir}"

ssh "git@${server}" | awk '{print $1$2,$3}' | grep "^RW" | awk '{print $2}' | while read line
do
	echo " "
	echo "-------------------------------------"
	if [  ! -d "${root_dir}/${line}.git" ]; then
		echo "repo not init on local, init it ..."
                mkdir -p "${root_dir}/${line}.git"
                cd "${root_dir}/${line}.git"
                cd ..
		git clone --mirror "git@${server}:${line}.git"
	else
		echo "repo already init on local, update it ..."
		cd "${root_dir}/${line}.git"
		git remote update
		git gc
	fi
done