热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GForgeCommunityEdition全自动备份脚本解决方案

最近,我在CentOS5服务器上成功部署了GForge5.7CommunityEdition。与AdvancedServer版本相比,虽然功能略有简化,但仍然能够满足大多数开源项目管理的需求。为了确保数据安全,我开发了一套全自动备份脚本,该脚本能够定期备份GForge的数据和配置文件,并将其存储在远程服务器上,以防止数据丢失。此外,该脚本还具备错误检测和日志记录功能,便于故障排查和维护。

前不久,我在CentOS 5服务器上成功配置了GForge 5.7 Community Edition,与其Advance Server版相比,功能简单很多,但足够满足我公司现阶段业务需要。CE版不具备自动备份功能,这给服务器维护带来了极大的不便。因此,我编写了以下脚本,用于进行自动备份。


#!/bin/sh # GForge Community Edition 自动完全备份脚本 # 作者Xu Cheng,如有改进,请将副本发送一份给我。 # xc@virtualdell.com #CREATE BACKUP DIRECTRY bkdir=$HOME'/Backup' if [ ! -d "$bkdir" ] then mkdir "$bkdir" echo "Backup Beginning..." else echo ${bkdir}' existed, please remove it!' exit 0 fi #BACKUP POSTGRESQL bkpgsql=${bkdir}/PostgreSql_backup.dump pg_dump -Upostgres [请用GForge数据库名] > ${bkpgsql} if [ -f "${bkpgsql}" ] then echo 'PostgreSql Backup Finished...' else echo 'PostgreSql Backup Failed!' exit 0 fi #BACKUP MAILMAN tar -czvPf MailMan_backup.tar.gz /var/lib/mailman mv MailMan_backup.tar.gz ${bkdir} if [ -f "${bkdir}/MailMan_backup.tar.gz" ] then echo 'MailMan Backup Finished...' else echo 'MailMan Backup Failed!' exit 0 fi #BACKUP SUBVERSION bakdate=$(date +%Y%m%d%H%M) svnrepos="/svnroot" cd $svnrepos if [ -d "$bkdir" ] && [ -w "$bkdir" ] ; then # Now $repo has folder names = project names for repo in *; do # do svn dump for each project echo "Taking backup/svndump for: $repo" echo "Executing : svnadmin dump $repo > $bakdest/$repo-$bakdate.svn.dump /n" # Now finally execute the backup svnadmin dump $repo > $bkdir/$repo-$bakdate.svn.dump done else echo "Unable to continue SVN backup process!" echo "$bkdir is *NOT* a directory or you do not have write permission!" fi tar -czvPf backup_${bakdate}.tar.gz ${bkdir} mv backup_${bakdate}.tar.gz $HOME rm -rf ${bkdir}

送佛送到西,我对代码进行简要的讲解。GForge需要备份的内容包括PostgreSQL数据库、MailMan电子邮件、SubVersion仓库。脚本中,首先使用pg_dump -Upostgres命令进行PostgreSQL数据库备份。然后,再备份MailMan整个文件夹。最后也是最复杂的,是备份SVN仓库。默认的路径为/svnroot,该目录不能用常规命令进行复制或压缩,必须使用svnadmin dump命令单独为每个项目进行备份。因此,我在脚本中使用遍历/svnroot的方式,依次备份各个项目。

备份完毕后,生成的备份文件将放至用户的主目录下,文件名为backup_[备份时的日期时间].tar.gz。为了方便使用,可编辑crontab按时自动执行。

欢迎大家对此脚本进行改进,请将改进后的副本Email给我。



推荐阅读
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
  • 全面解析:Hadoop技术栈中的Linux操作系统概览
    全面解析:Hadoop技术栈中的Linux操作系统概览 ... [详细]
  • 深入解析:RKHunter与AIDE在入侵检测中的应用与优势
    本文深入探讨了RKHunter与AIDE在入侵检测领域的应用及其独特优势。通过对比分析,详细阐述了这两种工具在系统完整性验证、恶意软件检测及日志文件监控等方面的技术特点和实际效果,为安全管理人员提供了有效的防护策略建议。 ... [详细]
  • IIS配置大全:从基础到高级的全面指南
    IIS配置详解:从基础到高级的全面指南IIS前端配置与web.config文件紧密相关,相互影响。本文详细介绍了如何设置允许通过的HTTP请求方法,包括HEAD、POST、GET、TRACE和OPTIONS。提供了两种主要的配置方法,并探讨了它们在实际应用中的优缺点。此外,还深入讲解了其他高级配置选项,帮助读者全面提升IIS服务器的性能和安全性。 ... [详细]
  • 如何解决在 CentOS 5.8 系统中使用云服务器 ECS 执行 mkfs.ext4 时出现“command not found”错误
    如何解决在 CentOS 5.8 系统中使用云服务器 ECS 执行 mkfs.ext4 时出现“command not found”错误 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 数据结构与算法:HyperLogLog 统计、布隆过滤器应用、缓存机制挑战及解决方案、Redis 性能优化与监控、哨兵模式、版本控制工具 Git
    本文探讨了数据结构与算法在实际应用中的多个方面。首先介绍了HyperLogLog算法,用于高效地进行基数统计,能够准确估算大规模数据集中的唯一元素数量。接着讨论了布隆过滤器的应用,该过滤器在空间效率和查询速度上具有显著优势,适用于大数据场景下的快速成员检测。此外,文章分析了缓存机制面临的挑战及其解决方案,包括LRU和LFU等策略,并详细阐述了Redis的性能优化与监控方法,如使用哨兵模式实现高可用性。最后,介绍了版本控制工具Git的基本操作和最佳实践,帮助开发者有效管理代码版本。 ... [详细]
  • Django框架下的对象关系映射(ORM)详解
    在Django框架中,对象关系映射(ORM)技术是解决面向对象编程与关系型数据库之间不兼容问题的关键工具。通过将数据库表结构映射到Python类,ORM使得开发者能够以面向对象的方式操作数据库,从而简化了数据访问和管理的复杂性。这种技术不仅提高了代码的可读性和可维护性,还增强了应用程序的灵活性和扩展性。 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 优化后的标题:利用YUM高效安装与管理MySQL数据库环境 ... [详细]
  • 优化Oracle数据库日志功能的关闭方法与实践
    在优化Oracle数据库日志功能的过程中,关闭不必要的日志记录是一项重要任务。本文探讨了Oracle 11g中日志路径的配置和管理,特别是针对常用的警报日志(alert log)。通过合理配置 `alert_$ORACLE_SID.log` 文件,可以有效减少日志文件的大小和提高系统性能。此外,文章还介绍了如何通过调整参数和使用脚本自动化日志管理,进一步提升数据库的稳定性和维护效率。 ... [详细]
  • IIS 7及7.5版本中应用程序池的最佳配置策略与实践
    在IIS 7及7.5版本中,优化应用程序池的配置是提升Web站点性能的关键步骤。具体操作包括:首先定位到目标Web站点的应用程序池,然后通过“应用程序池”菜单找到对应的池,右键选择“高级设置”。在一般优化方案中,建议调整以下几个关键参数:1. **基本设置**: - **队列长度**:默认值为1000,可根据实际需求调整队列长度,以提高处理请求的能力。此外,还可以进一步优化其他参数,如处理器使用限制、回收策略等,以确保应用程序池的高效运行。这些优化措施有助于提升系统的稳定性和响应速度。 ... [详细]
author-avatar
小啊丌-619
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有