我想编写一个bash脚本,它将在SVN中存储10个网站的备份,并在每晚备份,然后删除最旧的备份。
是否有SVN命令,我可以在svn中获取这些文件的年龄,然后我可以语法上在该文件上调用“svn delete”?
答案 0 :(得分:1)
Subversion绝对不是这项工作的工具。一旦你提交了subversion的东西,就没有实际的方法来删除它。
使用bash中的标准命令可以通过很多方法实现目标。您可以使用ftp,wget,curl,scp,ssh等工具下载您的站点文件,然后根据日期使用不同的文件名压缩并压缩它们。
#!/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工作。
答案 1 :(得分:1)
听起来您并不了解Subversion的工作原理。
Subversion是一个版本控制系统。你真的使用它反过来,你在Subversion中编写你的网页和JavaScripts,然后将你的网页从Subversion部署到你的网站。您拥有Subversion中所有文件的完整历史记录,并使用其功能,例如创建标记来标记您网站的特定修订版。通过这种方式,您可以了解谁进行了更改以及制作更改的原因。
听起来您只想备份您的网站,然后删除最旧的备份以节省空间。
你应该研究rsync这对备份来说真的很棒。 Rsync速度快,使用起来非常简单。
您可以查看Subversion online manual并阅读前两到三章。它将解释如何使用Subversion,它是开源软件的最佳手册之一。阅读之后,您可能决定最终使用Subversion,但不是用于备份,而是用于开发。