我在我的一台服务器上安装了gitolite,它有很多git存储库。所以我决定采取所有这些的备份,发现this约git bundle
。并在此基础上创建了以下脚本如何将git从一台服务器备份到另一台服务器
#!/bin/bash
projects_dir=/home/bean/git/
backup_base_dir=/home/bean/gitbackup/
test -d ${backup_base_dir} || mkdir -p ${backup_base_dir}
pushd $projects_dir
for repo in `find $projects_dir -type d -name .git`; do
cd $repo/..
this_repo=`basename $PWD`
git bundle create ${backup_base_dir}/${this_repo}.bundle --all
cd -
done
popd
cd $backup_base_dir
rsync -r . [email protected]_address:/home/bean1/git_2nd_backup
在上面的脚本1这是我在存储库的备份在同一台机器,但不同的文件夹中的脚本backup_base_dir=/home/bean/gitbackup/
提到的,然后使用rsync
采取备份另一台机器/服务器。所以我的问题是,有没有办法避免在同一台机器上备份,我可以直接备份到另一台服务器/机器。只是想消除在同一台机器上的备份,并希望直接备份到服务器机器。
无论是机/服务器Ubuntu 16
我需要为我的'当地git'我已经'gitolite'配置。 –
您提到想要从服务器A备份到服务器B,而不需要复制本地的拳头,我建议的解决方案是只需将存储库远程拉出,因此避免了本地重复,在任何情况下使用'gitolite'都可能更容易因为你可以解析配置文件,只需拉远程,但一切都是相对的 – nbari