gpt4 book ai didi

git - 备份 git repo : archive mirror clone . .. tar -Pzcf 怎么样?

转载 作者:行者123 更新时间:2023-12-04 06:47:51 25 4
gpt4 key购买 nike

要备份 git repo,有什么理由不能像这样运行 cron 吗?:

/usr/bin/tar -Pzcf git_backup.tar.gz repo.git &&/usr/bin/scp git_backup.tar.gz me@other-server:/home/backup

如果所有其他副本发生问题,我可以使用最新的,只需 tar -xzf 到它的原始位置,克隆,推, pull 等?看起来应该没问题,但我不是 100% 确定。注意:我已经看到其他涉及 git clone 或使用 --mirror 的答案,但这似乎更简单。如果答案表明它会更好,那么这些仍然是选项。

- - - - - - - - 编辑 - - - - - - - - -

这是我最终创建的脚本:

#!/usr/bin/php -q
<?php

/**
* Backup git on this box and copy it around
*
* cron:
* 1 2 * * * /usr/bin/php /home/sysadmin/files/shared/git_backup.php REPO 2> /dev/null
*
* @package scripts
* @author Hans Anderson <handerson@>
*/

list ( $dir, ) = explode ( '/files/', __FILE__ ); require_once ( "{$dir}/files/bootstrap.php" );
$email = $cfg['GIT_BACKUP']['email_errors_to'];
$copy_hosts = explode(',', $cfg['GIT_BACKUP']['hosts']);

if ( !isset ($argv[1]) ) exit;

$repo = $argv[1];
$date = date ( 'Y-m-d-H' );
$user = `whoami`; $user = trim($user);

$repf = "/newdisk/git/{$repo}.git";
$bndl = "/newdisk/backup/{$repo}/git/git-{$repo}-{$date}.bndl";

chdir($repf);

$exec = "/usr/bin/git bundle create $bndl --all";
exec ( "$exec", $error, $return );

if ( $return <> 0 ) // bad
{
mail ( $email, "{$user} GIT Backup Failure [{$repo}]!", __FILE__ . "\nFailure to dump.\nCmd: $exec\nError: $error" );
}

foreach ( $copy_hosts as $host )
{
$exec = "/usr/bin/scp -q {$bndl} sysadmin@{$host}:/home/sysadmin/data/backup/$repo/git";
exec ( $exec, $error, $return );

if ( $return <> 0 )
{
mail ( $email, "{$user} GIT Backup Failure [{$repo}]!", __FILE__ . "\nFailure to copy to dbs1.\nCmd: $exec\nError: " . implode ( "\n", $error ) . "\n\nReturn:" . implode ( "\n", $return ) );
}
}

最佳答案

  • 参照备份的一个主要规则:永远不要在可能仍在变化的情况下备份。
  • 一个小规则:尝试获取尽可能少的文件进行备份;然后简化了它们在其他任何地方的传输(很少复制文件)。

  • 可以遵守这两个规则的一个命令: git bundle (另见此 SO answer)
    额外的好处是:
  • 增量备份(意味着该过程比完整的 tar 更快)。
  • 结果只有一个文件。

  • 唯一的结果文件(来自一个包)甚至不需要解压缩就可以重用。它本身就是一个 Git 存储库。

    关于git - 备份 git repo : archive mirror clone . .. tar -Pzcf 怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3517945/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com