1

我想编写一个 bash 脚本,它将在 SVN 中存储网站的 10 个备份,每晚备份一次,然后删除最旧的备份。

是否有一个 SVN 命令我可以在 svn 中获取这些文件的年龄,然后我可以在该文件上以语法方式调用“svn delete”?

4

2 回答 2

1

听起来您并不了解 Subversion 的工作原理。

Subversion 是一个版本控制系统。您实际上是反过来使用它,您在 Subversion 中编写您的网页和 JavaScript,然后将您的网页从 Subversion 部署到您的网站。您拥有 Subversion 中所有文件的完整历史记录,并使用其功能(例如创建标签来标记网站的特定修订)。通过这种方式,您可以找出谁进行了更改以及进行更改的原因。

听起来您只是想备份您的网站,然后删除最旧的备份以节省空间。

您应该研究一下rsync,它非常适合备份。Rsync 速度很快,而且使用起来非常简单。

您可以查看Subversion 在线手册并阅读前两章或三章。它将解释如何使用 Subversion,它是目前开源软件的最佳手册之一。读完之后,你可能最终决定使用 Subversion,但不是用于备份,而是用于开发。

于 2012-08-23T02:52:47.950 回答
1

Subversion 绝对不是这项工作的工具。一旦你将某些东西提交给颠覆,就没有实际的方法可以删除它。

使用 bash 中的标准命令有很多方法可以实现您的目标。您可以使用 ftp、wget、curl、scp、ssh 或其他工具下载您的站点文件,然后根据日期使用不同的文件名 tar 和压缩它们。

#!/bin/bash

DELETEME='htdocs_'`date '+%Y%m%d' -d '-10 days'`'.tar.gz'
NEW='htdocs_'`date '+%Y%m%d'`'.tar.gz'
SOURCE='/path/on/server/to/backup'
HOST='IP_or_hostname'
USER='user_on_HOST'

ssh $USER@$HOST tar czvf - $SOURCE > $NEW
rm -v $DELETEME

然后将其安排为每日 cron 作业。

于 2012-08-22T21:29:03.760 回答