当前位置 博文首页 > 一键备份gitolite服务器的Shell脚本

    一键备份gitolite服务器的Shell脚本

    作者:admin 时间:2021-02-20 15:42

    运行一次就能够把gitolite服务器上的仓库备份到本地. 第一次运行会创建远程仓库的本地镜像, 以后每次运行会把本地镜像更新.

    本程序只支持 ssh方式

    其他的git server貌似不会在 ssh git@xxx 的时候返回repo列表, 所以只能手动备份.

    #!/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
    js
    下一篇:没有了